python + Flask 一番最初に作るやつ hello python! をweb表示
とりあえず、ブラウザで hello python! って表示させるのが一番先なので、これを作ってここからどんどん派生させて、最終的にpython + Flask + MySQLのwebアプリを目指します。
- 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ページを表示する場合、イメージはこんな感じ。
で、pythonの本体は、こんな感じになります。
- 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.