数据库字段常用类型
数据类型 | 解释 |
---|
Integer | 一个整数(*****) |
String (size) | 有长度限制的字符串(*****) |
Text | 一些较长的 unicode 文本(*****) |
DateTime | 表示为 Python datetime 对象的 时间和日期(*****) |
Float | 存储浮点值 |
Boolean | 存储布尔值 |
DECIMAL | 十进制,多用于价格 |
一对多模型类创建
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Sub(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32))
stu = db.relationship('Stu', backref='sub')
class Stu(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32))
sub_id = db.Column(db.Integer, db.ForeignKey('sub.id'))
Flask-RESTful提供RequestParser类, 用来帮助我们检验和转换请求数据. 它设计成提供简单并且统一的访问Flask.request对象里的任何变量的入口
RequestParser()校验参数可选字段(部分)
可选参数 | 作用 | 案例 |
---|
type | 参数类型 | type=int |
help | 错误提示 | help=“id不可以为空” |
required | 是否必须(默认为Flase) | required=True |
choices | 特定的值 | choices=[‘男’,‘女’] |
default | 如果不传,默认值 | default=18 |
增删改查
查询
from flask import Blueprint, jsonify
from models.model import *
from flask_restful import marshal, fields, reqparse
def get(self):
sub = Sub.query.all()
data = marshal(sub, {
"id": fields.Integer,
"name": fields.String,
})
return jsonify({'code': 200, 'msg': '数据获取成功', 'data': data})
增加
def post(self):
req = reqparse.RequestParser()
req.add_argument("name")
args = req.parse_args()
s1 = Sub(
name=args["name"],
)
db.session.add(s1)
db.session.commit()
return jsonify({'code': 200, 'msg': '数据添加成功'})
修改
def put(self):
req = reqparse.RequestParser()
req.add_argument("id")
args = req.parse_args()
Sub.query.filter(Sub.id == args["id"]).update(
args
)
sub = Sub.query.filter(Sub.id == args["id"]).first()
sub.name=args["name"]
db.session.commit()
return jsonify({'code': 200, 'msg': '数据修改成功'})
删除
def delete(self):
req = reqparse.RequestParser()
req.add_argument("id")
args = req.parse_args()
Sub.query.filter(Sub.id == args['id']).delete()
db.session.commit()
return jsonify({'code': 200, 'msg': '数据删除成功'})