咱們已經知道咱們平時開發的 django、flask 等 python web 項目本質上就是一個接收特定參數,完成業務邏輯,而後返回數據的可調用對象。wsgi ref一個很重要的初衷,就是經過直到規範的 API,將 app 和 server解耦,提供給開發者更加豐富的選擇。html
這篇文章將實戰用 uwsgi server部署一個簡單的 app。這個 app 簡單得不能再簡單,可是可以讓你更好地理解 python web app 的本質。python
你妹有看錯,這個 app 的代碼(app.py
)一共只有3行:web
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return ["Hello World".encode('utf-8')]
如下的大多數內容都來自於 uwsgi 官方文檔:django
請注意本身的Python版本,py2和py3返回的 response body是不同的,詳情情參考前面的一篇文章。這篇文章默認使用 Python3。你們在學python的時候確定會遇到不少難題,以及對於新技術的追求,這裏推薦一下咱們的Python學習扣qun:784,758,214,這裏是python學習者彙集地flask
安裝必要的環境和依賴:服務器
apt-get install build-essential python-dev -y pip3 install uwsgi
運行下面這個命令:app
uwsgi --http :9090 --wsgi-file app.py
這會在9090端口起一個 http server。框架
而後把服務器的9090端口開放:tcp
sudo iptables -A INPUT -p tcp --dport 9090 -j ACCEPT iptables-save
訪問這個地址:lcj.im:9090/,能夠看到輸出的 hello world 了。學習
固然生產環境不可能這麼簡陋啦,比這個要複雜不少。可是這個簡單的例子,可以讓你看清 python web app 的本質,讓你對 django、flask 這些 web 框架有一個更全面的認識。