Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 受權。html
pipreqs ./ --encoding=utf-8
生成的requirements.txt內容以下:python
blinker==1.4 Jinja2==2.10 Click==7.0 itsdangerous==1.1.0 Werkzeug==0.14.1 Flask==1.0.2 setuptools==39.0.1 pyOpenSSL==18.0.0 python-dotenv==0.10.0
官方文檔: Blinker Documentationgit
Blinker的使用:http://python.jobbole.com/85554/web
Blinker 是一個基於Python的強大的信號庫,它既支持簡單的對象到對象通訊,也支持針對多個對象進行組播。Flask的信號機制就是基於它創建的。數據庫
Blinker的內核雖然小巧,可是功能卻很是強大,它支持如下特性:django
官方文檔:http://jinja.pocoo.org/flask
參考連接:http://www.javashuo.com/article/p-soqjjlrr-p.html瀏覽器
jinja2是Flask做者開發的一個模板系統,起初是仿django模板的一個模板引擎,爲Flask提供模板支持,因爲其靈活,快速和安全等優勢被普遍使用。安全
jinja2之因此被普遍使用是由於它具備如下優勢:服務器
官方文檔:https://click.palletsprojects.com/en/7.x/
參考連接:http://www.javashuo.com/article/p-qesekrmf-cn.html
click模塊是Flask的做者開發的一個第三方模塊,用於快速建立命令行。它的做用與Python標準庫的argparse相同,可是,使用起來更簡單。
官方文檔:https://pythonhosted.org/itsdangerous/
參考連接:https://zhyannan.gitee.io/zyannan.blog/2017/09/25/2017-9-25-itsdangerous/#more
若是你想向不可信的環境發送數據,但又擔憂數據被別人利用,就能夠使用 itsdangerous
來加密簽名你的數據。接收者能夠破譯內容,來看看你的包裹裏有什麼,但他們沒辦法修改你的內容,除非他們也有你的密鑰。
itsdangerous內部默認使用了HMAC和SHA1來簽名,基於 Django 簽名模塊。它也支持JSON Web 簽名 (JWS)。這個庫採用BSD協議,由Armin Ronacher編寫,而大部分設計與實現的版權歸Simon Willison和其餘的把這個庫變爲現實的Django愛好者們。
官方文檔:http://werkzeug.pocoo.org/
中文文檔:https://werkzeug-docs-cn.readthedocs.io/zh_CN/latest/
參考連接:
Werkzeug是一個WSGI工具包,他能夠做爲一個Web框架的底層庫。這裏稍微說一下, werkzeug 不是一個web服務器,也不是一個web框架,而是一個工具包,官方的介紹說是一個 WSGI 工具包,它能夠做爲一個 Web 框架的底層庫,由於它封裝好了不少 Web 框架的東西,例如 Request,Response 等等。
定義url:/index/,訪問該url返回hello。
from flask import Flask,Response app = Flask(__name__) @app.route("/index/") def index(): return Response("hello") if __name__ == "__main__": app.run()