dejerine’s blog

千葉のとある街に住むサーファーの週末日記。「海の記録」や「食」「アメリカで生活していた頃の思い出」などを気ままに書いています。

pythonanywhereを利用してFlaskでWebアプリを作ってみる

pythonを使い始めて半年。時間はかかるけど、localで意図するwebアプリを作れるようになってきた。Herokuを使ってwebアプリを立ち上げたりもしてみたが、無料サーバーとして使えそうなpythonanywhereというものを見つけた。コロナウイルスで不要不急な外出の自粛と外が雪だったので、pythonanywhereを利用してFlaskでWebアプリを作ってみることにした。

追記: urllib (pandasのread_html), requestsを使うと、無料版だとホワイトリストに含まれないサイトに対してはHTTP Error 403: Forbiddenになる。以下ホワイトリスト

https://www.pythonanywhere.com/whitelist/

これ以外のサイトをスクレイピングするような動作を含むアプリを作る場合は有料にする必要がありそう。
詳細はこちら
https://help.pythonanywhere.com/pages/403ForbiddenError


pythonanywhereの特徴

  • 無料のPython環境
  • webサイトを構築したりブラウザから直接コードできる
  • 有料プランは$5/月から
  • ウェブサーバーやLinuxマシンを維持しなくていい
  • セキュリティーパッチもインストールしなくてもいい
  • ウェブフレームワークとしてDjango, web2py, Flask, Bottleが使える

使い方

  • 図のような画面が表示されるので緑色の"Start running Python online in less than a minute!"をクリック

f:id:dejerine:20200329102011p:plain
セットアップ画面

  • "Create a Beginner account"をクリック

f:id:dejerine:20200329102310p:plain
2

  • 必要な情報(username, email, passwords)を入力する

f:id:dejerine:20200329102409p:plain
3

  • こんなポップアップが出てくるので一応"Next"を押してチェックしてみる


f:id:dejerine:20200329113049p:plain
4

コンソールにコマンドをタイプして結果がすぐに見られる、コンソールにはPython コンソールとBashコンソール(terminal)がある、Fileを作ったりするボタン、Web appsのボタン、Jupyter Notebooksを使うボタン、’Open Web tab’をクリックすることでWeb appsが作れる、有料サービスだとJupyter Notebooksが使える等の情報がツアー形式で説明される。後からでも確認できる(と思われる)ので読み飛ばしても大丈夫そう。



f:id:dejerine:20200329114552p:plain
5

  • ログインが完了するとこんな画面が出てくる。Warningが出ているが、登録したemailに送られてきた確認アドレスにアクセスすると消えた。
  • ウェブアプリを作るためにまず右下の"Open Web Tab"ボタンをクリック(上の写真の赤丸)する。

  • 左の青いボタンの"Add a new web app"をクリック

f:id:dejerine:20200329115242p:plain
6


  • appのドメインが自動で設定される。"Next"をクリック。


f:id:dejerine:20200329120656p:plain
7

  • どのフレームワークを使うかを選択する画面が出てくるのでFlaskを選択。"Next"をクリック。

f:id:dejerine:20200329120819p:plain
8


  • pythonのバージョンを選択する。とりあえず、3.8を選択。"Next"をクリック。

f:id:dejerine:20200329120943p:plain
9

  • こんな画面が出てくるので、"Next"をクリック。

f:id:dejerine:20200329121249p:plain
10

  • リンクをクリックするとアプリが見られる。最初は下のような画面が出てくる*1

f:id:dejerine:20200329191027p:plain
11

  • 最初の設定だと暗号化されない設定になっている

f:id:dejerine:20200329121557p:plain
12

  • 画面を下にスクロールして"Security"というところでSSL化する。httpをhttps設定にする。

f:id:dejerine:20200329192407p:plain
13

これでWebアプリのセットアップは完了。

実装

  • Webアプリの'/'で表示される文字を書き換えてみる。まずはflask_app.pyファイルを書き換えるために、以下の写真のうな流れでファイルにアクセスする。

f:id:dejerine:20200329193528p:plain
14

f:id:dejerine:20200329193543p:plain
15

ファイルを開くとコードが出てくるので、return 'XXXXXX'という部分を適当に書き換えて、ファイルを保存し、リロードすればホーム画面が書き換わる。

あとは自分の好みで色々と作り上げれば簡単にWebアプリが作れる。これは便利。

Flaskの使い方の本
英語

日本語

*1:ちなみに、無料プランだと3ヶ月に一度は下のオレンジボタンをさなければアプリが消えてしまうので注意が必要。