用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
物联网
›
物联网
›
Django学习-Django数据库模子界说
Django学习-Django数据库模子界说
莫张周刘王
论坛元老
|
2024-8-5 07:55:12
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
1806
|
帖子
1806
|
积分
5418
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
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企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
莫张周刘王
论坛元老
这个人很懒什么都没写!
楼主热帖
06、etcd 写请求执行流程
网上书店管理系统项目【Java数据库编程 ...
软件测试项目实战经验附视频以及源码【 ...
【云原生】三、详细易懂的Docker 容器 ...
如何用同一套账号接入整个研发过程? ...
四、WinUI3下TitleBar的自定义
DevOps工具选型,什么才是中小企业的最 ...
攻防世界pwn题:实时数据检测 ...
面向大规模神经网络的模型压缩和加速方 ...
c# sqlsugar,hisql,freesql orm框架全 ...
标签云
集成商
AI
运维
CIO
存储
服务器
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表