■ はじめに
以下の関連記事を使って、Flask(フラスク)内で MySQLに接続して、データをやり取りするMySQLを使う
https://blogs.yahoo.co.jp/dk521123/37744753.html
テンプレートエンジン「jinja2」
https://blogs.yahoo.co.jp/dk521123/37744477.html
■ サンプル
* データベース、テーブル、データは、以下の関連記事で使用したものと同じhttps://blogs.yahoo.co.jp/dk521123/37744753.html
main.py
#!/usr/bin/env python # -*- coding: UTF-8 -*- from flask import Flask, render_template import pymysql app = Flask(__name__) def getDbConnection(): return pymysql.connect( host="localhost", db="sample_db", user="root", password="password", charset="utf8", cursorclass=pymysql.cursors.DictCursor) @app.route("/db/<int:id>") def demo_mysql(id): connection = getDbConnection() cursor = connection.cursor() cursor.execute("SELECT * FROM person WHERE id=%s", id) person = cursor.fetchone() cursor.execute("INSERT INTO person(name) VALUES('Naomi')") connection.commit() cursor.execute("SELECT * FROM person") people = cursor.fetchall() cursor.close() connection.close() return render_template("db-sample.html", person_val = person, person_vals = people) if __name__ == "__main__": app.run()
templates/db-sample.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Flask - Demo</title> </head> <body> <h1>Sample</h1> <p>GET => [{{ person_val.id }}] {{ person_val.name }}!!!</p> {% for person in person_vals: %} <p>[{{ person.id }}] Hello, {{ person.name }}!!!</p> {% endfor %} </body> </html>
実行コマンド
python main.py動作確認
* 後は、ブラウザで以下にアクセスする[[http://localhost:5000/db/2]]