首页 > 行业资讯 > Django教程-Django模型

Django教程-Django模型

时间:2023-07-21 来源: 浏览:

Django教程-Django模型

点击关注 Python架构师
Python架构师

gh_1d7504e4dee1

回复:python,领取Python面试题。分享Python教程,Python架构师教程,Python爬虫,Python编程视频,Python脚本,Pycharm教程,Python微服务架构,Python分布式架构,Pycharm注册码。

收录于合集
#Django开源项目 9
#python web教程 17
#Django教程 8
#python教程 107
#python 190
整理:python架构师

在 Django 中,模型是一个类,用于包含基本字段和方法。每个模型类映射到数据库中的单个表。

Django Model 是django.db.models.Model 的子类 ,模型类的每个字段代表一个数据库字段(列)。

Django 为我们提供了一个数据库抽象 API,它允许我们从映射表中创建、检索、更新和删除记录。

模型在Models.py文件中定义。 该文件可以包含多个模型。

点击领取Python面试题手册

Python从入门到进阶知识手册

让我们看一个例子,我们正在创 建一个模型 Employee ,它有两个字段 first_name last_name

from django.db import models class Employee (models.Model) : first_name = models.CharField(max_length= 30 ) last_name = models.CharField(max_length= 30 )

First_name和Last_name字段被指定为类属性,每个属性映射到一个数据库列。

该模型将在数据库中创建一个表,如下所示。

CREATE TABLE appname_employee ( "id" INT NOT NULL PRIMARY KEY , "first_name" varchar ( 30 ) NOT NULL , "last_name" varchar ( 30 ) NOT NULL );

创建的表包含一个自动创建的 id 字段 。表的名称是应用程序名称和型号名称的组合,可以进一步更改。

注册/使用模型

创建模型后,将模型注册到settings.py内的 INSTALLED_APPS 中。

例如

INSTALLED_APPS = [ #... ’appname’, #... ]

Django 模型字段

Model 类中定义的字段是映射表的列名。字段名称不应该是 python 保留字,例如 clean、save 或 delete 等。

Django 提供了各种内置字段类型。

Field Name Class Particular
AutoField class AutoField(**options) 它是一个自动递增的 IntegerField。
BigAutoField class BigAutoField(**options) 它是一个 64 位整数,与 AutoField 非常相似,只不过它保证适合从 1 到 9223372036854775807 的数字。
BigIntegerField class BigIntegerField(**options) 它是一个 64 位整数,与 IntegerField 非常相似,只不过它保证适合从 -9223372036854775808 到 9223372036854775807 的数字。
BinaryField class BinaryField(**options) 存储原始二进制数据的字段。
BooleanField class BooleanField(**options) 真/假字段。该字段的默认表单小部件是 CheckboxInput。
CharField class DateField(auto_now=False, auto_now_add=False, **options) 它是一个日期,在 Python 中由 datetime.date 实例表示。
DateTimeField class DateTimeField(auto_now=False, auto_now_add=False, **options) 它是一个日期,在 Python 中由 datetime.date 实例表示。
DateTimeField class DateTimeField(auto_now=False, auto_now_add=False, **options) 它用于日期和时间,在 Python 中由 datetime.datetime 实例表示。
DecimalField class DecimalField(max_digits=None, decimal_places=None, **options) 它是一个固定精度的十进制数,在 Python 中由 Decimal 实例表示。
DurationField class DurationField(**options) 用于存储时间段的字段。
EmailField class EmailField(max_length=254, **options) 它是一个 CharField,用于检查该值是否是有效的电子邮件地址。
FileField class FileField(upload_to=None, max_length=100, **options) 这是一个文件上传字段。
FloatField class FloatField(**options) 它是 Python 中由 float 实例表示的浮点数。
ImageField class ImageField(upload_to=None, height_field=None, width_field=None, max_length=100, **options) 它继承了 FileField 的所有属性和方法,但也验证上传的对象是有效的图像。
IntegerField class IntegerField(**options) 它是一个整数字段。从 -2147483648 到 2147483647 的值在 Django 支持的所有数据库中都是安全的。
NullBooleanField class NullBooleanField(**options) 与 BooleanField 类似,但允许 NULL 作为选项之一。
PositiveIntegerField class PositiveIntegerField(**options) 与 IntegerField 类似,但必须为正数或零 (0)。0 到 2147483647 之间的值在 Django 支持的所有数据库中都是安全的。
SmallIntegerField class SmallIntegerField(**options) 它类似于 IntegerField,但只允许某个(依赖于数据库)点以下的值。
TextField class TextField(**options) 一个大的文本字段。该字段的默认表单小部件是文本区域。
TimeField class TimeField(auto_now=False, auto_now_add=False, **options) 时间,在 Python 中由 datetime.time 实例表示。

Django 模型字段示例

# for creating varchar column first_name = models.CharField(max_length= 50 ) # for creating date column release_date = models.DateField() # for creating integer column num_stars = models.IntegerField()

字段选项

每个字段都需要一些用于设置列属性的参数。例如,CharField 需要 mac_length 来指定 varchar 数据库。

适用于所有字段类型的通用参数。全部都是可选的。

Field Options Particulars
Null Django 将在数据库中将空值存储为 NULL。
Blank 它用于允许字段为空白。
Choices 用作该字段的选择的可迭代(例如,列表或元组)的二元组。
Default 该字段的默认值。这可以是一个值或一个可调用对象。
help_text 与表单小部件一起显示的额外“帮助”文本。即使您的字段未在表单上使用,它对于文档也很有用。
primary_key 该字段是模型的主键。
Unique 该字段在整个表中必须是唯一的。

Django 模型示例

我们创建了一个模型 Student,其中在models.py文件中包含以下代码。

//模型.py

class Student(models.Model): first_name = models.CharField(max_length=20) last_name = models.CharField(max_length=30) contact = models.IntegerField() email = models.EmailField(max_length=50) age = models.IntegerField()

之后,使用以下命令应用迁移。

python3 manage .py makemigrations myapp

它将创建一个表 myapp_student 。表结构如下所示。

 
热门推荐
  • 禁止乱用:一款牛批的开源去马赛克工具。。。

  • AI绘画-野性驯心:她与百兽共舞的非凡旅程

  • Django教程-MVT(模型视图模板)

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐