zoukankan      html  css  js  c++  java
  • Django学习手册

    DOM 字段/参数

    配置格式:

      Module.字段(参数)

    常用的字段归纳:

    数字

    models.AutoField()                                    自增列(int),必须设置为主键
    models.IntegerField()                                整型
    models.FloatField()                                   浮点
    models.DecimalField(max_digits=8,decimal_places=3)    精确浮点                                    

    字符串

    models.CharField()           字符串,必须设置max_length 参数
    models.TextField(Field)      文本类型 

    时间

    models.DateField()
    models.DateTimeField()
    
    
    参数:
    Auto_now              #现在时间(更新时间)
    Auto_now_add          #创建时间
    
    
    注:(更新时间使用)
    更新方式一:
    Obj = userinfo.objects.filter(id=1).update(name=”root”)    不生效
    
    更新方式二:
    Obj = userinfo.objects.filter(id=1).first()
    Obj.save()
    生效

    其他

    Models.BinaryField()            二进制
    Models.ImageField()             图片
    Models.FilePathField()          文件        

    常用属性参数:

    Null                 是否为空(T,F)
    Default              默认参数
    Primary_key          主键
    Db_index             索引
    Unique               唯一索引
    Verbose_name         显示字段中文
    choices               ->作用:1.在Django admin中显示下拉框,如下截图;2,避免连表查询,连表查询的效率非常低。
    blank                 ->在Django admin中是否可以为空。null指的是在数据库中是否可以为空。
    verbose_name      ->在Django admin中显示字段中文。
    editable              ->在Django admin中是否可以被编辑。
    error_messages    ->在Django admin中显示的错误信息
    helt_text             ->在Django admin中显示提示信息
    validators            ->在Django form,自定义错误信息。

    在Django admin中生效的字段:

    Emailfield ()                     
    GenericIPAddressField()         
    URLField()                         
    EmailField(CharField)
    IPAddressField(Field)
    URLField(CharField)
    SlugField(CharField)
    UUIDField(Field)
    FilePathField(Field)       参数: path, 文件夹路径 match
    =None, 正则匹配 recursive=False, 递归下面的文件夹 allow_files=True, 允许文件 allow_folders=False, 允许文件夹 FileField(Field)       参数:     upload_to = "" 上传文件的保存路径     storage = None 存储组件,默认django.core.files.storage.FileSystemStorage
    ImageField(FileField) CommaSeparatedIntegerField(CharField)格式必须为逗号分割的数字 拓展: models.CharField  对应的是MySQL的varchar数据类型
    char 和 varchar的区别 : char和varchar的共同点是存储数据的长度,不能 超过max_length限制, 不同点是varchar根据数据实际长度存储,char按指定max_length()存储数据;所有前者更节省硬盘空间;


    返回值为字段在数据库中的属性,Django字段默认的值为:

           'AutoField': 'integer AUTO_INCREMENT',
                'BigAutoField': 'bigint AUTO_INCREMENT',
                'BinaryField': 'longblob',
                'BooleanField': 'bool',
                'CharField': 'varchar(%(max_length)s)',
                'CommaSeparatedIntegerField': 'varchar(%(max_length)s)',
                'DateField': 'date',
                'DateTimeField': 'datetime',
                'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)',
                'DurationField': 'bigint',
                'FileField': 'varchar(%(max_length)s)',
                'FilePathField': 'varchar(%(max_length)s)',
                'FloatField': 'double precision',
                'IntegerField': 'integer',
                'BigIntegerField': 'bigint',
                'IPAddressField': 'char(15)',
                'GenericIPAddressField': 'char(39)',
                'NullBooleanField': 'bool',
                'OneToOneField': 'integer',
                'PositiveIntegerField': 'integer UNSIGNED',
                'PositiveSmallIntegerField': 'smallint UNSIGNED',
                'SlugField': 'varchar(%(max_length)s)',
                'SmallIntegerField': 'smallint',
                'TextField': 'longtext',
                'TimeField': 'time',
                'UUIDField': 'char(32)',

    联合索引设置

      在Django model中对一张表的几个字段进行联合约束和联合索引,例如在购物车表中,登录的用户和商品两个字段在一起表示唯一记录。

     class Cart(models.Model):
        user = models.ForeignKey(
            MyUser,
            verbose_name="用户"
        )
        goods = models.ForeignKey(
            Goods,
            verbose_name="商品"
        )
        num = models.IntegerField(
            verbose_name="商品数量"
        )
        is_select = models.BooleanField(
            default=True,
            verbose_name="选中状态"
        )
     
        class Meta:
            # 联合约束   其中goods和user不能重复
            unique_together = ["goods", "user"]
            # 联合索引
            index_together = ["user", "goods"]

    unique_together = ["goods", "user"]  表示联合约束,其中"goods"和"user"表示不能重复,不能一样。

    index_together = ["user", "goods"] 表示联合索引,其中"goods"和"user"联合同步查询,提高效率。

    技术内核销售心
  • 相关阅读:
    翻硬币
    排队打水问题
    连续邮资问题
    Linux-AWK命令
    SpringInAction第五章总结 使用配置属性
    SpringInAction 第四章笔记 保护Spring
    SpringInAction第三章笔记 --使用数据
    SpringInAction第二章笔记
    SpringInAction第一章笔记
    SpringBoot启动任务
  • 原文地址:https://www.cnblogs.com/Anec/p/9526783.html
Copyright © 2011-2022 走看看