• Skip to main content
  • Skip to primary sidebar

学習記録

Flaskをdigitalocean(ubuntu18)にインストール

2018年10月9日 by 河副 太智 Leave a Comment

Contents

      • 0.0.1 ■Puttyから以下のコードをひたすら入力
      • 0.0.2 ■python3.6をインストール
  • 1 ルーティング
  • 2 render_templateによる読み込み

■Puttyから以下のコードをひたすら入力

digitaloceanのputty解説

add-apt-repositoryについて解説

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をインストール

pipで迷ったらここ

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()

参考

参考

 

このエントリーをはてなブックマークに追加

Tweet
[`yahoo` not found]
このエントリーを Google ブックマーク に追加
LinkedIn にシェア
LINEで送る


Filed Under: VPS

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in