0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ド素人がVisualStudioでFlaskを利用した時のTIPS

Last updated at Posted at 2020-11-16

Flaskのインストールまでは割愛します。

###Flaskの初期構成
image.png

###スタートファイル(runserver.py)
初期設定ではスタートアップファイルがrunserver.pyになっています。
『app.run』関数を実行してアプリを起動させること”だけ”がこのrunserver.pyファイルの役割です。

image.png

ソリューションエクスプローラーの『_201114FlaskScraping』フォルダの直下に『init.py』というファイルがあります。この名前のファイルを作っておくと、_201114FlaskScrapingをパッケージとしてインポートできるようになります。
『runserver.py』は『_201114FlaskScrapingというパッケージ』をインポートして、それを起動させているだけ、ということです。
「from _201114FlaskScraping import app」

runserver.py
from os import environ
from _201114FlaskScraping import app
from _201114FlaskScraping import hensu

if __name__ == '__main__':
    HOST = environ.get('SERVER_HOST', 'localhost')
    try:
        PORT = int(environ.get('SERVER_PORT', '5555'))
    except ValueError:
        PORT = 5555

    #本番ローカル変数を取得して切り分け
    if hensu.debug_int()==0:
        app.run(HOST, PORT)
    else:                          
        #テスト環境ではdebugはTrue
        app.run(debug=True, host='0.0.0.0', port=int(environ.get('PORT', 5000)))

###init.pyの役割
init.pyの主な役割は2つあります。
①pythonスクリプトがあるディレクトリを表す
②必要なモジュールをimportするなどの初期化処理を記載し,初期化

__init__.py
"""
The flask application package.
"""

from flask import Flask
app = Flask(__name__)

import _201114FlaskScraping.views

###ルーティング
image.png

view.py
"""
Routes and views for the flask application.
"""
from datetime import datetime
from flask import render_template

from _201114FlaskScraping import app

@app.route('/')
@app.route('/home')
def home():
    """Renders the home page."""
    return render_template(
        'index.html',
        title='Home Page',
        year=datetime.now().year,
    )

@app.route('/contact')
def contact():
    """Renders the contact page."""
    return render_template(
        'contact.html',
        title='Contact',
        year=datetime.now().year,
        message='Your contact page.'
    )

@app.route('/about')
def about():
    """Renders the about page."""
    return render_template(
        'about.html',
        title='About',
        year=datetime.now().year,
        message='Your application description page.'
    )

###form/inputでサーバーサイドに値を渡す

「method="POST" action="/about"」にしてサーバーへ投げる

index.html
    <form method="POST" action="/about">
        <label>テキスト:</label>
        <input type="text" class="form-control" id="name" name="name" placeholder="Name">
        <button type="submit">送信</button>
    </form>

「@app.route('/about',methods=['POST'])」として受け取る

views.py
@app.route('/about',methods=['POST'])
def about():
    """Renders the about page."""
    return render_template(
        'about.html',
        title='About',
        year=datetime.now().year,
        message='Your application description page.'
    )

/aboutページが表示される

image.png

###Flaskの機能を追加していく方向性
基本的な方針は『views.py』に機能を増やしていくことです。
ただ、プログラムが煩雑になるので「BluePrint」をつかっていくとのこと...(続く

###pyファイルを読み込んで利用する
module1.pyを作成する
image.png

module1.py
def test_func():
    return('aaaaa')
views.py
"""
Routes and views for the flask application.
"""

from datetime import datetime
from flask import render_template
from _201114FlaskScraping import app
from _201114FlaskScraping import module1

@app.route('/')
@app.route('/home')
def home():
    """Renders the home page."""
    return render_template(
        'index.html',
        title='Home Page',
        year=datetime.now().year,
    )

@app.route('/contact')
def contact():
    """Renders the contact page."""
    return render_template(
        'contact.html',
        title='Contact',
        year=datetime.now().year,
        message='Your contact page.'
    )

@app.route('/about',methods=['POST'])
def about():
    """Renders the about page."""
    mess=module1.test_func()
    return render_template(
        'about.html',
        title='About',
        year=datetime.now().year,
        message=mess
    )

参考:https://qiita.com/kk7679/items/f12e2794b1bb0625d9fa

###seleniumを使ってみる

image.png

webドライバを配置
image.png

参考:https://qiita.com/nsuhara/items/76ae132734b7e2b352dd
参考:https://qiita.com/ymgn_ll/items/4c2964a14ff80ca2fa28

###通知用にLineを使う
https://tanuhack.com/selenium-bs4-heroku/

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?