一:模板渲染
一般的话都序列化成字符串
二:项目拆分
2.1 项目拆分
app.py
init.py
views.py
models.py
模型数据
2.2 蓝图
三:路由参数
3.1 String
重点
3.2 int
3.3 path
3.4 UUID
3.5 any
四:请求方式
五:Request对象
模拟前端发请求
get请求参数
post请求参数
六:Response对象
七:重定向
八:flask的会话技术
8.1 Cookies
8.2:Session
...
九:Templates
一般使用Vue开发前后端分离项目
十:Model
配置
安装包
使用
views.py
init.py
exts.py(放插件)
models.py(模型基础)
from .exts import db # 模型类的 class User(db.Model): # 表 __tablename__: 'tb_user' # 字段 id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(30), unique=True, index=True) age = db.Column(db.Integer, default=1) sex = db.Column(db.Boolean, default=True) salary = db.Column(db.Float, default=True, nullable=False)
模型类->表结构(模型迁移)
重新迁移一般不需要执行init
十一:加入模型后的项目拆分
主要是用mysql
十二:单表操作
添加
删除
修改
查询
filter后可以继续过滤
filter可以用于非等值操作,而fliter_by只能等值操作
默认就是and
分页
十三:多表查询
十四:进阶
导包、注册
缓存插件
十五:钩子(AOP)
十六:内置对象
十七:static和templates
十八:类视图(前后端分离)
Restful
删除views,不用蓝图
写一个controller(apis)
和app绑定
创建urls.py
字段格式化(响应数据)
字符串
from flask_restful import Resource, fields, marshal_with class HelloResource(Resource): def get(self): return 'get' def post(self): return 'post' ret_fields = { 'status': fields.Integer, 'msg': fields.String, 'data': fields.String } class UserResource(Resource): @marshal_with(ret_fields) def get(self): return { 'status': 1, 'msg': 'ok', 'data': 'python' }
default、attribute
对象
URL
所有对象