IT评测·应用市场-qidao123.com技术社区
标题:
Django学习-Django数据库模子界说
[打印本页]
作者:
莫张周刘王
时间:
2024-8-5 07:55
标题:
Django学习-Django数据库模子界说
Django对各种数据库提供了很好的支持,包罗PostgreSQL、MySQL、SQLite和Oracle,而且为这些数据库提供了统一的API方法,这些API统称为ORM框架。
界说模子
ORM框架是一种程序技能,用于实现面向对象编程语言中不同类型体系的数据之间的转换。它创建了一个可在编程语言中利用的假造对象数据库,在django中,假造对象数据库也被称为模子,通过模子实现对目标数据库的读写操纵。
1. 实现方法
配置目标数据库,在setting.py中设置数据库配置。
构建假造对象数据库,在App的models.py文件中以类的情势界说模子。
通过模子迁移命令在目标数据库中创建相应的数据表。
在其他模块(如视图函数)里利用模子来实现目标数据库的读写操纵。
2. 模子字段类型
模子字段类型可在源码目次django\db\models\fields的__init__.py和files.py文件中找到。
常见常用模子字段示例如下:
字段名称字段介绍AutoField自增长类型,数据表的字段类型为整数,长度为11位。CharField字符类型BooleanField布尔类型DateField日期(Date)类型FloatField浮点数类型,数据表的字段类型酿成Double类型。IntegerField整数类型,数据表的字段类型为11位的整数。TextField长文本类型FileField字符类型,存储文件路径的字符串ImageField字符类型,存储图片路径的字符串
3. 模子字段参数
每个模子字段都答应设置参数,这些参数来自父类Field,我们可在源码里查看Field的界说过程(django\db\models\fields\__init__.py)而且对模子字段的参数进行分析。
常见常用模子字段参数:
字段参数名称介绍verbose_name默认为None,在Admin站点管理设置字段的显示名称。primary_key默认为False,若为True,则将字段设置成主键。max_length默认为None,设置字段的最大长度。unique默认为False,若为True,则设置字段的唯一属性。blank默认为False,若为True,则字段答应为空值,数据库将存储空字符串。null默认为False,若为True,则字段答应为空值,数据库体现为NULL。db_index默认为False,若为True,则以此字段来创建数据库索引。db_column默认为None,设置数据表的列名称,若不设置,则将字段名作为数据表的列名。default默认为NOT_PROVIDED对象,设置字段的默认值。validators默认为空列表,设置字段内容的验证函数。
注意:
上述参数适用于全部模子字段,但不同类型的字段回应一些特别参数,每个字段的特别参数可以在字段的初始化方法__init__里找到,比如字段DateField和TimeField的特别参数auto_now_add和auto_now,字段FileField和ImageField的特别参数upload_to。
4. Meta选项属性
Meta 类是用于界说模子元数据的内部类。它答应你指定一些与模子相关的选项和配置,例如排序方式、数据库表名、唯一性束缚等。
常见常用模子字段参数:
Meta选项属性介绍abstract若设为True,则该模子为抽象模子,不会在数据库里创建数据表。app_label属性值为字符串,将模子设置为指定的项目应用,比如将index的models.py界说的模子A指定到其他App里。db_table属性值为字符串,设置模子所对应的数据表名称。get_latest_by属性值为字符串或列表,设置模子数据的排序方式。managed默认值为True,支持Django命令实行数据迁移;若为False,则不支持数据迁移功能。proxy若设为True,则为模子创建署理模子,即克隆一个与模子A雷同的模子B。verbose_name属性值为字符串,设置模子直观可读的名称并以复数情势表示。
5. 模子界说示例
class PersonInfo(models.Model):
# 自动增长的主键,用于唯一标识每个人员
id = models.AutoField(primary_key=True)
# 人员姓名,字符串类型,最大长度为20
name = models.CharField(max_length=20)
# 人员年龄,整数类型
age = models.IntegerField()
# 入职日期,日期类型
hireDate = models.DateField()
# 定义对象的字符串表示形式
# 返回人员的姓名
def __str__(self):
return self.name
# 元类,用于配置模型的元数据
# 设置模型的可读名称
class Meta:
verbose_name = '人员信息'
复制代码
综上所述,模子字段、函数__str__和Meta选项是模子界说的基本要素,模子字段的类型、函数__str__和Meta选项的属性设置需由开发需求而定。在界说模子时,还可以在模子里界说相关函数,如get_absolute_url(),当视图类没有设置属性success_url时,视图类的重定向路由所在将由模子界说的get_absolute_url()提供。
除此之外,Django支持开发者自界说模子字段。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4