それっぽい技術メモ

UNIXからpythonまで、技術系メモ。知識は人類の共有財産です。

python + Flask 一番最初に作るやつ hello python! をweb表示

とりあえず、ブラウザで hello python! って表示させるのが一番先なので、これを作ってここからどんどん派生させて、最終的にpython + Flask + MySQLのwebアプリを目指します。

  1. hello.html
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>hello python!っていうページ</title>
        <link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}">
    </head>
    <body>
        <h1>hello, python!</h1>
        <h2>
            <ul>
                <li><a href="./set">view logs</a></li>
                <li><a href="./view">store logs</a></li>
            </ul>
        </h2>
        <hr>
    </body>
</html>

cssのパスを指定しています。
おなじみbootstrapを使いこなしたいと思ってます。
static DIRの配下にcssを格納し、flaskの url_forを使ってパスを渡しています。
まあ、こうやって書けばパスが渡るんだと思っていれば、OKかと。
やりたいことが実現できる!を最優先なので、細かいことは別の機会に。

    でリンクをきっていますが、これはこの後で実現したい機能用なので、今は無視。 python + flaskでwebページを表示する場合、イメージはこんな感じ。
    f:id:kopumin:20200604174823p:plain
    python + Flask概要
    で、pythonの本体は、こんな感じになります。

    1. hello.py
    from flask import Flask, render_template
    
    #app
    app = Flask(__name__)
    
    # 画面関連 ==============================================================================
    @app.route('/')
    def render():
        return render_template("hello.html")
    
    #main==============================================================================-
    if __name__ == "__main__":
        app.run(debug=True)
    

    1行目で、Flaskとrender_templateをimportします。
    Flaskは必須。
    render_templateは、pythoのプログラムとhtmlを紐づけるのに使います。

    #app
    app = Flask(_name_)は、フレームワークにFlaskを使ってwebサを立てますと宣言なので、定型お約束です。

    #画面表示
    http://192.168.0.1:5000/〇〇
    /〇〇で呼ばれたリクエストをpythonのプログラムのどこで処理するかを紐づけます。
    今回は / でリクエストなので、
    @app.route('/') 
    に紐づきます。
    http://192.168.0.1:5000/sampleなら、
    @app.route('/sample')に紐づきます。

    render_templateは、プログラムからどのhtmlを呼び出してブラウザに返すかを設定します。
    ビジネスロジックは、def render() ~ returnの間に書きます。
    ここでは、ただhtmlを表示するだけなので、記述なし。

    #main
    最後にwebサを実行するための記述で、基本こうやって書けば動く!の認識でOK.