以下の内容はhttps://dk521123.hatenablog.com/entry/2018/09/18/220600より取得しました。


【Python】Flask ~ DB接続 ~

■ はじめに

Flask(フラスク)内で、MySQLに接続して、データをやり取りする

【1】サンプル

 * データベース、テーブル、データは、以下の関連記事で使用したものと同じ

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

関連記事

Python with DB 〜 MySQL
https://dk521123.hatenablog.com/entry/2018/09/14/173900
Flask ~ SQLAlchemy / 入門編 ~
https://dk521123.hatenablog.com/entry/2018/09/19/223200
Flask ~ SQLAlchemy / 基本編 ~
https://dk521123.hatenablog.com/entry/2018/09/23/165130




以上の内容はhttps://dk521123.hatenablog.com/entry/2018/09/18/220600より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14