当前位置:网站首页>Flask-RESTful请求响应与SQLAlchemy基础
Flask-RESTful请求响应与SQLAlchemy基础
2022-08-02 14:01:00 【czy1206527605】
一.flask_restfun处理请求
1.处理的流程
from flask import Flask
from flask_restful import Api, Resource
from flask_restful import reqparse
app = Flask(__name__)
api = Api(app)
class Index(Resource):
def get(self):
parser = reqparse.RequestParser()
parser.add_argument('id')
args = parser.parse_args()
return '参数ID的值为: {}'.format(args['id'])
api.add_resource(Index, '/index')
if __name__ == '__main__':
app.run()
2.思路
1.导入RequestParser类
2.实例化RequestParser对象
3.向RequestParser对象中添加需要检验或转换的参数声明
4.使用parse_args()方法启动检验处理
5.通过args.id或args[‘id’]的方法获取参数
二.序列化数据
1.装饰器形式的序列化
from flask import Flask
from flask_restful import Api, Resource
from flask_restful import fields, marshal_with
app = Flask(__name__)
api = Api(app)
class User(object):
def __init__(self, name, age, password):
self.name = name
self.age = age
self.password = password
resource_fields = {
'name': fields.String,
'age': fields.Integer,
}
class Index(Resource):
@marshal_with(resource_fields, envelope='data')
def get(self, **kwargs):
user = User('Jeremy', 18, '123456')
return user
# 指定路由
api.add_resource(Index, '/index')
if __name__ == '__main__':
app.run()
2.marshal方法直接序列化
from flask import Flask
from flask_restful import Api, Resource
from flask_restful import fields, marshal_with, marshal
app = Flask(__name__)
api = Api(app)
class User(object):
def __init__(self, name, age, password):
self.name = name
self.age = age
self.password = password
resource_fields = {
'name': fields.String,
'age': fields.Integer,
}
class Index(Resource):
def get(self, **kwargs):
user = User('Jeremy', 18, '123456')
return marshal(user, resource_fields)
api.add_resource(Index, '/index')
if __name__ == '__main__':
app.run()
其中 若想要响应返回json数据格式时 应return
{
"msg": "发送成功",
"code": 200,
"data": {
...}
}
一.SQLAlchemy
1.SQLAlchemy数据库的配置
安装Flask-SQLAlchemy
pip install flask-sqlalchemy
from flask import Flask
app = Flask(__name__)
class Config(object):
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:[email protected]:3306/jiyunstus'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True
app.config.from_object(Config)
2.SQLAlchemy数据库模型类的创建
from flask_sqlalchemy import SQLAlchemy
from app import app
db = SQLAlchemy(app)
class UserModel(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
3.SQLAlchemy数据库迁移文件
from flask_migrate import Migrate, MigrateCommand
from flask_script import Shell, Manager
from models.user_models import db
from app import app
manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
manager.run()
PS:文件迁移的命令
初始化迁移文件
python manage.py db init
生成迁移文件
python manage.py db migrate
执行迁移
python manage.py db upgrade
边栏推荐
- rust使用mysql插入数据
- 不精确微分/不完全微分(Inexact differential/Imperfect differential)
- 网络安全第一次作业
- HALCON: 对象(object)从声明(declaration)到结束(finalization)
- 乐心湖‘s Blog——MySQL入门到精通 —— 囊括 MySQL 入门 以及 SQL 语句优化 —— 索引原理 —— 性能分析 —— 存储引擎特点以及选择 —— 面试题
- els 长条方块变形条件、边界碰撞判定
- Data Organization---Chapter 6 Diagram---Graph Traversal---Multiple Choice Questions
- Mysql's case the when you how to use
- Awesome!Alibaba interview reference guide (Songshan version) open source sharing, programmer interview must brush
- ttl电平与rs232电平转换电路(232电平定义)
猜你喜欢
随机推荐
replay视频播放器_怎么让手机音乐跟视频一起放
栈 && 队列
Sentinel源码(五)FlowSlot以及限流控制器源码分析
方舟生存进化淘宝面板服务器是怎么一回事?
二极管及其应用
如何自定义feign方法级别的超时时间
Break the limit of file locks and use storage power to help enterprises grow new momentum
鲲鹏devkit & boostkit
mysql的case when如何用
【ONE·Data || Getting Started with Sorting】
MySQL数据库语法格式
Sentinel源码(四)(滑动窗口流量统计)
网络安全第四次作业
Diodes and their applications
瑞吉外卖笔记——第05讲Redis入门
rhce第三天作业
vim复制粘贴_vim如何复制粘贴
The bad policy has no long-term impact on the market, and the bull market will continue 2021-05-19
HALCON: 内存管理(Memory Management)
The future of financial services will never stop, and the bull market will continue 2021-05-28









