Django默认集成的是SQLite数据库
需要注意的是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数据库配置完成。