当前位置:网站首页>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
边栏推荐
猜你喜欢

文件加密软件有哪些?保障你的文件安全

网络安全第四次作业

劲爆!阿里巴巴面试参考指南(嵩山版)开源分享,程序员面试必刷

stack && queue

【Tensorflow】AttributeError: '_TfDeviceCaptureOp' object has no attribute '_set_device_from_string'

Sentinel源码(六)ParamFlowSlot热点参数限流

redis分布式锁和看门狗的实现

理解TCP长连接(Keepalive)

网络安全第三次作业

【Tensorflow】AttributeError: ‘_TfDeviceCaptureOp‘ object has no attribute ‘_set_device_from_string‘
随机推荐
Detailed explanation of ORACLE expdp/impdp
此次519暴跌的几点感触 2021-05-21
rhce第三天作业
Sentinel源码(一)SentinelResourceAspect
Word | 关于删除分节符(下一页)前面的版式就乱了解决方案
web测试和app测试的区别?
php开源的客服系统_在线客服源码php
VMM是什么?_兮是什么意思
【Tensorflow】AttributeError: module 'keras.backend' has no attribute 'tf'
Cloin 控制台乱码
监管再次重拳出击,后市如何?2021-05-22
【ONE·Data || Getting Started with Sorting】
方舟生存进化淘宝面板服务器是怎么一回事?
FFmpeg AVPacket详解
Flutter 实现光影变换的立体旋转效果
Sentinel源码(四)(滑动窗口流量统计)
2022-08-02日报:2022年7月最热的10篇AI论文
Sentinel源码(二)入口方法分析
关于市场后市的发展预测? 2021-05-23
LayoutParams的详解