pythonでWebアプリ(pythonanywhere編)

pythonanywhere - flaskを利用してWebアプリ(意訳すると、どこでもPython)

まずは登録しましょう

www.pythonanywhere.comに行きます

pythonanywhere.comデスクトップ

無料のコースを選びます

無料のbeginnerを選びます

残念ながらサイトは1つしか登録できませんが、広告も入らず、MySQL(無料)も使えるようです。

ビギナーコース

アカウントを登録します

メールアドレスが必要ですが、gmailアカウントでよかったので助かりました

アカウント登録

ダッシュボードが表示されます

この画面で色々なコントロールが出来ます

ダッシュボード

ひな形のWeb Appを作成します

ダッシュボード右上の「Web」をクリックします

Web

Web Appを追加します

残念ながらサイトは1つしか登録できません。お金のある方は有料に切り替えてください

Web作成

domainはなしで

今回はdomainなしです

domain登録

さくっとFlaskで実験です

Djangoも選べますが今回はFlaskで

Flask選択

Pythonのバージョンを選びます

2023/10/31現在は、3.10が最新でした

3.10選択

pathや名前はそのまま作ります

変えられるようですが、今回は簡単にそのまま

path選択

なにか操作が終わったみたい

Flaskのひな形完成かな。Configuration forの下の水色リンクをクリックします

app作成終了

起動します

FlaskでHello,Worldできあがり

実行

中身はどんなでしょうか

「Files」クリックして、Flask_app.pyをクリックすると中身が見えます

Flaskソース

中身はこんな感じ

Flaskのソースが見えます

Flaskソース

Web Appを改造します

サンプルとして、「PythonでWeb(deta.spaceの使用方法)の中で「deta.spaceでFormデータ受け渡し」でやっている、べき乗の計算をするWebサンプルのソースをそのまま使ってpythonanywhereで、同じことができるかやってみます。

mysite以下に以下のフォルダーとファイルを作成していきます
flask_app.py
\templates
     index.html 
     calc.html
\static
      style.css

deta.spaceではmain.pyでやっていましたが、今回flask_app.pyとなっていますので、ここは変更します。ソースコードは以前のページからコピーしてください。

また、環境ファイル等はいっさい作っていません。また、色々なpythonanywhereの解説ページにあるような、githubもbashもなにも使いません。Tokenも使いません。とにかく簡単に、だれでも作れるということの証明として簡単なページを作ります。

Filesに環境を作る

上にフォルダーの階層とファイル一覧がありますが、これを作成、入力、uploadどの方法でも構いません。作成してみてください。

実は先日、ここまでやったところで定時になったので、帰りました。翌日ページを見てみたら、なんとページが動いているのを発見して驚き。あれ?これから設定するつもりだったのにと、唖然

Flaskのひな形を作ってあったので、環境は出来ていて、中身すり替えた感じで動いちゃいました。

動かしてみた

べき乗のページが表示されて

べき乗ページ

べき乗の計算結果

たしかに動きました

べき乗結果

HTTPSを有効にする

ところでべき乗ページですが、セキュリティ保護なしで表示されています。「Web」ページに戻り、下にスクロールすると「Security」という項目があります。ここの「Force HTTPS」を「Enable」に変えてください

べき乗結果

変更ソースや環境を再起動する

「Web」ページの先頭に戻り、「reload」サイト名をクリックすると再起動されます

書き換え

HTTPSになりました

7秒ほどで再起動されて、ページを見てみると「鍵」マーク」に変わってHTTPSになりました

HTTPS

その他の機能

これ以外にもまだまだ出来そうなので、これから調べてみようと思います。

まず、Bashです。コンソールですが、ダッシュボードに「Bash」ボタンがあり、これを押すとBashが起動され、コマンドプロンプトがでてきます

bash

普通に使えます

バージョンは「3.10.5」、対話モードも起動できます。そして先生が生徒のコンソールをチェックするとかのeducationも使える見たいです

console

1つしか作れないけどどうしよう

Webサイトは無料だと1つしか作れないので、どうしようかと思いましたが、まあ横着にやれば別のメールアドレスでやる方法もあるでしょう

実は、作ったものを削除もできるみたいなので、実験終わったら、「Delete」して作り直すか、複数アプリの管理メニューを作ってMysite以下に論理的に複数つくるかですかね

delete

ということで、即時削除、今度はDjango作ってみる

さきほどの「Delete」ボタンをクリックしたら、確認が出て、それでも「Delete」したら、Appは消えました。

ただ、ファイルは残ったままです。そこで「Files」に行って、「mysite」を消しました。

まっさらになったところで、さっそく「Django」を作ってみました。

Django初期画面

これで。「Files」を見ると、確かに変わっています。これでなんとかやりくり出来そうです