准备工作
要在 Django 中使用 MySQL 数据库,您需要完成以下步骤:
-
安装 MySQL 服务器和客户端。你可以从官方网站下载并安装:https://www.mysql.com/downloads/
-
安装 mysqlclient。mysqlclient 是一个 Python 的第三方库,用于连接 MySQL 数据库。您可以使用 pip 安装:
pip install mysqlclient
- 在 Django 项目中添加数据库配置。在项目的 settings.py 文件中,找到 DATABASES 设置,根据您的 MySQL 服务器设置以下参数:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase', # 数据库名称
'USER': 'mydatabaseuser', # 数据库用户
'PASSWORD': 'mypassword', # 数据库密码
'HOST': '127.0.0.1', # 数据库地址
'PORT': '3306', # 数据库端口
}
}
- 同步数据库。在 Django 项目目录下,运行以下命令:
python manage.py migrate
- 测试连接。通过运行以下命令来测试是否可以连接数据库:
python manage.py dbshell
如果一切正常,您将看到 MySQL 终端界面。
希望以上步骤能够帮助您在 Django 中成功连接 MySQL 数据库!
创建表
在 Django 中创建数据库表需要使用 Django 的模型(Model)和迁移(Migration)功能,以下是具体的步骤:
- 定义模型类。在 Django 项目中的一个 App 下的 models.py 文件中定义模型类,例如:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
publish_date = models.DateField()
price = models.FloatField()
- 生成迁移文件。使用以下命令生成模型对应的迁移文件:
python manage.py makemigrations
这将创建一个新的迁移文件(位于应用中的 migrations 目录下)记录模型的改变。
- 同步数据库。使用以下命令将模型应用到数据库中:
python manage.py migrate
这将会执行所有未应用的迁移文件,创建相应的表、字段等结构。
补充:
当有两个表,
-
无约束:
depart_id=models.BigIntegerField(verbose_name='部门id')
-
有约束
depart=models.ForeignKey(to="Department",to_field="id",on_delete=models.CASCADE)
当联表有删除时:
-
级联删除:
depart=models.ForeignKey(to="Department",to_field="id",on_delete=models.CASCADE)
-
置空:
depart=models.ForeignKey(to="Department",to_field="id",null=True,Blank=True,on_delete=models.SET_NULL)
现在您就已经成功创建了一个表,并可以使用 Django 的 ORM 方法来操作它了。例如:
# 创建一条新纪录
book = Book(title='Django 教程', author='张三', publish_date='2023-04-01', price=59.99)
book.save()
# 查询所有的书籍
books = Book.objects.all()
# 删除一条记录
book.delete()
希望以上步骤能够帮助您在 Django 中成功创建 MySQL 数据库表!
各种数据类型
在 Django 中,模型类中的每个属性表示表中的一个字段。下面是 Django 中可用的一些主要字段类型及其对应的 Python 数据类型和一些示例:
- CharField:字符型(字符串)
title = models.CharField(max_length=100)
- TextField:文本类型(字符串)
description = models.TextField()
- IntegerField:整型
age = models.IntegerField()
- FloatField:浮点型
price = models.FloatField()
- DateField:日期类型
publish_date = models.DateField()
- DateTimeField:日期时间类型
created_at = models.DateTimeField()
- BooleanField:布尔类型
is_public = models.BooleanField()
- FileField:文件类型
file = models.FileField()
- ImageField:图片类型
image = models.ImageField()
除了上述字段之外,Django 还有一些其他的字段类型,例如 EmailField、URLField 等。此外,您也可以使用 ForeignKey、OneToOneField 等关系字段来描述表之间的关系。
希望这些举例可以使您更好地了解 Django 模型中可用的数据类型!