自学内容网 自学内容网

PythonWeb Django PostgreSQL创建Web项目(四)

首先我们先尝试总结一下可用的模型model字段类型,然后根据字段类型丰富现有的DoctorInfo应用模型,然后增加新的展示详情界面

1. 结合POSTGRESQL对应字段类型以及方法

先加入我们已经加入模型中的模型字段,在使用前我们需要先引入对应的内容

from django.db import models
import uuid
import django.utils.timezone as timezone
方法 介绍 使用示例
UUIDField postgresql中带有UUID类型字段 ;一个用于存储通用唯一标识符的字段。使用 Python 的 UUID 类。当在 PostgreSQL 上使用时,它存储在一个 uuid 的数据类型中,否则存储在一个 char(32) 中。 did = models.UUIDField(primary_key=True,default=uuid.uuid4,editable=False)
CharField 字符,参数可设置该字段的最大长度(以字符为单位),要注意部分数据库限制,大量文本建议使用TextField fieldname = models.CharField(max_length=20)
DateTimeField 时间字段
BooleanField 布尔类型字段
EmailField Email类型字段 使用 EmailValidator 来检查该值是否为有效的电子邮件地址。
ForeignKey 指定外键 一个多对一的关系。需要两个位置参数:模型相关的类和 on_delete 选项。 doc = models.ForeignKey(对应模型类,on_delete=models.CASCADE)
AutoField 自增长类型一个 IntegerField,根据可用的 ID 自动递增。你通常不需要直接使用它;如果你没有指定,主键字段会自动添加到你的模型中
BigAutoField 一个 64 位整数,与 AutoField 很相似,但保证适合 1 到 9223372036854775807 的数字
BigIntegerField 一个 64 位的整数,和 IntegerField 很像,只是它保证适合从 -9223372036854775808 到 9223372036854775807 的数字。该字段的默认表单部件是一个 NumberInput。
BinaryField 一个用于存储原始二进制数据的字段。可以指定为 bytes、bytearray 或 memoryview.默认情况下,BinaryField 将 ediditable` 设置为 False.可选参数max_length
TextField 一个大的文本字段。该字段的默认表单部件是一个 Textarea。
DateField default=date.today ——来自 datetime.date.today()
DateTimeField default=timezone.now ——来自 django.utils.timezone.now()
DecimalField 一个固定精度的十进制数,两个必要参数DecimalField.max_digits允许的最大位数DecimalField.decimal_places和数字一起存储的小数位数
DurationField 一个用于存储时间段的字段——在 Python 中用 timedelta 建模。当在 PostgreSQL 上使用时,使用的数据类型是 interval 否则使用微秒的 bigint
FileField 一个文件上传字段,不支持primary_key 参数,可选参数FileField.upload_to提供了一种设置上传目录和文件名的方式 FileField.storage 一个存储对象,或是一个返回存储对象的可调用对象。它处理你的文件的存储和检索
FieldFile 当你访问一个模型上的 FileField 时,你会得到一个 FieldFile 的实例作为访问底层文件的代理
FilePathField 一个 CharField,其选择仅限于文件系统中某个目录下的文件名。有一些特殊的参数,其中第一个参数是 必须的。FilePathField.path必须的。一个目录的绝对文件系统路径,这个 FilePathField 应从该目录中获取其选择
FloatField 在 Python 中用一个 float 实例表示的浮点数
GenericIPAddressField IPv4 或 IPv6 地址,字符串格式(如 192.0.2.30 或 2a02:42fe::4 )。
ImageField 继承 FileField 的所有属性和方法,但也验证上传的对象是有效的图像。 ImageField 也有 height 和 width 属性。ImageField 实例在数据库中创建为 varchar 列,默认最大长度为 100 个字符 pip install pillow你需要为你的 Python 安装 pillow,pillow 是一个 Python 图像库
IntegerField 一个整数。从 -2147483648 到 2147483647 的值在 Django 支持的所有数据库中都是安全的。
JSONField 个用于存储 JSON 编码数据的字段。在 Python 中,数据以其 Python 本地格式表示:字典、列表、字符串、数字、布尔值和 None。PostgreSQL 有两种基于 JSON 的原生数据类型: json 和 jsonb。json 和 jsonb。它们之间的主要区别在于它们的存储方式和查询方式。PostgreSQL 的 json 字段是作为 JSON 的原始字符串表示来存储的,当根据键来查询时,必须同时进行解码。jsonb 字段是基于 JSON 的实际结构存储的,它允许索引。这样做的代价是在写入 jsonb 字段时增加了一点成本。JSONField 使用 jsonb。
PositiveBigIntegerField 就像一个 PositiveIntegerField,但只允许在某一特定点下的值(依赖于数据库)。0 到 9223372036854775807 的值在 Django 支持的所有数据库中都是安全的。
PositiveIntegerField 就像 IntegerField 一样,但必须是正值或零( 0 )。从 0 到 2147483647 的值在 Django 支持的所有数据库中都是安全的。出于向后兼容的原因,接受 0 的值。
TimeField 一个时间,在 Python 中用 datetime.time 实例表示。接受与 DateField 相同的自动填充选项。
URLField URL 的 CharField,由 URLValidator 验证。

从目前来看,Django提供的模型字段方法非常丰富而且大部分与数据库都有对应类型关联

2.丰富DoctorInfo应用的模型

那么接下来我们可以接着继续丰富我们的自定义model了

from django.db 

原文地址:https://blog.csdn.net/weixin_43639981/article/details/129495541

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!