dnjiro’s 9VAe blog

誰でもアニメが作れる無料ソフト9VAeきゅうべえ開発者のブログ

Flaskの調査

Flaskは、Python がつかえるWebアプリ開発環境らしい。パソコンの中に独立したサーバーがつくれるみたいだ。

 

これを利用すれば、アニメ教室で作ったアニメをスマホにダウンロードするサーバーがラズパイで作れるかもしれん。ということで調査することにした。

 

まず関連情報を検索

以下が初心者向きでわかりやすい

 

インストール

 

FlaskサーバーにGIF動画を表示する方法

Flaskサーバーはいろんなアドレスを実データに変換する仕組みをもっているらしい。/image との記述を変換して適当なデータを与える。

静的なデータ(後述のQRコードなど)は "{{ url_for('static', filename='xxxxxx') }}" のように設定。

 

FlaskサーバーとGIF変換を同時に行う方法

WebサーバーとGIF変換を同時に行うにはマルチスレッドをつかう

 

Flaskサーバーの公開用IPアドレスを設定する方法

下のようにするとできるらしい。8080 は公開するポート(コマンド起動する場合)

flask run --host='xxx.xxx.xxx.xxx' --port=8080

*もし  FLASK_APP 未定義エラーがでたら Windowsなら

set FLASK_APP=app.py

*Mac or Linux なら以下のように設定する

export FLASK_APP=app.py

 

python の app.run の引数でも、URLとポートが指定できるようだ

if __name__ == '__main__':
app.run(host='xxx.xxx.xxx.xxx', port=8080)

 

公開IPアドレスQRコードで表示する方法

Pythonで簡単にQRコードが生成できるみたいだ。すばらしい。(pip or pip3 でインストール)

pip install qrcode

pip install pillow

 

Flaskサーバーにファイルをアップロードする方法

POSTをつかえばスマホで作ったアニメをアップロードする機能がつくれそうだ。早速、PEASmotch! one にその機能を搭載した。

Android

 

Windows で ローカル Flask サーバーをたてる方法

Flask で作るサーバーは一般に公開するサーバーには適してないと書いてある。しかし、ローカルでインターネット接続しない前提でスマホに公開するには、以下のように設定する。

 

  1. Windowsパソコンの ip アドレスを調べる。コマンドから「ipconfig」
  2. Flask サーバーのURL を上でしらべた 'xxx.xxx.xxx.xxx' ポート 8080 にする。(デフォルトは、'127.0.0.1' ポート 5000 になっている)
  3. Windows Defender ファイアーウォール > 詳細設定 >受信の規則 > python が接続禁止になっているので、「python (プロトコル TCPのほう)」を選んでプロパティ「接続を許可する」に設定する。

ラズベリーパイの場合、ファイアウォールの設定なしで http://xxx.xxx.xxx.xxx:8080 に接続できた。

 

 

Bottle

Bottleというのはもっと小さくて、Pythonだけでサーバーができるみたい。Flaskより小規模。Flaskのほうが人気があるらしい。