■Puttyから以下のコードをひたすら入力
sudo apt-get install apt-file
apt –fix-broken install
sudo apt-file update
sudo apt-file search add-apt-repository ## これはなくてもいい?
sudo apt-get install software-properties-common
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install apache2 mysql-client mysql-server
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
■python3.6をインストール
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6 python3.6-dev
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py
python3.6 –version
apt install python3-pip
pip3.6 install mod_wsgi
sudo apt-get install apache2 apache2-dev
pip3.6 install mod_wsgi
■文字列のコピー作業
以下のコードを打ち込むと
mod_wsgi-express module-config
以下のような文字列が出てくるのでコピーする(例)
LoadModule wsgi_module “/usr/local/lib/python3.6/dist-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so”
WSGIPythonHome “/usr”
nano /etc/apache2/mods-available/wsgi.load
nanoで上記文字列を張り付ける
■Flaskのインストール
a2enmod wsgi
service apache2 restart
pip3.6 install Flask
■文字列のコピー作業2
nano /etc/apache2/sites-available/FlaskApp.conf
nanoでconfファイルを開く
以下を張り付けるIPアドレスだけは変更する
1 2 3 4 5 6 7 8 9 10 11 12 |
<VirtualHost *:80> ServerName 192.168.0.1 ServerAdmin youremail@email.com WSGIScriptAlias / /var/www/FlaskApp/FlaskApp.wsgi <Directory /var/www/FlaskApp/FlaskApp/> Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/FlaskApp-error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/FlaskApp-access.log combined </VirtualHost> |
■FlaskAppフォルダを作成
sudo a2ensite FlaskApp
service apache2 reload
mkdir /var/www/FlaskApp
cd /var/www/FlaskApp
nano FlaskApp.wsgi
以下を張り付ける
1 2 3 4 5 6 7 |
#!/usr/bin/python3.6 import sys import logging logging.basicConfig(stream=sys.stderr) sys.path.insert(0,"/var/www/FlaskApp/") from FlaskApp import app as application |
mkdir FlaskApp cd FlaskApp
nano __init__.py
以下を張り付ける
1 2 3 4 5 6 7 8 9 10 11 |
from flask import Flask import sys app = Flask(__name__) @app.route('/') def homepage(): return "Hi there, how ya doin?" if __name__ == "__main__": app.run() |
■python実行
cd /var/www/FlaskApp/FlaskApp
python3.6 __init__.py
service apache2 reload
でブラウザからIPアドレスを打ち込む
以下のように表示される
FTPでの見え方
ルーティング
■ディレクトリ(URL)を指定
以下のようにディレクトリ下にプログラムを配置する場合はhttp://128.199.64.242/abc
@app.route(“/abc”)というようにスラッシュ以下に
ディレクトリ名を任意に入力する。
1 2 3 4 5 6 7 8 9 10 11 |
from flask import Flask import sys app = Flask(__name__) <span style="background-color: #ff0000;">@app.route('/abc')</span> def homepage(): return "こんばんは" if __name__ == "__main__": app.run() |
■複数のページを作成する
@app.routeとdefをそれぞれ作成すると指定したディレクトリ名のURLにて
異なるページを表示する事ができる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from flask import Flask import sys app = Flask(__name__) <span style="color: #000000; background-color: #ff0000;">@app.route('/abc')</span> <span style="background-color: #3366ff;">def homepage():</span> return "こんばんは" <span style="background-color: #ff0000;">@app.route('/def')</span> <span style="background-color: #3366ff;">def aaa():</span> return "こんにちは" if __name__ == "__main__": app.run() |
■動的URLページを作成する
@app.routeの後にディレクトリ名と<name>を記述し、
defの引数にnameを指定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from flask import Flask import sys app = Flask(__name__) <span style="color: #000000;">@app.route('/')</span> def index(): return "こんばんは" @app.route('/bbb/<name>') def bbb(name): return "This is a page for {}".format(name) if __name__ == "__main__": app.run() |
render_templateによる読み込み
上記のままでは複数のページを作成した場合にinitがごちゃごちゃに
なってしまうので、各htmlページを用意し、URLごとに設定した
htmlに飛ぶように設定するにはrender_templeteを使用
※from flask import Flask,render_templateと記述
1 2 3 4 5 6 7 8 9 10 |
from flask import Flask,render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html', message="花子さん") if __name__ == "__main__": app.run() |