python mysql集成_django-集成mysql数据库

django-集成mysql数据库

安装 mysqlclient 库

pip install mysqlclient

pip install /path/to/mysqlclient-2.0.1-cp37-cp37m-win_amd64.whl

修改 settings.py 配置文件

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'HOST': '127.0.0.1',

'NAME': 'py2006',

'PORT': 3306,

'USER': 'root',

'PASSWORD': 'root',

'ATOMIC_REQUESTS': True

}

}

修改 db.py 封装的工具类

from django.db import connection as conn

def update(sql, args=None, many=False):

"""

支持 新增、修改、删除

:param sql: 对应动作的SQL语句

:param args: SQL语句对应的参数,支持 tuple, list , dict

:param many : 如果设置为 true, 支持 批量操作

:return: number 影响的行数、 如果是执行的新增命令,返回 插入的主键

"""

# 获取数据库的连接

# 获取游标对象

with conn.cursor() as cursor:

# 执行 SQL语句、并返回影响的行数

if many:

rowcount = cursor.executemany(sql, args)

else:

rowcount = cursor.execute(sql, args)

# 获取最后插入的主键,如果无法获取,则代表不是新增命令

return cursor.lastrowid if cursor.lastrowid is not None else rowcount

def query_one(sql, args=None):

"""

查询单条记录、返回一个字典

:param sql:

:param args:

:return: dict

"""

# 获取数据库的连接

# 获取游标对象

with conn.cursor() as cursor:

# 执行 sql 语句

rowcount = cursor.execute(sql, args)

# 获取查询的结果

if rowcount > 1:

raise Exception("query_one()期待返回1条数据、实际返回的{}条记录".format(rowcount))

elif rowcount == 0:

return None

else:

# 获取插入的字段

columns = [column[0] for column in cursor.description]

# 获取查询的结果

data = cursor.fetchone()

return dict(map(lambda x, y: (x, y), columns, data))

def query_list(sql, args=None):

"""

查询多条记录、返回一个列表且列表中包含的是字典

:param sql:

:param args:

:return: list

"""

# 获取数据库的连接

# 获取游标对象

with conn.cursor() as cursor:

# 执行 sql 语句

rowcount = cursor.execute(sql, args)

# 获取插入的字段

columns = [column[0] for column in cursor.description]

# 获取查询的结果

data = cursor.fetchall()

return [dict(map(lambda x, y: (x, y), columns, d)) for d in data]

如果 mysqlclient 安装失败,提示 VC++ 类似的错误,那么采用下面的方式解决

解决方案 1 : 安装 VC++ (比较大、而且成功后不一定能解决问题)

解决方案 2 : 下载对应的 whl 文件进行离线安装

查看 当前 python 安装的 whl文件的版本

使用 python 命令进入 交互式编程

import pip._internal

pip._internal.pep425tags.get_supported()

原文链接:https://blog.csdn.net/weixin_45006403/article/details/108975895

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值