【10.0】Flask框架之数据库连接池

【一】引入

【1】正常创建数据库对象

import uuid
import pymysql
from flask import Flask, g, request, session
from flask_session import RedisSessionInterface
from pymysql.cursors import DictCursor
from redis import Redis
from flask_session import Session

app = Flask(__name__)
app.debug = True
app.secret_key = uuid.uuid4()

# (1)创建链接对象
conn = pymysql.connect(
    user="root",
    password="1314521",
    host="localhost",
    port=3306,
    database="test"
)

# (2)创建 cursor 对象
# DictCursor : 序列化查到的数据是字典格式
cursor = conn.cursor(cursor=DictCursor)


@app.route('/', methods=['GET', 'POST'])
def index():
    cursor.execute("SELECT * FROM test WHERE ID < 10")
    res = cursor.fetchall()
    print(res)
    return 'index'


if __name__ == '__main__':
    app.run()

'''
问题:
   conn 和 cursor 是全局的,多个进程同时操作 数据库会发生数据库错乱
   conn 和 cursor 要在视图函数中独立生成
   
   # 在Django中使用orm语句时,会创建一个链接对象,执行,执行完毕后释放链接对象
'''
  • 会产生问题
    • conn 和 cursor 是全局的,多个进程同时操作 数据库会发生数据库错乱
    • conn 和 cursor 要在视图函数中独立生成

在Django中使用orm语句时,会创建一个链接对象,执行,执行完毕后释放链接对象

  • 优化后
import uuid
import pymysql
from flask import Flask, g, request, session
from flask_session import RedisSessionInterface
from pymysql.cursors import DictCursor
from redis im
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值