Python web 開發:一個3行程式碼的wsgi app
阿新 • • 發佈:2019-06-09
我們已經知道我們平時開發的 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 框架有一個