依赖
- Werkzeug:WSGI(应用和服务之间的标准 Python 接口)
jinja2:模版渲染引擎
- markupSafe:和 Jinja2 共用,避免不可信的输入,防止注入攻击
- ItsDangerous:保证数据完整性(session cookie)
- Click:命令行应用框架(这里用于提供和自定义 flask 命令)
- 可选依赖
collapsed:: true
- Blinker:为信号提供支持
- Python-dotenv:环境变量
- Watchdog:服务重载
路由
必需以** /
**开头
- 路由规则
- @app.route(’/’):根地址
- @app.route(‘/home’):指定页面(可多个)
- @app.route(‘/user/name’):自定义变量
- 上下文
- @app.context_processor:返回的函数变量可以在每个模版中使用
- 错误处理
- @app.errorhandler(code):需传递对应错误代码
- 快捷路由 ((61894f19-83e3-4a81-90f5-8060239f3e24))
- @app.get()
- @app.post()
- @app.delete()
- @app.put()
- @app.patch()
- 参数
- methods
- GET
- POST
- methods
函数
- url_for:生成 URL(可在模版中直接使用)
- 默认值为视图名(函数)
- 可添加 URL 参数(即函数参数)
url_for('user_page', name='immwind')
request
json
通过 request.get_json()` 接收 docs/Programming/Language/Python/librarys/json|json 数据
form 表单
request.form.items()
:获取以字典形式返回所有 form 表单数据(需 dict 转)request.form.get('key')
:获取 form 表单指定键数据
file 文件
request.files[<name>]
: 获取单个文件request.files.getlist(<name>)
: 获取多个文件
URL 参数
- args:URL 参数
- 可变参数即为变量
request.args
:查看 URL 的所有参数request.args.get('arg')
:获取链接参数数据
cookie
- method:方法
request.method
:获取 https 请求方法
files
- request.files.getlist(“file[]”): 获取多个
- request.files[“file”]: 获取单个
Session
需配置app.config['SECRET_KEY'] = 'XXXXX'
其他
添加图标
运行参数
--port=<Port>
:端口--host=10.1.1.11
环境变量
- FLASK_APP:默认程序(默认为 app.py 文件)
- FLASK_ENV:运行环境
- production:默认
- development:调试模式
配置变量
app.config:变量名必须大写
app.config['JSON_AS_ASCII'] = False
: jsonify 返回支持中文SQLALCHEMY_DATABASE_URI
:SQLAlchemy 数据库连接地址SQLALCHEMY_TRACK_MODIFICATIONS
:模型修改监控(默认 True)
示例
返回渲染后的模板
报错
WARNING: This is a development server. Do not use it in a production deployment.
设置当前环境为开发环境 export FLASK_ENV=development
NameError: name ‘app’ is not defined
未定义app = Flask(__name__)
所致
RuntimeError: A secret key is required to use CSRF.
需要配置 SECRET_KEY 的值
信息
参考
- Flask 中文文档 (2.0.2)
- 书籍
- 版本更新
- Flask 2.0 新特性
id:: 61894f19-83e3-4a81-90f5-8060239f3e24
collapsed:: true
2021-05-12 发布
- 蓝本嵌套
- 支持 asyncio/await
- 新增快捷路由装饰器
- 不再支持 Python2 和 Python 3.5
- Flask 2.0 新特性
id:: 61894f19-83e3-4a81-90f5-8060239f3e24
collapsed:: true
2021-05-12 发布