models.py相关API
发布日期:2021-05-10 03:53:39 浏览次数:25 分类:精选文章

本文共 1805 字,大约阅读时间需要 6 分钟。

Django 模型与数据库操作教程

1. 创建数据库模型

1.1 创建 Question 模型

from django.db import modelsclass Question(models.Model):    def __str__(self):        return self.question_text        def was_published_recently(self):        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)        question_text = models.CharField(max_length=200)    pub_date = models.DateTimeField('date published')

1.2 创建 Choice 模型

from django.db import modelsclass Choice(models.Model):    def __str__(self):        return self.choice_text        question = models.ForeignKey(Question, on_delete=models.CASCADE)    choice_text = models.CharField(max_length=200)    votes = models.IntegerField(default=0)

2. 数据库操作示例

2.1 在 Python Shell 中执行操作

from polls.models import Choice, Questionfrom django.utils import timezone# 创建并保存一个新的问卷q = Question(    question_text="今天过得怎么样?",    pub_date=timezone.now())q.save()# 取问卷的记录print(q.id)  # 输出:1print(q.question_text)  # 输出:今天过得怎么样?print(q.pub_date)  # 输出:2023-10-01 00:00:00

2.2 查询问卷数据

# 获取所有问卷print(Question.objects.all())  # 输出:
]

2.3 筛选问卷

# 根据问卷 ID 获取具体记录print(Question.objects.filter(id=1))  # 输出:
]

2.4 公共日期查询

# 获取本月发布的问卷print(Question.objects.filter(pub_date__year=timezone.now().year))  # 输出:
]

2.5 增加选择选项

# 获取或创建问卷q = Question.objects.get(pk=1)# 添加新选择q.choice_set.create(choice_text='还好', votes=0)# 查看所有选择print(q.choice_set.all())  # 输出:
,
]

2.6 删除选择

c = q.choice_set.filter(choice_text__startswith='还好')c.delete()

3. 关键技术点

  • ** ForeignKey**:定义子模型之间的关系
  • ** DateTimeField**:用于存储时间戳
  • ** ForeignKeyAssociation**: 通过 related_namerelated_query_name 设置关联名称
  • ** CRUD 操作**:Create, Read, Update, Delete

4. 最佳实践

  • 每个模型都应有明确的 CharFieldDateTimeField
  • 使用 ForeignKey 广泛关联,而不是复杂的多表操作。
  • 最好为每个字段设置适当的 max_lengthnull 参数。
  • 在实际应用中,增添路由文件并配置视图,以支持 API 接口。
上一篇:关于测试
下一篇:settings.py相关配置

发表评论

最新留言

很好
[***.229.124.182]2025年05月06日 03时44分25秒