Решил это дело вот так:
from flask import Flask, g
import pymysql
app = Flask(__name__)
@app.before_request
def before_request():
g.conn = pymysql.connect(host='localhost',
user='pm',
passwd='wccme',
db='pcm',
charset='utf8')
g.cur = g.conn.cursor(pymysql.cursors.DictCursor)
@app.teardown_request
def close_mysql(exception=None):
g.conn.close()
@app.route('/')
def hello_world():
try:
g.cur.execute("select * from news where id=209")
except Exception as e:
print(e)
print(g.cur.fetchall())
return "aaa"
if __name__ == '__main__':
app.run()
Засунул коннект к базе в before_request, а закрытие соединений в teardown_request.
После этого можно как угодно рестартить mysql.