Flask-RESTful请求响应与SQLAlchemy基础

一.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:admin123@127.0.0.1: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值