Flask 使用 MySQL Connector
本文的參考專案 https://github.com/shinder/flask-practice
連線 MySQL DB 的套件,這邊介紹最陽春的,就是 MySQL 官方出的 mysql-connector。可以依照 mysql-connector 開發人員指引 介紹的方式安裝。用 pip 安裝應該是最簡單的:
pip install mysql-connector
連線的功能我們把它獨立出來成為一個模組 app/modules/mysql_connection.py
,其中 get_cursor() 可以同時回傳游標物件和連線物件:
import mysql.connector
connect_data = {
'host': 'localhost',
'user': 'root',
'passwd': 'root',
'database': 'test'
}
cnx = None
def get_connection():
global cnx # 將連線物件存放在全域變數
if not cnx:
cnx = mysql.connector.connect(**connect_data)
return cnx
else:
return cnx
def get_cursor():
cursor = get_connection().cursor(dictionary=True) # 讀出資料使用 dict,預設為 tuple
return (cursor, get_connection()) # 同時回傳 cursor 和 connection
在主檔案定義 route:
import modules.mysql_connection
@app.route('/try-mysql')
def try_mysql():
(cursor, cnx) = modules.mysql_connection.get_cursor()
sql = ("SELECT * FROM address_book")
cursor.execute(sql)
return render_template('data_table.html', t_data=cursor.fetchall())
樣版檔 app/templates/data_table.html
:
<tbody>
{% for i in t_data %}
<tr>
<td>{{ i.name }}</td>
<td>{{ i.email }}</td>
</tr>
{% endfor %}
</tbody>
沒有留言:
張貼留言