まずは登録しましょう
www.pythonanywhere.comに行きます
無料のコースを選びます
無料のbeginnerを選びます
残念ながらサイトは1つしか登録できませんが、広告も入らず、MySQL(無料)も使えるようです。
アカウントを登録します
メールアドレスが必要ですが、gmailアカウントでよかったので助かりました
ダッシュボードが表示されます
この画面で色々なコントロールが出来ます
ひな形のWeb Appを作成します
ダッシュボード右上の「Web」をクリックします
Web Appを追加します
残念ながらサイトは1つしか登録できません。お金のある方は有料に切り替えてください
domainはなしで
今回はdomainなしです
さくっとFlaskで実験です
Djangoも選べますが今回はFlaskで
Pythonのバージョンを選びます
2023/10/31現在は、3.10が最新でした
pathや名前はそのまま作ります
変えられるようですが、今回は簡単にそのまま
なにか操作が終わったみたい
Flaskのひな形完成かな。Configuration forの下の水色リンクをクリックします
起動します
FlaskでHello,Worldできあがり
中身はどんなでしょうか
「Files」クリックして、Flask_app.pyをクリックすると中身が見えます
中身はこんな感じ
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も使いません。とにかく簡単に、だれでも作れるということの証明として簡単なページを作ります。
上にフォルダーの階層とファイル一覧がありますが、これを作成、入力、uploadどの方法でも構いません。作成してみてください。
実は先日、ここまでやったところで定時になったので、帰りました。翌日ページを見てみたら、なんとページが動いているのを発見して驚き。あれ?これから設定するつもりだったのにと、唖然
Flaskのひな形を作ってあったので、環境は出来ていて、中身すり替えた感じで動いちゃいました。
動かしてみた
べき乗のページが表示されて
べき乗の計算結果
たしかに動きました
HTTPSを有効にする
ところでべき乗ページですが、セキュリティ保護なしで表示されています。「Web」ページに戻り、下にスクロールすると「Security」という項目があります。ここの「Force HTTPS」を「Enable」に変えてください
変更ソースや環境を再起動する
「Web」ページの先頭に戻り、「reload」サイト名をクリックすると再起動されます
HTTPSになりました
7秒ほどで再起動されて、ページを見てみると「鍵」マーク」に変わってHTTPSになりました
その他の機能
これ以外にもまだまだ出来そうなので、これから調べてみようと思います。
まず、Bashです。コンソールですが、ダッシュボードに「Bash」ボタンがあり、これを押すとBashが起動され、コマンドプロンプトがでてきます
普通に使えます
バージョンは「3.10.5」、対話モードも起動できます。そして先生が生徒のコンソールをチェックするとかのeducationも使える見たいです
1つしか作れないけどどうしよう
Webサイトは無料だと1つしか作れないので、どうしようかと思いましたが、まあ横着にやれば別のメールアドレスでやる方法もあるでしょう
実は、作ったものを削除もできるみたいなので、実験終わったら、「Delete」して作り直すか、複数アプリの管理メニューを作ってMysite以下に論理的に複数つくるかですかね
ということで、即時削除、今度はDjango作ってみる
さきほどの「Delete」ボタンをクリックしたら、確認が出て、それでも「Delete」したら、Appは消えました。
ただ、ファイルは残ったままです。そこで「Files」に行って、「mysite」を消しました。
まっさらになったところで、さっそく「Django」を作ってみました。
これで。「Files」を見ると、確かに変わっています。これでなんとかやりくり出来そうです