当前位置: 首页 > news >正文

python中MySQL(pymsql)的使用基础

  1. 要在python中使用MySQL数据库,首先需要安装pymysql,如果需要使用MySQL连接池,还需要安装dbutils
  pip install pymysqlpip install dbutils
  1. 在项目目录中的utils或config目录中(没有可以新建一个)新建一个db.py文件(文件名可以自己随便起)
# 1. 先引入pymysql
import pymysql
# 2. 引入数据库工具
from dbutils.pooled_db import PooledDB# 3. 数据库配置
db_config = {'host': '192.168.1.119','port': 3306,'user': 'root','passwd': 'root','db': 'refresh_orders','charset': 'utf8'}# 4. 创建连接池
try:mysql_pool = PooledDB(creator=pymysql,  # 使用链接数据库的模块maxconnections=6,  # 连接池允许的最大连接数,0和None表示不限制连接数mincached=2,  # 初始化时,链接池中至少创建的空闲的链接,0表示不创建maxcached=5,  # 链接池中最多闲置的链接,0和None不限制maxshared=3,  # 链接池中最多共享的链接数量,0和None表示blocking=True,  # 连接池中如果没有可用连接后,是否阻塞等待;True表示阻塞,False表示不等待然后报错setsession=[],  # 开启会话ping=0,  # ping MySQL服务端,检查是否服务可用**db_config   # 数据库连接参数)
except Exception as e:print(e)# 5. 定义方法(函数)
def get_conn():# 获取连接return mysql_pool.connection()def fetch_one(sql, args=None):# 获取单条数据conn = get_conn()cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)cursor.execute(sql, args)result = cursor.fetchone()close_conn(conn, cursor)return resultdef fetch_all(sql, args=None):# 获取单条数据conn = get_conn()cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)cursor.execute(sql, args)result = cursor.fetchall()close_conn(conn, cursor)return resultdef create(sql, args=None):# 创建数据conn = get_conn()cursor = conn.cursor()try:cursor.execute(sql, args)  # 执行sql语句conn.commit()   # 提交return cursor.lastrowid   # 返回插入数据的idexcept Exception as e:print(e)finally:close_conn(conn, cursor)"""
关闭连接
"""
def close_conn(conn,cursor):if cursor:cursor.close()if conn:conn.close()
  1. 在项目中其它地方需要使用的地方先引入db,然后调用相应的函数(方法)
from flask import Blueprint, request,session,jsonify,render_template,redirect
from utils import dbfrom flask import Blueprint, request,session,jsonify,render_template,redirect
from utils import db
from utils import cacheod = Blueprint('order',__name__)ADMIN = 0
USER = 1@od.route('/order/list')
def list():# 从cookie中获取用户信息user = session.get('user_info')data_list = []if user['role'] == ADMIN:# data_list = db.fetch_all("select * from orders")# 连表查询 left joindata_list = db.fetch_all("select o.id, o.url, o.count, o.status, u.real_name from orders o left join users u on o.user_id=u.id")else:# 连表查询 left joindata_list = db.fetch_all("select o.id, o.url, o.count, o.status, u.real_name from orders o left join users u on o.user_id=u.id where o.user_id=%s", [user['id']])status_map = {0: {'text':'待处理', 'class':'info'}, 1: {"text":'处理中...', 'class':'warning'}, 2: {"text":'已完成', 'class':'success'}, 3: {"text":'失败', 'class':'danger'}}return render_template('order_list.html', order_list=data_list, status_map=status_map)@od.route('/order/create', methods=['GET','POST'])
def create():if request.method == 'POST':url = request.form.get('url')count = request.form.get('count')if not url or not count: return render_template('order_create.html', error='数据不完整, 请填写完整的订单信息')user = session.get('user_info')sql = "insert into orders(url,count,status,user_id) values(%s,%s,0,%s)"order_id = db.create(sql, [url, count, user['id']])print(order_id)# todo: 写入redis队列cache.push_task_queue(order_id)return redirect('/order/list')return render_template('order_create.html')
http://www.jsqmd.com/news/36616/

相关文章:

  • 水箱液位pid控制仿真,综合一阶滞后对象+阀门流量特性+不同厂家pid算法
  • DeepSeek大模型应用与实践 掌握的知识内容
  • 2025年山东视保姆公司综合实力榜单:视保姆眼镜公司/视保姆3V疗法/视保姆镜架源头企业精选
  • AI大模型高级应用 掌握的知识内容
  • 会议中心-贪心/dp
  • 安卓app自动化操作方案实现
  • 详细介绍:热门编程语言的排名及开源贡献比例表格-截至2025年10月
  • 二进制题
  • 人工智能工程技术,掌握的知识内容
  • SQLite 连接串说明
  • SRS(simple-rtmp-server) 一快速环境搭建
  • SQL中GROUP BY WITH ROLLUP和GROUPING 函数的使用
  • ⚡️ 高性能绿色Markdown文档阅读器:Litho Book技能架构深度解析
  • 完整教程:深度学习实战:从图像分类到自然语言处理的完整指南
  • 【完整源码+内容集+部署教程】 黄瓜叶片检测系统源码和数据集:改进yolo11-RVB
  • EasyGBS/EasyNVR高并发适配!PostgreSQL部署指南
  • 详细介绍:K8S(七)—— Kubernetes Pod 进阶配置与生命周期管理全解析
  • 2025年门卫室岗亭源头厂家综合实力榜单:形象岗亭/小区值班岗亭/钢结构吸烟亭源头厂家精选
  • 2025 11 10
  • 2025 ICPC 南京站 游记
  • fastgithub
  • 2025年工业制冷优质供应商Top 5榜单:专业评测与推荐
  • 树莓派性能分析脚本
  • windows客户端配置免密上传代码到gitlab
  • 2025年餐盒吸塑机批发厂家综合实力榜单:水果盒吸塑机/吸塑成型设备/酒托吸塑成型机源头厂家精选
  • PDG常见问题
  • 2025年工业制冷供应商综合实力排行榜:专业评测与选择指南
  • 现今工业制冷实力厂家评测
  • 日志模块
  • 2025年图书馆书架定制生产厂家权威推荐榜单:儿童书架/学生书架/密集书架源头厂家精选