Django学习记录(5)Django中Mysql数据库的集成
2020-07-02 17:46
405 查看
Django-MySQL数据库的集成
Django默认集成的是SQLite数据库
在settings.py中配置MySQL连接
需要注意的是django中默认的配置文件是global_settings.py 而不是项目文件中的settings.py
1.安装mysqlclient扩展包
pip install mysqlclient
2. 修改settings.py配置文件中的
DATABASES
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME':'example', # 数据库名称 "HOST": "localhost", # 主机地址 "PORT": 3306, # 端口号 "USER": "example", # 用户名 "PASSWORD": "example", # 密码 "ATOMIC_REQUEST": "True" # 事务的原子性 }
3.配置操作数据库的文件db.py
from django.db import connection as conn def update(sql, args=None): """ 支持 增、删、改 操作, 新增返回 主键, 修改和删除 返回 影响的行数 :param sql: :param args: :return: """ # 获取游标 with conn.cursor() as cursor: # 执行SQL rowcount = cursor.execute(sql, args) return cursor.lastrowid if cursor.lastrowid else rowcount def query_one(sql, args=None): """ 查询单条记录,返回一个 字典格式的数据,如果查不到数据,返回 None :param sql: :param args: :return: """ # 获取游标 with conn.cursor() as cursor: # 执行SQL rowcount = cursor.execute(sql, args) if rowcount > 1: raise Exception("query_one 期望返回一条数据、但实现返回了{}条记录".format(rowcount)) # 获取 结果集 data = cursor.fetchone() if data is not None: # 获取查询的 字段 columns = [column[0] for column in cursor.description] data = dict(zip(columns, data)) return data def query_list(sql, args=None): """ 查询多条记录,返回一个 列表格式的数据,如果查不到数据,返回 [] :param sql: :param args: :return: """ # 获取游标 with conn.cursor() as cursor: # 执行SQL cursor.execute(sql, args) # 获取 结果集 data = cursor.fetchall() # 获取查询的 字段 columns = [column[0] for column in cursor.description] data = [dict(zip(columns, d)) for d in data] return data def call_proc(proc_name, args=None, callback=None): """ 调用存储过程 :param proc_name: :param args: :param callback : 返回存储过程的回调函数,内置cursor参数 :return: """ # 获取游标 with conn.cursor() as cursor: # 执行 存储过程 cursor.callproc(proc_name, args) if callback is not None and type(callback) != type(call_proc): raise Exception("callback(cursor)必须是一个函数!") if callback is not None: return callback(cursor)
自此,MySQL数据库配置完成。
相关文章推荐
- 学习django的心得与记录
- Django学习记录(7)Django中的模型Model
- django学习记录(二)
- 初步学习shiro+redis+springMVC的集成配置,做一下记录文档吧
- Django学习记录之Django 1.8 教程(我只是官网的搬运工)Tutorial Part 1
- django form使用学习记录
- 学习django问题记录
- Django学习记录(三)
- Django新手学习总结整理记录
- 持续集成学习记录
- Django学习记录一:用vscode创建django项目
- django学习——xadmin中集成富文本编辑器ueditor
- mysql之内连接与外连接及子查询学习——Java学习记录之mysql数据库学习
- web 框架 Django 学习记录 (二)把数据库中表内容展示在页面
- 记录在学习ML过程中,在MATLAB中集成LibSVM时遇到的问题
- 记录一下Pycharm django 学习中的错误。
- django模型manager学习记录
- mysql数据库授权学习记录
- django学习记录,动态url,另外发现django的时区问题
- SpringBoot学习笔记-集成其他组件框架记录