uwsgi和wsgi

一個Web應用的本質就是:html

瀏覽器發送一個HTTP請求;前端

服務器收到請求,生成一個HTML文檔;web

服務器把HTML文檔做爲HTTP響應的Body發送給瀏覽器;瀏覽器

瀏覽器收到HTTP響應,從HTTP Body取出HTML文檔並顯示。服務器


接口,讓咱們專心用Python編寫Web業務。
這個接口就是WSGI:Web Server Gateway Interface。
WSGI接口定義很是簡單,它只要求Web開發者實現一個函數,就能夠響應HTTP請求。咱們來看一個最簡單的Web版本的「Hello, web!」:
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [b'<h1>Hello, web!</h1>']前端工程師


Python處理URL的函數就是C:Controller,Controller負責業務邏輯,好比檢查用戶名是否存在,取出用戶信息等等;app

包含變量{{ name }}的模板就是V:View,View負責顯示邏輯,經過簡單地替換一些變量,View最終輸出的就是用戶看到的HTML。框架

MVC中的Model在哪?Model是用來傳給View的,這樣View在替換變量的時候,就能夠從Model中取出相應的數據。函數

經過MVC,咱們在Python代碼中處理M:Model和C:Controller,而V:View是經過模板處理的,這樣,咱們就成功地把Python代碼和HTML代碼最大限度地分離了。調試

使用模板的另外一大好處是,模板改起來很方便,並且,改完保存後,刷新瀏覽器就能看到最新的效果,這對於調試HTML、CSS和JavaScript的前端工程師來講實在是過重要了。

在Jinja2模板中,咱們用{{ name }}表示一個須要替換的變量。不少時候,還須要循環、條件判斷等指令語句,在Jinja2中,用{% ... %}表示指令。

除了Jinja2,常見的模板還有:

Mako:用<% ... %>和${xxx}的一個模板;

Cheetah:也是用<% ... %>和${xxx}的一個模板;

Django:Django是一站式框架,內置一個用{% ... %}和{{ xxx }}的模板。

 

參考文檔

https://www.liaoxuefeng.com/

相關文章
相關標籤/搜索