サムネがコーヒーの記事は書きかけです。

Flaskで簡単なwebアプリの作成

以前にpythonを使用した簡単な画像処理アプリケーションを作成しましたが、使用環境に難ありということでインターネットさえ使えればどこでもpythonの処理を実行できるように取り組んでいます。(javascriptを使用して処理しようとしましたが、opencvモジュールがそもそも使えないのとpythonに比べてコードが書きにくいという理由で断念しました。)

今回は、その基礎となるhello world をwebページ上に表示するアプリを作成していきます。

サーバーの選び方

pythonファイルがサーバー上で実行されて、返ってきた結果がwebページに表示されるという仕組みのため、別途サーバーを用意する必要があります。

この時、CGI(Common Gateway Interface)対応のサーバーを選ばないとpythonを実行することができません。

無料のものもたくさんありますが、このブログのサーバーがちょうどCGIに対応していたのでそのまま使っていきいます。

サーバーにpipを導入

サーバー上でpythonを実行するためには、pipを導入する必要があります。

導入方法は以下にまとめています。

アプリケーションファイルの作成

サーバー管理画面からFTPにアクセスし、ルートディレクトリにアプリケーションファイルを作成します。

ちなみに、このブログは間違えてルードディレクトリにワードプレスをインストールしてしまったため、CGIが干渉してしまいます。

そのため、サブディレクトリを作成してそこにアプリを作成していきます。

APP_1

作成するアプリのファイル名をAPP_01としました。

ディレクトリは/APP_1となります。

.htaccess

パーミッションは604

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /APP/index.cgi/$1 [QSA,L]

ここで、ルートディレクトリにwordpress用の.htaccessが既にある場合は、mod_rewriteの記述が全ディレクトリに干渉してしまうため以下のコードを付け加えます。

[default]
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
[/default]

APP.py

パーミッションは600

このファイルにpythonでの処理を記述していきます。

from flask import Flask , render_template
app = Flask(__name__)

@app.route('/')
def hello():
    return '<h1>Hello World</h1>'

@app.route('/APP_01/render')
def index():
    return render_template('render.html')
if __name__ == '__main__':
    app.run(debug=True)

index.cgi

パーミッションは700

#!/usr/local/bin/python3
from wsgiref.handlers import CGIHandler
from APP import app
CGIHandler().run(app)

templates

/app_01/にtemplatesフォルダを作成します。

その中に以下のhtmlファイルを作成します。

render.html

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
    <h1>render template</h1>
    </body>
</html>

パーミッションは604

以上でアプリケーションの実行ファイルが揃いました。

あとは、APP_01のディレクトリにブラウザからアクセスするだけです。

参考として、今回作成したwebアプリへのリンクを貼っておきます。

https://japbros-poco.main.jp/app_1/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です