python在不用框架的情況下如何寫網站後台?

python在不用框架的情況下如何寫網站後台


可以嘗試使用 WSGI,類似 Java 的 servlet ,只是定義了一套框架與伺服器交互的介面規範,參考 PEP 333 -- Python Web Server Gateway Interface v1.0

寫出來最簡單的應用是這樣的:

def simple_app(environ, start_response):
status = "200 OK"
response_headers = [("Content-type", "text/plain")]
start_response(status, response_headers)
return ["Hello world!
"]

要運行的話,使用任意支持 WSGI 的伺服器跑就行了,比如 apache(配合 mod_wsgi),uwsgi,gunicorn, 還有標準庫內置的 wsgiref。

然後在此之上可以實現任意的路由解析,參數傳遞,cookie,session 等等,相當於自己實現了一個 Python 的 web 框架。常見的 Python web 框架就是幫你做了這部分工作。

如果覺得使用 WSGI 的伺服器都算使用框架了的話,就只能拿 socket 裸寫了。只實現一個 just work 的也很簡單,還可以參考 wsgiref 的實現。

還有一種方式就是使用 CGI,就是寫一個正常的 Python 腳本,CGI 伺服器會把你的腳本當命令執行,用戶傳遞的參數用環境變數來傳遞,你自己拿就是。返回結果就是列印出來的內容。


Django的翻譯文檔有這麼一段話:

如果你曾編寫過網路應用程序。 那麼你很有可能熟悉之前我們的 CGI 例子。

從頭開始編寫網路應用程序。

從頭編寫另一個網路應用程序。

從第一步中總結(找出其中通用的代碼),並運用在第二步中。

重構代碼使得能在第 2 個程序中使用第 1 個程序中的通用代碼。

重複 2-4 步驟若干次。

意識到你發明了一個框架。

這正是為什麼 Django 建立的原因!

你不用框架最後還不是得實現框架,是吧。何必重複造輪子,當然如果是將馬車升級為汽車,那就不是造輪子了。

可以去看看廖雪峰的教程,他就是自己實現的框架,還有常式很詳細


Python自帶CGI庫,就叫cgi

寫法類似幾十年前的perl寫網站。你需要自己處理session、cookie,以及URL routing。

性能也是不行的:每個http請求對應一次python腳本執行。

學習一下可以,不要自虐了。PHP可以這麼干是因為PHP本身除了語言之外還有一個隨語言自帶的web framework(見過哪個語言有session_start類似的函數?)


python標準庫中的basehttpserver適合你,閱讀下源碼你就知道了


推薦 Python教程 - 廖雪峰的官方網站 別說你不用框架的情況下讀了這個能寫,連還不懂 Python 讀完都能寫。


看看這個A Do-It-Yourself Framework


呃??把 bottle.py 裡面 http handle 的部分 control-c 過來

這樣差不多一百行左右

(幾個錯誤碼什麼的)

如果超級純靜態

就只要copy get 的部分

隨著越來越多的需求??

不知不覺的你又寫了一個框架??


flask、bottle、tornado這種微框架也不行么?

那werkzeug呢?

比如uwsgi+werkzeug+自己實現wsgi application

flask不就是包裝werkzeug的wsgi application么

再加個按需指定的資料庫模塊、session模塊什麼的

werkzeug也嫌大的話,那需要實現的東西就有點多了吧,http解析、url解析、url route等等,那就有點划不來了吧


那何必用python,不如直接c??

不造輪子,是python的基本哲學(?)


實現wsgi即可,但。。。你真的不需要框架嗎


推薦閱讀:

如何使用Python實現多進程編程?
現在學完Python的就業形勢怎麼樣?
有沒有什麼值得推薦的輕量級Python IDE?
Python中 交換整個字典的鍵與值 最快和最簡潔的方法分別是什麼?
什麼時候會用到python裝飾器?

TAG:Python | Python框架 | Python開發 |