CentOS7でPython + Flask + uWSGI + Nginxをやってみた2
前回からの続き
前回はHello Worldを表示させるだけでしたが、今回は以下の機能を付け加えてWeb APIっぽくしてみます。
・http://[ip address]:8080/api などサブディレクトリで動くようにする。
・Post送信したパラメータを受け取れるようにする。
サンプル
from flask import Flask, request
app = Flask(__name__)
@app.route("/api")
def call1():
return "called api"
@app.route("/api/param", methods=['POST'])
def call2():
param1= request.form['param1']
param2= request.form['param2']
return "called api " + param1 + param2
if __name__ == "__main__":
app.run()
[uwsgi]
module = api
callable = app
master = true
processes = 1
socket = /tmp/api.sock
chmod-socket = 666
vacuum = true
die-on-term = true
touch-reload=/path/to/app/reload_api.trigger
※Pythonのファイル名がapi.pyなのでmoduleにapiを設定
Nginxの設定
server {
listen 8080;
location /api {
include uwsgi_params;
uwsgi_pass unix:///tmp/api.sock;
}
}
uWSGIリロード
touch /path/reload_api.trigger
実行
uwsgi --ini api.ini
ブラウザからアクセス(/api)
http://[ip address]:8080/api
called api が表示されればOK
POST送信でアクセス(/api/param)
http://[ip address]:8080/api/param
上記にPOST送信する。 called api + [param1] + [param2] が表示されればOK
ディスカッション
コメント一覧
まだ、コメントがありません