今回の記事はロリポップサーバでPythonのFlaskを起動して、get通信を行う手順に関しての記事です。ロリポップサーバを持っており、サンプル的なAPIを作成してみたいと考えている方は是非この記事を参考に、実施してみてください。
Pythonプロジェクト作成
まずはPythonの仮想環境を構築し、そこにFlaskインストールしましょう。
python -m venv env
source enb/bin/activate
仮想環境に入る
pip install flask
上記手順で、仮想環境の構築→仮想環境に入る→Flaskのインストールまで完了しています。
では実際にロリポップサーバに配置するファイルを自身のローカルPCで作成します。作成したものは後ほどFTPで転送します。
ローカルPCでロリポップサーバでFlaskを動かすために必要なファイル作成
- .htaccess
- index.cgi
- ○○.py
権限は上から604、700、600の順です。
ファイルの中身は下記を記述します。
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /flask/index.cgi/\ [QSA,L]
<Files ~ "\.py$">
deny from all
</Files>
index.cgi
#!/usr/local/bin/python3.4
from wsgiref.handlers import CGIHandler
#from flaskSample import app -- 20220820edit nishibe
from index import app
CGIHandler().run(app)
ローカルPCからロリポップサーバにファイル転送
ロリポップサーバにあるFTPで移動させるで問題ないです。
以上で完了です。ちなみにCGIでの操作となるため、Pythonのサーバを起動しておく必要もありません。ではPythonの中身を記述していきます。
Flaskでget通信
下記でget通信ができます。
# Python 3.6以前のバージョンではmimetypes.init()の
# バグフィックスが適用されていないため、mimetypes.init()の
# 初期化異常回避のための例外キャッチ付きインポート実施
try:
import mimetypes
mimetypes.init()
except Exception as e:
pass
from flask import Flask, render_template, request ,jsonify
app = Flask(__name__)
# CSV取得用API
@app.route('/', methods=['GET'])
def hello():
if request.method == 'GET':
return '<h1>Hello Flask "GET" World</h1>'
else:
return '<h1>Hello Flask "POST" World</h1>'
if __name__ == '__main__':
app.run(debug=False)
上記で完了です。CurlコマンドかブラウザでURLを入力するなどで通信してみてください。
以上で今回の記事は終了です。ほかにもPython関連の記事を記載しているので是非サイト内見ていってください。
コメント