Flask 框架介绍
介绍
安装
pip install flask- main.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
app.logger.info("Hello World!")
return 'Hello World!'
# if __name__ == '__main__':
# app.run()
# app.run(host="unix:///tmp/app.sock")
# FLASK_APP=app.py flask run --host=unix:///tmp/app.sock- 使用 gunicorn 运行
$ gunicorn main:app
[8267] [INFO] Starting gunicorn 19.10.0
[8267] [INFO] Listening at: http://127.0.0.1:8000 (8267)
[8267] [INFO] Using worker: sync
[8272] [INFO] Booting worker with pid: 8272
# gunicorn -w 4 package:app --bind unix:/tmp/app.sock- 访问
$ curl http://127.0.0.1:8000
Hello World!其他
- uWSGI
- Werkzeug 实现 WSGI
- Jinja 模板语言
- Click 一个用于编写命令行应用程序的框架
- greenlet 当应用程序中使用 gevent 或 eventlet
- pyeve/eve 为人类设计的 REST API 框架
- 社区插件地址
- Flasgger 是一个 Flask 扩展,可以从你的 API 中注册的所有 Flask 视图中提取 OpenAPI-Specification
- pallets/flask 用于构建网络应用程序的 Python 微型框架
- Flask 扩展汇总
dmeo
flask + sqlite3 数据库操作示例
F&Q
RuntimeError: Working outside of application context
// app = Flask(__name__)
with app.app_context():
...使用 uwsgi 发布 request.files 为空
request.files 返回值为 ImmutableMultiDict([])
解决方式:
- 通过 nginx 代理(测试可用)
- form 表单配置
enctype="multipart/form-data" - 配置
MAX_CONTENT_LENGTH
app.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024 # 10MBuwsgi.ini配置
[uwsgi]
...
http = :8000
http-timeout = 120
http-keepalive = true
http-auto-chunked = true
http-write-timeout = 120
http-sendfile = true
http-chunked-request = true
post-buffering = 8192最近更新
最新评论