当前位置: 首页 > news >正文

【Django-02】 Model模型和模型描述对象Meta

Model和Meta

    • 概念
    • Model
    • Meta
    • Model支持的字段类型
    • Meta 属性
    • 例子

概念

就是对象的意思,底层一个Model对应一张表,而Meta是Model的内部类,是用来描述Model和数据库表的相关元数据信息,比如主键,排序,unique_key 的。
也不是啥新鲜的概念。

Model

所有自定义的模型都要继承django.db.models

Meta

Meta是你定义的模型的内部类,没啥稀奇的。

Model支持的字段类型

为了方便。Model到数据库都定义好了字段类型,这算是一种映射概念,也没啥稀奇的。
AutoField: 自增id
VooleanField: true/false 数据库存的是数字,模型映射为True/False
CharField: varchar类型
DateField:Date 日期【2023-10-01】
DateTimeField: 日期时间【2023-10-01 23:10:33】
IntergerField: int
TextField: 对应数据库text
TimeField:对应数据库Time [23:12:10]
FloatField: 对应数据库Double
FileField: 对应数据库varChar
ImageField:对应数据库varChar
DecumalField:对应数据库Decimal

Meta 属性

db_table: 值类型字符串->对应生成的数据库表名
manager:值类型 boolean ->是否还由Django管理生命周期
ordering: 值类型 列表->排序,字段前加’-’ 表示降序
index_together:值类型列表中放元组,表示唯一键
unique_together:值类型列表中放元组,表示唯一键

例子

class DwDatabaseAssetItemPwMap(models.Model):id = models.CharField(primary_key=True)asset_item_id = models.IntegerField('资产项id')asset_item_name = models.CharField('资产项名称', max_length=128, blank=True, null=True)name = models.CharField('服务器名', max_length=255)instance_id = models.CharField('实例id', max_length=128, blank=True, null=True)region = models.CharField('区域', max_length=255, blank=True, null=True)dw_server_id = models.IntegerField('dw服务器id')project = models.ForeignKey(Project, on_delete=models.CASCADE, verbose_name='项目')public_ip = models.CharField('公网ip', max_length=255, blank=True, null=True)local_ip = models.CharField('内网ip', max_length=255, blank=True, null=True)port = models.IntegerField('端口')asset_item_pw_id = models.IntegerField('密码id', null=True)username = models.CharField('账号', max_length=99)password = AesEncryptedCharField(verbose_name='密码', max_length=255)asset_id = models.IntegerField('资产项id', null=True)class Meta:app_label = 'test_table'managed = Falsedb_table = 'dw_sink_database_asset_item_pw_map'unique_together = (('asset_item_id', 'dw_server_id', 'asset_item_pw_id',))

相关文章:

  • ubuntu 20.04安装 Anaconda教程
  • 01 DDD小传:领域驱动设计为什么这么火?
  • python接口自动化测试之接口数据依赖
  • 【python学习】基础篇-常用函数-sorted() 对可迭代对象进行排序
  • clusterProfiler包学习
  • 人工智能基础_机器学习040_Sigmoid函数详解_单位阶跃函数与对数几率函数_伯努利分布---人工智能工作笔记0080
  • Windows10下Maven3.9.5安装教程
  • 泛型编程:进阶的正确打开方式
  • Android WMS——输入系统管理(十七)
  • jmeter接口自动化部署jenkins教程详解
  • KT142C语音芯片搭配HAA2018功放,两个板子,一个声音正常一个没有声音
  • Apahce虚拟主机配置演示
  • 169. 多数元素 --力扣 --JAVA
  • VirtualBox7安装Ubuntu20及全屏、共享、粘贴板等设置
  • 【微信小程序】2023年11月版本 关于小程序隐私保护指引设置的公告 | 修改微信小程序隐私保护 |小程序无法获取用户昵称 头像 性别 等问题
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【前端学习】-粗谈选择器
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • GraphQL学习过程应该是这样的
  • Iterator 和 for...of 循环
  • Java,console输出实时的转向GUI textbox
  • jquery ajax学习笔记
  • Js基础——数据类型之Null和Undefined
  • Linux Process Manage
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • ng6--错误信息小结(持续更新)
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • php ci框架整合银盛支付
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue脚手架vue-cli
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 聊聊directory traversal attack
  • 如何实现 font-size 的响应式
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​渐进式Web应用PWA的未来
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #define,static,const,三种常量的区别
  • #if和#ifdef区别
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (C语言)fgets与fputs函数详解
  • (初研) Sentence-embedding fine-tune notebook
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)图像的%2线性拉伸
  • (五)网络优化与超参数选择--九五小庞
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • .NET CF命令行调试器MDbg入门(一)
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件