Django数据库配置与MySQLdb驱动使用指南

顾言
顾言
发布时间:2026-10-13 | 2人浏览过
原创

本文详解Django项目中MySQL数据库的配置流程,涵盖settings.py参数设置、MySQL开发包及Python驱动的安装方法。通过创建App、编写Models、同步数据库及执行基础增删改查命令,帮助开发者快速掌握Django与MySQL的交互核心步骤。

Django数据库连接与配置

在Django项目中执行数据库操作前,首要任务是建立程序与数据库之间的连接,从而实现数据在应用层与存储层之间的增删改查交互。

Django框架默认采用mysqldb模块来负责与MySQL数据库的通信与数据交换。

接下来详细介绍Django进行数据库操作的具体实施步骤。

第一步:修改settings.py文件以配置数据库连接项。


DATABASES = { 
  'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'mydatabase', 
    'USER': 'mydatabaseuser', 
    'PASSWORD': 'mypassword', 
    'HOST': '127.0.0.1', 
    'PORT': '3306', 
  } 
}

以下是对配置项参数的具体用法说明:

ENGINE参数用于指定数据库后端驱动,不同数据库类型对应的驱动标识不同,常见数据库的ENGINE配置如下所示:

django.db.backends.postgresql 表示PostgreSQL数据库

django.db.backends.mysql 表示MySQL数据库

django.db.backends.sqlite3 表示SQLite数据库

django.db.backends.oracle 表示Oracle数据库

NAME参数指定目标数据库的名称;若使用SQLite,此处需填写数据库文件的绝对路径。

USER参数指定登录数据库的用户名,对于MySQL通常默认为root。

PASSWORD参数指定登录数据库的密码,该密码必须与USER指定的用户权限匹配。

HOST参数指定数据库服务器的地址。鉴于多数数据库采用C/S架构,且开发环境中服务器与客户端常位于同一主机,此处通常默认填写127.0.0.1。

PORT参数指定数据库服务器的端口号,MySQL的默认端口通常为3306。

HOST和PORT字段若使用默认值可不填写,但若修改了默认配置,则必须填入相应的更改后数值。

数据库驱动安装

第二步:安装数据库驱动程序。

完成上述配置后,需安装Python连接MySQL所需的驱动程序。首先需确保系统已安装mysql开发包,可在终端执行以下命令检查:


rpm -qa | grep mysql-devel

若未安装相关组件,请执行以下命令进行安装:


sudo yum install mysql-devel 
#python2.7: 
sudo pip install MySQLdb 
#python3.4: 
sudo pip install PyMySQL

驱动安装完成后,启动Django服务以验证配置。


python manager.py runserver

若启动过程未出现报错信息,说明配置正常,此时可打开新的终端窗口执行以下命令:


python manager.py shell

在终端中输入以下命令以进入交互环境:


from django.db import connection 
cursor = connection.cursor()

若执行上述命令无报错,则表明驱动安装成功,此时可正常使用Django的数据库功能。

创建应用与模型定义

第三步:创建一个Django应用(App)。

一个Django项目可包含多个App,App可视为一组功能集合。例如,产品管理模块包含增删改查等功能,可封装为一个独立的App。每个Django App拥有独立的models、views等组件,便于移植和复用。

在DOS或终端中进入项目目录,执行命令 python manage.py startapp products 以生成目录结构,结果如下:

生成的目录结构代码如下:


products/
  __init__.py
  models.py
  tests.py
  views.py

第四步:编写数据模型(Models)。

模型定义代码如下:


from django.db import models
# Create your models here.
class Company(models.Model):
  full_name = models.CharField(max_length=30)
  address = models.CharField(max_length=50)
  tel = models.CharField(max_length=15,blank=True)
class Product(models.Model):
  product_name = models.CharField(max_length=30)
  price = models.FloatField()
  stock = models.IntegerField(max_length=5)
  company = models.ForeignKey(Company)



第五步:安装模型(修改settings.py)。

在settings.py中注册应用,代码如下:


INSTALLED_APPS = (
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.sites',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'django.contrib.admin',
  'django.contrib.admindocs',
  'DjangoMysqlSite.products',
)

使用命令 python manage.py validate 检查模型的语法和逻辑是否正确。

若检查无误,则执行 python manage.py syncdb 命令以创建数据表。

执行后,数据库中除生成的products_company和products_product表外,还会自动创建其他几个表,这些是Django管理后台所需的系统表,暂无需关注。

数据库增删改查操作

第六步:执行简单的增删改查操作。

进入 python manage.py shell 交互环境。

具体操作代码如下:


>>> from DjangoMysqlSite.products.models import Company
>>> c = Company(full_name='www.pythontab.com',address='beijing',tel=12345678)
>>> c.save()
>>> company_list = Company.objects.all()
>>> company_list
>>> c = Company.objects.get(full_name="www.pythontab.com")
>>> c.tel = 23456789
>>> c.save()
 
>>> c = Company.objects.get(full_name="www.pythontab.com")
>>> c.delete()
#删除所有
>>> Company.objects.all().delete()

以上内容为Django数据库操作的核心教程,希望对读者有所帮助,欢迎继续支持本站获取更多技术资源。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表