1. 程式人生 > >Flask基礎介紹

Flask基礎介紹

ict 常用工具 路由 服務器 nginx done .org extend redirect

1. 介紹

Flask是一種使用Python 編寫的輕量級Web應用框架, 實現了基礎的核心, 用extension增加其他功能
它的WSGI工具箱采用Werkzeug, 模板引擎則使用Jinja2

2. Flask使用

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. Flask擴展模塊

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配置

參考:
<Flask框架和Flask-Script介紹>

Flask基礎介紹