見出し画像

#2 ロリポップ!サーバでPythonを使ってWebアプリケーションをつくりたい

ロリポップ!サーバでPythonを使ってWebアプリケーションを作ってみたいと考えている初学者の皆様、こんばんは。
前回の「#1 ロリポップ!サーバでPythonを使ってWebアプリケーションをつくりたい」では、ロリポップ!側の設定やサーバに「pip」を入れるまでを行いました。
今回は、Pythonのフレームワークの一つである「Flask」を入れていきたいと思います。
Pythonのフレームワークは複数あるため、その用途によって導入するフレームワークを決めることになるかと思います。フレームワークについては、こちらのサイトを参考にして下さい。

前回に引き続き、今回も主に参考にさせて頂くサイトはこちらのサイトになります。

サイト名:ロリポップ!でpythonのpipを導入し、Flaskの環境を構築する

I .「Flask」のインストール

「Flask」をインストールする前に、前回のお話で説明した通り、サーバに接続しましょう。

サーバに接続することはできましたか?
接続できたら、今度は下記のコマンドを入力して実行します。

pip3 install flask

すると、このように実行結果が表示されると思います。

Defaulting to user installation because normal site-packages is not writeable
Collecting flask
  Downloading Flask-2.0.2-py3-none-any.whl (95 kB)
     |████████████████████████████████| 95 kB 13.9 MB/s            
Collecting Jinja2>=3.0
  Downloading Jinja2-3.0.3-py3-none-any.whl (133 kB)
     |████████████████████████████████| 133 kB 96.5 MB/s            
Collecting Werkzeug>=2.0
  Downloading Werkzeug-2.0.2-py3-none-any.whl (288 kB)
     |████████████████████████████████| 288 kB 52.2 MB/s            
Collecting click>=7.1.2
  Downloading click-8.0.3-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 30.4 MB/s            
Collecting itsdangerous>=2.0
  Downloading itsdangerous-2.0.1-py3-none-any.whl (18 kB)
Collecting importlib-metadata
  Downloading importlib_metadata-4.8.2-py3-none-any.whl (17 kB)
Collecting MarkupSafe>=2.0
  Downloading MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (31 kB)
Collecting zipp>=0.5
  Downloading zipp-3.6.0-py3-none-any.whl (5.3 kB)
Collecting typing-extensions>=3.6.4
  Downloading typing_extensions-4.0.1-py3-none-any.whl (22 kB)
Installing collected packages: zipp, typing-extensions, MarkupSafe, importlib-metadata, Werkzeug, Jinja2, itsdangerous, click, flask
Successfully installed Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.2 click-8.0.3 flask-2.0.2 importlib-metadata-4.8.2 itsdangerous-2.0.1 typing-extensions-4.0.1 zipp-3.6.0

次に、ロリポップ!のユーザ専用ページの左側のメニューから、「ロリポップ!FTP」を選択して実行します。

すると、FTPでディレクトリの確認をすることができます。

え、、なんか参考サイトと違う気が、、(汗)
参考サイトの表現をもう一度確認します。

「ルートフォルダにソースコードをおいて、きちんと動くかテストしていきます。階層はこんな感じです。」

出典:https://dattesar.com/lolipop-pip-flask/#Flask%E3%81%AE%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89

あ、もしかして自分で作成するのかな??
もしそうであれば、ロリポップ!FTPで直接作成することもできますが、ここはちょっと「Visual Studio Code」のエディタをつかってフォルダやディレクトリを作成して、「Cyberduck」でロリポップ!サーバにアップロードする方法で行いたいと思います。
パーミッション設定は、ロリポップ!FTPで行いたいと思います。

0.「Visual Studio Code」と「Cyberduck」の準備

作業を開始する前に、「Visual Studio Code」と「Cyberduck」をインストールしておきます。インストールの仕方については、色々参考サイトがありますので、ご自身でお調べ頂ければと思います。

1.ソースコードの作成

まず初めに、自分のPCのデスクトップ上に「flask-test」と名前をつけたディレクトリを作成します。

今の状態は中身は空です。

次に、「Visual Studio Code」で上のディレクトリを開きます。ドラッグ&ドロップでも開くことができます。
そして、「Visual Studio Code」で下記の通りにファイルなどを作成します。

そして、それぞれのフォルダに、下記の通りコードを書いていきます。

.htaccessの中身

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /flask-test/index.cgi/$1 [QSA,L]

helloFlask.pyの中身

from flask import Flask , render_template


app = Flask(__name__)


@app.route('/')
def hello():
    return '<h1>Hello World</h1>'


@app.route('/render')
def index():
    return render_template('render.html')


if __name__ == '__main__':
    app.run(debug=True)

index.cgiの中身

#!/usr/local/bin/python3
from wsgiref.handlers import CGIHandler
from helloFlask import app
CGIHandler().run(app)

render.htmlの中身

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
    <h1>render template</h1>
    </body>
</html>

コードを書いたら、保存を忘れずに。次は「Cyberduck」を使ってファイルをサーバにアップロードします。

2.「Cyberduck」でファイルのアップロードを行う

「Cyberduck」を開くと、左下に「+」と表示されている部分がありますので、そちらをクリックします。

※「新規接続」というメニューが上に表示されていますが、こちらから入ると、「接続モード」の設定をすることができませんでした(なぜだろ、、)。なので、必ず「+」から入るようにして下さい。

すると、下記のような画面が出てくると思います。

ここで、こちらのサイトを参考に、情報を入力していきます。
必要な情報は、ロリポップ!のユーザー専用ページの左のメニューから入っていきます。

ユーザー専用ページの左側のメニュー
こちらが必要な情報

参考サイトに記載されている通りに情報を入力していきましょう。

必要な情報を入力後に、一旦ウインドウを閉じると、ブックマークに登録されていると思いますので、こちらの部分をダブルクリックしてサーバへの接続を開始します。

こちらをクリックして接続開始する

接続できると、このような画面が出てくるはず。

これでロリポップ!サーバに接続することができました。
あとは、上のメニューに表示されている「アップロード」から、PCのデスクトップ上で作成した「flask-test」のディレクトリをロリポップ!サーバにアップロードします。すると、下の通りになります。

これで、ソースコードの配置は完了しました。次に、各ファイルのパーミッションの設定を行います。パーミッションの設定は、「ロリポップ!FTP」の画面から設定を行います。

3.ファイルのパーミッション設定

「flask-test」のディレクトリにあるファイルのパーミッションの値を変更します。各ファイルのパーミッション値を変更する箇所は、下の画像の数値の部分になります。

現在の属性の数値の部分を変更する

各ファイルのパーミッションの値は下記の通りになります。

各ファイルのパーミッション値

  • .htaccess→604

  • helloFlask.py→600

  • index.cgi→700

  • render.html(templatesディレクトリ内)→604

これで、「Flask」のインストール及び設定は終了です。あとは、下のテストを行って、画像通りに表示されているか確認を行なって下さい。

4.テスト

/flask-test

ホームページアドレス/flask-test

/flask-test/render

ホームページアドレス/flask-test/render

5.注意

参考にさせて頂いているサイトロリポップ!でpythonのpipを導入し、Flaskの環境を構築する では、CGIを暴走させると、以降一切CGIを利用できなくなる警告が記載されていますので、心配な方は、参考サイトをもとにテストを行うことをオススメします。

万が一、CGIを暴走させるなどしてサーバーをダウン及び負荷をかけるような場合は、以降、一切CGIを利用できなくなります。利用前にローカル環境で十分にテストしましょう。

出典:ロリポップ!でpythonのpipを導入し、Flaskの環境を構築する 

II.次回

次回は、今回導入したフレームワーク「Flask」を使った簡単なアプリを作成していきたいと思います。

この記事が気に入ったらサポートをしてみませんか?