flask-marshmallow 实现RESTFUL规范

app.py
所需模块

 pip install flask-sqlalchemy
 pip install flask-marshmallow

数据库插入命令(cmd命令)

插入数据部分
from app import db
db.create_all()
from app import User,Reward
one = User(name='User One')
two = User(name='User Two')
db.session.add_all([one,two])
db.session.commit()

first = Reward(reward_name='Reward 1',user=one)
second = Reward(reward_name='Reward 2',user=one)
third = Reward(reward_name='Reward 3',user=two)
db.session.commit()

app.py

import os
import config
from flask import Flask,jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
ma = Marshmallow(app)

class User(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(24))

class Reward(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    reward_name = db.Column(db.String(125))
    user_id = db.Column(db.Integer,db.ForeignKey('user.id'))
    user = db.relationship('User',backref='rewards')  #


class UserSchema(ma.ModelSchema):
    class Meta:
        model = User

class RewardSchema(ma.ModelSchema):
    class Meta:
        model = Reward

@app.route('/')
def index():
    one_user = User.query.all()
    user_schema = UserSchema(many=True) #用已继承ma.ModelSchema类的自定制类生成序列化类
    output = user_schema.dump(one_user) #生成可序列化对象
    return jsonify({'user':output})
#
if __name__ == '__main__':
    app.run()


# reference:https://juejin.im/post/5d3bc3d25188254cbc32b1cc
# https://www.youtube.com/watch?v=kRNXKzfYrPU

config.py

DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'root'
PASSWORD = '666666'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'database'

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT,DATABASE)
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值