第3天:模型设计深入

发布于:2024-06-21 ⋅ 阅读:(91) ⋅ 点赞:(0)

第3天:模型设计深入

目标

设计数据模型,理解关系数据库设计原则。

任务概览
  1. 定义数据模型及其关系。
  2. 编写模型字段。
  3. 运行迁移命令makemigrationsmigrate
详细步骤
定义数据模型及其关系

数据模型是Django应用中的核心部分,用于定义数据库中存储的数据结构。Django使用ORM(对象关系映射)来管理数据库操作。

假设我们正在开发一个博客应用,我们需要定义以下模型:

  • Post:博客文章
  • Comment:文章评论
  • Author:文章作者
# myproject/myapp/models.py

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    published_date = models.DateTimeField('date published')
    author = models.ForeignKey(Author, on_delete=models.CASCADE)  # 一对多关系

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')  # 多对一关系
    author = models.ForeignKey(Author, on_delete=models.SET_NULL, null=True)  # 多对一关系,允许评论者为空
    content = models.TextField()
    created_date = models.DateTimeField(auto_now_add=True)
编写模型字段

Django提供了多种字段类型来满足不同的数据存储需求。以下是一些常用的字段类型:

  • CharField:字符串字段,适用于较短的文本。
  • EmailField:电子邮件字段,继承自CharField,带有电子邮件验证。
  • TextField:大文本字段,适用于长文本。
  • DateTimeField:日期时间字段。
  • ForeignKey:外键字段,用于建立多对一关系。
运行迁移命令makemigrationsmigrate
  1. makemigrations:根据你对模型的更改,创建新的迁移文件。

    python manage.py makemigrations
    
  2. migrate:应用迁移到数据库,创建或修改数据库表。

    python manage.py migrate
    
学习要点
  • 理解模型之间的关系:一对一(OneToOneField)、一对多(ForeignKey)、多对多(ManyToManyField)。
  • 熟悉Django的字段类型和参数。
  • 掌握迁移命令的使用。
每日回顾
  • 确保所有模型字段都已正确定义。
  • 运行迁移命令,检查数据库表是否正确创建。

通过今天的学习,你应该能够设计复杂的数据模型,并使用Django的迁移系统来管理数据库的变更。明天,我们将学习如何通过Django的Admin界面来管理这些模型数据。


网站公告

今日签到

点亮在社区的每一天
去签到