今日のPython20「WEBアプリに挑戦3:pythonanywhereでWebサイト立ち上げ」

2024年12月7日土曜日

Python Python_WEBアプリ編 公開

t f B! P L

はじめに

前回、前々回と、2回にわたって、ローカルで仮想環境を構築して、WEBアプリを作成し、試してみました。(→参照

しかし、実際にWebサイトを立ち上げて、このアプリを公開したら、本当に動くのでしょうか?

このような疑問が湧き上がってきましたので、Webサイトを立ち上げて、テスト的に試してみることにしました。




今回実施したこと


レンタルサーバー探し


まずは、Webサイトを公開するレンタルサーバー(ホスティングサービス)を探さないといけません。

ホスティングサービスの中にはPython プログラムを実行できる環境が無いところもあるようですので、Python プログラムを実行できる環境があるところから、選ぶことになります。

とは言っても、たくさんあるようなので、その中からいくつか検討した結果、今回は「Pythonanywhere」 に申し込むことにしました。

常時接続、広告無し、でサーバーを無料利用できて、フレームワークも Django、 Flask、 がしっかり使えるようですし、データベースに MySQL も利用可能。

サーバー上のファイル操作も分かりやすい、というふうに紹介されていましたので、ここに決めました。

ディスク容量が512MBで、少し心許ないですが、有料契約に切り替えれば解消するようです。

少し使ってみて、運用がうまくいきそうなら、検討しようと思います。

それでは、具体的に申し込みから公開までを紹介します。



申し込みから公開


公式サイトにアクセス


まずは、公式サイトにアクセスします。
↓こちらからです。


アカウントを作成


公式サイトにアクセスしたら、次は画面上からアカウントの作成に移ります。
画面中央に緑地に白文字で「Start running Python online ~」と記載されているところがありますので、ここをクリックします。



次のページに移ると、契約の種類がいくつか表示されます。
今回は、画面上部のBeginnerプランの、「Create a Beginner account 」をクリック。



すると、名前、メールアドレス、パスワードを入力する画面に移ります。これらを入力して送信すれば、アカウントの作成が完了です。


ファイルをアップロード



アカウントが作成できたら、「DASHBOARD」という表題の画面が開きます。

いわゆるトップの画面ですね。

次は、WEBサイトに公開するコンテンツをサーバーにアップロードします。


「DASHBOARD」画面の下のほうにいくつかのメニュー表示があるので「Files」メニューから、アップロードします。




このとき、いくつかのファイルとフォルダをまとめてアップロードしますので、コンテンツをZIPファイルにしておきます。

今回は、前回までに作成したものを、アップロードします。下図のようなフォルダ構成のZIPファイルを作成して、アップロードしました。

\UPLOAD\
  |--templates\
  | |--index.html
   |--static\
  | |--index.css
  |--main.py



引き続き、「DASHBOARD」画面のメニュー「Console」の「$Bash」でコンソール画面を開いて、アップロードしたZIPファイルを解凍します。

コマンドを次のように打つと解凍出来ます。



仮想環境の設定


解凍が終わったら、引き続き、コンソール画面で仮想環境を設定します。

Pythonのバージョンは自分できめます

mkvirtualenv todo --python=python3.10


利用するモジュールもインポート

pip install Flask



「DASHBOARD」の画面に戻って、メニューの一番右にある「Web apps」を選びます。






次の画面で「Add a new web app」をクリック。


次へをクリック。


このサイトで使用するフレームワークを選びます。
今回はFLASKを選択




Pythonのバージョンを選びます。
今回は3.10を選択




これで、サイトが公開されました。


ファイルへパスを通す



あとは、先ほどアップロードした、ファイルのmain.pyへパスを通します。
この画面の下のほうにVirtualenvとありますので


todoと入力してチェックをクリック
そして、同じ画面のVirtualenvの上にCodeとありますので、そこでWSGI Configuration file を選択。



この画面でpyファイルを書き換えます。

この2か所を書き換えました。下線部分が書き換えたところです。

    【元】    project_home = '/home/newrongo555/mysite'

             ↓元の記述をこのように変更
           project_home = '/home/newrongo555/UPLOAD'

    【元】    from flask_app import app as application  # noqa

             ↓元の記述をこのように変更
             from main import app as application  # noqa


main.pyまでのパスがわからないときは、DASHBOARDの画面に戻って、FILESのBrows filesから確認できます。





結果



こんな感じで表示されました。(原稿作成時)



今後、新しいファイルをアップロードした後は、「All Web apps」から



「Reload:」すると、ページが更新できます。



おわりに

ローカルで作成したものをそのまま使用しても、問題なく表示されましたので、これから安心してローカルの仮想環境で開発を継続していけそうです。








このブログを検索

アーカイブ

カテゴリー

QooQ