Flask项目结构
2020-09-10 18:46:15 2 举报
AI智能生成
flask
作者其他创作
大纲/内容
Flask-Script
让项目支持命令行参数
需创建Manager对象
项目改为manager.run()启动
Flask-Migrate
数据迁移
创建Migrate对象
使用migrate.init_app(app,db)函数初始化
添加命令行: manager.add_command('db', MigrateCommand)
初始化 (第一次) :python manage.py db init,生成migrations文件夹
生成迁移文件:python manage.py db migrate
执行迁移:python manage.py db upgrade
Flask-BluePrint
扩展路由
需创建Blueprint对象blueprint
改用blueprint.route()方式实现FBV
使用app.register_blueprint()函数注册蓝图
Flask-SQLAlchemy
orm
创建SQLAlchemy对象
使用init_app()函数初始化
创建模型类,使用db.Column()函数创建字段
Flask-Restful
前后端分离
创建Api对象apis,并使用apis.init_app(app)初始化
CBV实现
类继承自Resource
数据序列化
字段格式化,字段嵌套使用Nested()函数,列表使用List()函数
使用marshal_with装饰器序列化,或者使用marshal函数序列化
获取前端参数
通过reqparse.RequestParser()方法创建reqparse对象parse
parser.add_argument()
参数名称
type:参数类型
required:是否必须
错误提示
location:参数获取位置
多值处理
别名
args = parser.parse_args()
args.get()
使用apis.add_resource()绑定类视图和路由
app
__init__.py
通过Flask(__name__)创建Flask对象
初始化views/apis
初始化ext文件
初始化settings文件
初始化中间件
views/apis
Werkzurg :WSGI工具集,可作为一个Web框架的底层库,封装了Request,Response模块
__init__.py
初始化:init_views(app)/init_apis(app)
多个views的包
FBV
多个apis的包
CBV:类视图
get
post
head
delete
put
options
patch
ext.py
Flask-SQLAlchemy
Flask-Migrate
初始化中间件
初始化session
settings.py
封装一些例如DEBUG,TESTING之类的设置到类属性中,再使用 app.conFig.from_object()去初始化
models
使用Flask-SQLAlchemy实现ORM
model类继承:__abstract__ = True
修改表名:__tablename__='表名'
CURD
数据库驱动:SQLALCHEMY_DATABASE_URI = 数据库+驱动://用户:密码@主机:端口/数据库名
templates
使用Jinja2模板引擎
static
静态资源
middleware.py
中间件,面向切面编程
utils.py
小工具
manage.py
shell
runserver
db
migrations
使用Flask-Migrate让项目实现数据迁移,迁移后生成此文件夹
0 条评论
下一页