Django数据库配置与MySQLdb驱动使用指南
本文详解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数据库操作的核心教程,希望对读者有所帮助,欢迎继续支持本站获取更多技术资源。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









