Open1

さくらインターネットのレンタルサーバーでFlaskの実行環境を構築する

Tadaaki AKAITadaaki AKAI

ググればだいたいの情報がでてくるので詳しくは省略。
私の場合は下記、サイト等を参考に構築。
https://note.com/todaijudobu/n/nc3ecdb4c1af8

ただし、index.cgiだけは問題がある。
(これがわからず苦労したのでメモ)
environ['SCRIPT_NAME'] = "" を設定すると url_for で設定したURLがルートからになってしまい、サブディレクトリを指定してもうまく動かない。
例えば

@app.route('/create', methods=['GET', 'POST']) 
def create():
    (略)

と設定していた場合
/hoge/index.cgi配下でリンク先を/hoge/createとしたかったとしてもurl_for('create')とすると /createとなる。(つまり hoge ディレクトリが消される)
なのでenviron['SCRIPT_NAME'] = ""は削除。
最終的には environ は SERVER_NAME, SERVER_PORT, SERVER_PROTOCOLの3つだけ指定すれば良さそう。

また、createページは/hoge/createでアクセス可能だが、index.cgiが入って/hoge/index.cgi/createとなってしまう。
この対応方法は現時点では不明だが https://egaoyo.com/python-flask-memo を参考に{{url_for('create').replace('/index.cgi/', '/')} とすることでとりあえずは消すことが可能