1. 程式人生 > >Python web 開發:一個3行程式碼的wsgi app

Python web 開發:一個3行程式碼的wsgi app

我們已經知道我們平時開發的 django、flask 等 python web 專案本質上就是一個接收特定引數,完成業務邏輯,然後返回資料的可呼叫物件。wsgi ref一個很重要的初衷,就是通過直到規範的 API,將 app 和 server解耦,提供給開發者更加豐富的選擇。

這篇文章將實戰用 uwsgi server部署一個簡單的 app。這個 app 簡單得不能再簡單,但是能夠讓你更好地理解 python web app 的本質。

你妹有看錯,這個 app 的程式碼(app.py)一共只有3行:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return ["Hello World".encode('utf-8')]

以下的大多數內容都來自於 uwsgi 官方文件

請注意自己的Python版本,py2和py3返回的 response body是不一樣的,詳情情參考前面的一篇文章。這篇文章預設使用 Python3。大家在學python的時候肯定會遇到很多難題,以及對於新技術的追求,這裡推薦一下我們的Python學習扣qun:784,758,214,這裡是python學習者聚集地

安裝必要的環境和依賴:

apt-get install build-essential python-dev -y
pip3 install uwsgi

執行下面這個命令:

uwsgi --http :9090 --wsgi-file app.py

這會在9090埠起一個 http server。

然後把伺服器的9090埠開放:

sudo iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
iptables-save

訪問這個地址:lcj.im:9090/,可以看到輸出的 hello world 了。

當然生產環境不可能這麼簡陋啦,比這個要複雜很多。但是這個簡單的例子,能夠讓你看清 python web app 的本質,讓你對 django、flask 這些 web 框架有一個