Flask入門:介紹與簡單使用

一、Flask簡介

  Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 受權。html

  Flask也被稱爲 「microframework」 ,由於它使用簡單的核心,用 extension 增長其餘功能。Flask沒有默認使用的數據庫、窗體驗證工具。

二、Flask的依賴模塊

  當前Flask的版本爲1.0.2。
  跳轉到flask模塊,使用pipreqs獲取flask的依賴:
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

三、Flask依賴模塊介紹

3.一、Blinker

  官方文檔: Blinker Documentationgit

  Blinker的使用:http://python.jobbole.com/85554/web

  Blinker 是一個基於Python的強大的信號庫,它既支持簡單的對象到對象通訊,也支持針對多個對象進行組播。Flask的信號機制就是基於它創建的。數據庫

  Blinker的內核雖然小巧,可是功能卻很是強大,它支持如下特性:django

  • 支持註冊全局命名信號
  • 支持匿名信號
  • 支持自定義命名信號
  • 支持與接收者之間的持久鏈接與短暫鏈接
  • 經過弱引用實現與接收者之間的自動斷開鏈接
  • 支持發送任意大小的數據
  • 支持收集信號接收者的返回值
  • 線程安全

3.二、jinja2

  官方文檔:http://jinja.pocoo.org/flask

  參考連接:http://www.javashuo.com/article/p-soqjjlrr-p.html瀏覽器

  jinja2是Flask做者開發的一個模板系統,起初是仿django模板的一個模板引擎,爲Flask提供模板支持,因爲其靈活,快速和安全等優勢被普遍使用。安全

  jinja2之因此被普遍使用是由於它具備如下優勢:服務器

  • 相對於Template,jinja2更加靈活,它提供了控制結構,表達式和繼承等。
  • 相對於Mako,jinja2僅有控制結構,不容許在模板中編寫太多的業務邏輯。
  • 相對於Django模板,jinja2性能更好。
  • Jinja2模板的可讀性很棒。

3.三、Click

  官方文檔:https://click.palletsprojects.com/en/7.x/

  參考連接:http://www.javashuo.com/article/p-qesekrmf-cn.html

  click模塊是Flask的做者開發的一個第三方模塊,用於快速建立命令行。它的做用與Python標準庫的argparse相同,可是,使用起來更簡單。

3.四、itsdangerous

  官方文檔: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愛好者們。

3.五、Werkzeug

  官方文檔:http://werkzeug.pocoo.org/

  中文文檔:https://werkzeug-docs-cn.readthedocs.io/zh_CN/latest/

  參考連接:

  Werkzeug是一個WSGI工具包,他能夠做爲一個Web框架的底層庫。這裏稍微說一下, werkzeug 不是一個web服務器,也不是一個web框架,而是一個工具包,官方的介紹說是一個 WSGI 工具包,它能夠做爲一個 Web 框架的底層庫,由於它封裝好了不少 Web 框架的東西,例如 Request,Response 等等。

 四、Flask簡單使用

  定義url:/index/,訪問該url返回hello。

 4.一、源碼

from flask import Flask,Response

app = Flask(__name__)

@app.route("/index/")
def index():
    return Response("hello")

if __name__ == "__main__":
    app.run()

4.二、瀏覽器訪問

  

相關文章
相關標籤/搜索