【Django-02】 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:值类型列表中放元组,表示唯一键

例子

python 复制代码
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 = False
        db_table = 'dw_sink_database_asset_item_pw_map'
        unique_together = (('asset_item_id', 'dw_server_id', 'asset_item_pw_id',))
相关推荐
wno7043 小时前
postgresSQL压缩版安装与基本命令
数据库·postgresql
聚美智数5 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
瀚高PG实验室5 小时前
瀚高数据库常用系统表查询入门指南(附常用SQL)
数据库·sql·postgresql·瀚高数据库
ben9518chen6 小时前
mysql数据库基本操作
数据库·mysql
2603_965148116 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
土豆.exe6 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
缓慢更新7 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
Web3&Basketball8 小时前
实测Gemini4Argon:ERQA 87%登顶长程任务榜
数据库·python·大模型·多模态·gemini·长上下文·推理优化
xiaogai_gai9 小时前
金蝶收料通知单查询策略实战教程:从源系统拉取到中间层落地的完整路径
java·前端·数据库
注塑机数据采集联网9 小时前
注塑机数据采集网关对接MES系统数字化技术方案
大数据·网络·数据库·物联网·数据挖掘·数据分析