flask源碼分析01:框架簡介

flask源碼分析01:框架簡介

flask簡介

Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI(Python Web Server Gateway Interface)工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 受權。
Flask也被稱爲 「microframework」 ,由於它使用簡單的核心,用 extension 增長其餘功能。Flask沒有默認使用的數據庫、窗體驗證工具


python 語言 web 框架不少:Django、Tornado、webpy、bottle……,flask 的特色是簡單可擴展。簡單有幾個方面,好比它只實現 web 框架最核心的功能,保持功能的簡潔;還有一個就是代碼量少,核心代碼 app.py 文件只有 2k+ 行。可擴展就是容許第三方插件來擴充功能,好比數據庫能夠使用 Flask-SQLAlchemy,緩存能夠使用 Flask-Cache 等等。

flask之hello world

from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello_world():
    return 'Hello, World!'
 
if __name__ == '__main__':
    app.run()

依賴之werkzeug

werkzeug 的定位並非一個 web 框架,而是 HTTP 和 WSGI 相關的工具集,能夠用來編寫 web 框架,也能夠直接使用它提供的一些幫助函數。

Werkzeug is an HTTP and WSGI utility library for Python.

werkzeug 提供了 python web WSGI 開發相關的功能:

路由處理:怎麼根據請求中的 url 找到它的處理函數
request 和 response 封裝:能夠更好地讀取 request 的數據,也容易生成響應
一個自帶的 WSGI server,能夠用來測試環境運行本身的應用

werkzeug 編寫一個簡單的 hello world 的 WSGI app

from werkzeug.wrappers import Request, Response

def application(environ, start_response):
    request = Request(environ)
    text = 'Hello %s!' % request.args.get('name', 'World')
    response = Response(text, mimetype='text/plain')
    return response(environ, start_response)

依賴之jinjia2

官網上,對 Jinja 的 介紹已經很清晰,它就是一個 python 實現的模板引擎,功能很是豐富。

Jinja2 is a full featured template engine for Python. It has full unicode support, an optional integrated sandboxed execution environment, widely used and BSD licensed.

Jinja 功能比較豐富,支持 unicode 解析、自動 HTML escape 防止 XSS 攻擊、繼承、變量、過濾器、流程邏輯支持、python 代碼邏輯集成等等。
相關文章
相關標籤/搜索