Django连接MySQL数据库及原生SQL操作指南

Owen
Owen
发布时间:2026-10-13| 4人浏览过
原创

本文详解Django连接MySQL数据库的配置方法,重点介绍如何通过Django封装的connection对象执行原生SQL语句。内容涵盖settings.py配置、cursor游标常用接口(execute、fetchall等)及Python DB API规范,提供完整代码示例,帮助开发者掌握底层数据库操作技巧。

Django连接MySQL数据库及原生SQL操作指南

前言

本文主要介绍Django配置连接数据库及使用原生SQL语句的相关方法,供读者参考学习。

Django配置连接数据库:

在操作数据库之前,首先需要建立数据库连接。本文以配置MySQL为例进行讲解。Django连接数据库无需单独创建连接对象,只需在settings.py文件中完成相关配置即可。

示例代码如下:


DATABASES = {
 'default': {
  # 数据库引擎(是mysql还是oracle等)
  'ENGINE': 'django.db.backends.mysql',
  # 数据库的名字
  'NAME': 'dfz',
  # 连接mysql数据库的用户名
  'USER': 'root',
  # 连接mysql数据库的密码
  'PASSWORD': 'root',
  # mysql数据库的主机地址
  'HOST': '127.0.0.1',
  # mysql数据库的端口号
  'PORT': '3306',
 }
}

在Django中操作数据库:

Django中操作数据库主要有两种方式:使用原生SQL语句或使用ORM模型。本节首先讲解第一种方式。

在Django中使用原生SQL语句,实质上是利用Python DB API接口进行操作。若MySQL驱动使用pymysql,则通过pymysql操作;Django已封装好数据库连接部分,只需在settings.py中配置好连接信息,即可直接使用Django提供的接口进行操作。示例代码如下:


# 使用django封装好的connection对象,会自动读取settings.py中数据库的配置信息
from django.db import connection

# 获取游标对象
cursor = connection.cursor()
# 拿到游标对象后执行sql语句
cursor.execute("select * from book")
# 获取所有的数据
rows = cursor.fetchall()
# 遍历查询到的数据
for row in rows:
 print(row)

上述的execute以及fetchall方法均为Python DB API规范中定义的标准接口。任何使用Python操作MySQL的驱动程序均应遵循此规范。因此,无论使用pymysql、mysqlclient还是mysqdb,其接口保持一致。更多规范详情可参考:https://www.python.org/dev/peps/pep-0249/。

Python DB API规范下cursor对象常用接口:

1、description:若cursor执行了查询SQL代码,读取cursor.description属性将返回一个列表,该列表包含元组,元组元素分别为(name,type_code,display_size,internal_size,precision,scale,null_ok)。其中,name表示查询结果的字段名称,其他参数目前作用有限。

2、rowcount:表示执行SQL语句后受影响的行数。

3、close:用于关闭游标。关闭后游标将不可再用,否则将抛出异常。

4、execute(sql[,parameters]):用于执行特定的SQL语句。若执行时需传递参数,可通过parameters参数传入。示例代码如下:


 cursor.execute("select * from article where id=%s",(1,))

5、fetchone:在执行查询操作后,用于获取第一条数据。

6、fetchmany(size):在执行查询操作后,用于获取多条数据。具体数量取决于传入的size参数。若未传入size参数,默认获取第一条数据。

7、fetchall:用于获取所有满足SQL语句的数据。

总结

以上就是本文的全部内容,希望本文的内容对大家的学习或工作具有一定的参考学习价值。如有疑问,欢迎留言交流,感谢大家对本站的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。