Django 模型简介
介绍
Django 模型
每个 Django 模型都映射到单个数据库表,模型的每个属性都映射到数据库字段。默认情况下,模型是 Django 的django.db.models.Model的子类。
由于它们是 Django 应用程序内数据的信息来源,因此 Django 提供了一种方法来访问存储的信息以进行 CRUD(创建、检索、更新、删除)操作。此方法称为查询。
示例模型
为了更好地理解模型,下面是具有四个字段的School模型的代码片段:
- 姓名
- 总人口数
- 成立日期
- 是私有的
from django.db import models
class School(models.Model):
name = models.CharField(max_length=20)
total_population = models.IntegerField(default=200)
date_of_establishment = models.DateField()
is_private = models.BooleanField(default=False)
在上面的示例中,School模型映射到数据库中的 School 表。模型属性映射到具有相同定义属性(例如数据类型和默认值)的表列。models.CharField ()函数将生成Varchar或String字段,而models.BooleanField()将在数据库中生成 Boolean 字段。
这些函数提供了数据库操作中急需的抽象,这是 MVC 架构的目标。这使得使用 Django 进行应用程序开发变得更加容易。
作为一个 Python 类,该模型还可以进一步增强函数,以进一步处理从该类创建的对象实例中的数据。
例如,假设您需要检查一所学校的总学生人数和状态。如果该学校是私立学校,则总学生人数不应超过 1,000,如果超过,则应返回一条消息。
def check_population(self):
if self.is_private and self.total_population > 1000:
return "Private school maximum capacity is 1000"
数据库
模型是与数据库交互的组件。在 Django 中,数据库在settings.py文件中定义为配置字典。默认情况下,样板代码会生成与简单 SQLite 数据库的连接。下面是示例配置字典。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
由于配置是字典的字典,这意味着 Django 项目中可以有多个数据库。要了解有关使用多个数据库的更多信息,请查看本指南。
结论
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~