Flask介绍
1. 介绍
Flask是一种使用Python 编写的轻量级Web应用框架, 实现了基础的核心, 用extension增加其他功能
它的WSGI工具箱采用Werkzeug, 模板引擎则使用Jinja2
2. 使用
2.1 路由
from flask import Flask app = Flask(__name__) @app.route("/url") def handle_url: return "Something"
2.2 反向路由
from flask import url_for url_for()
2.3 重定向
from flask import redirect redicrect()
2.4 请求和响应
from flask import request from flask import make_response // 设置Cookie response = make_response(url_for('index')) response.set_cookie(name, json.dumps(dict)) // 获取Cookie json.loads(request.cookies.get(name))
2.5 模板
flask.render_template
2.5.1 模板的基本使用
{{ value }}
分支语句
{% if something %}
...
{% else %}
...
{% endif %}
循环语句
{% for object in objects %}
...
{% endif %}
2.5.2 模板的继承
// 基类: base.html
...
{% block content %}
{% endblock %}
...
// 子类: child.html
{% extends "base.html" %}
{% block content %}
...
{% endblock %}
2.6 消息提示
from flask import flash // 注意: 使用前需要配置app.secret_key flash(strings) *.html {{ get_flashed_messages()[n] }}
2.7 异常
2.7.1 异常处理
@app.errorhandle(error_number)
2.7.2 抛出异常
from flask import abort abort(error_number)
2.8 其他
jsonify用于返回json数据
3. 扩展
3.1 Flask-Script
用于执行外部脚本, 如连接数据库
flask_script.Manager
4. 部署
4.1 部署方案
系统: Linux(CentOS)
WSGI服务器: Gunicorn, uWSGI, CherryPy, Tornado, Gevent, mod_wsgi(Apache)
Web服务器: Nginx
4.2 常用工具
4.2.1 virtualenv
$ mkdir app $ cd app/ $ virtualenv flask New python executable in /home/user/app/flask/bin/python2 Also creating executable in /home/user/app/flask/bin/python Installing setuptools, pip, wheel...done. $ source flask/bin/activate (flask) $ (flask) $ deactivate
4.2.2 Supervisor
命令: supervisorctl
配置: /etc/supervisor/supervisor/conf.d/app.conf
4.3.3 其他工具
DevOps, Fabric
4.3 Nginx配置
Nginx配置