- import os
- import mysql.connector as sql
- from werkzeug.exceptions import HTTPException, BadRequest
- from flask import Flask, g, request, json
- app = Flask(__name__)
- #[ DB 處裡 ]#############################################################
- # https://docsxyz.com/zh-hant/wiki/python/connector-python-connectargs
- db_config = {
- 'host' : "localhost",
- 'user' : "XXXX",
- 'passwd' : "XXXX",
- 'db' : 'XXXX',
- 'use_pure' : True,
- 'autocommit': True,
- 'charset' : 'utf8',
- }
- @app.before_request
- def before_request():
- # 在 request 前開啟 DB 連線
- # g 是 Flask global 在每個 request 有獨立的 context
- g.cnt = sql.connect(**db_config)
- g.cursor = g.cnt.cursor(dictionary = True)
- @app.after_request
- def after_request(response):
- # 在 request 後結束 DB 連線
- cursor = g.get('cursor', None)
- if cursor is not None:
- # 當 cursor 還有 row 沒有取出,close 會發生錯誤
- if cursor.with_rows : cursor.fetchall()
- cursor.close()
- cnt = g.get('cnt', None)
- if cnt is not None:
- cnt.close()
- return response
2023-02-21 10:05
[Python] Flask MySQL 連線管理
訂閱:
張貼留言 (Atom)
0 回應:
張貼留言