• 技术文章 >Python框架 >Django

    Django之modles.py创建表

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-07-02 10:02:37原创1479

    modles.py创建表

    ORM字段介绍

    Djano提供了很多字段类型,比如URL/Email/IP/ 但是mysql数据没有这些类型,这类型存储到数据库上本质是字符串数据类型,其主要目的是为了封装底层SQL语句;

    1、字符串类(以下都是在数据库中本质都是字符串数据类型,此类字段只是在Django自带的admin中生效)

    name=models.CharField(max_length=32)

    EmailField(CharField):
    IPAddressField(Field)
    URLField(CharField)
    SlugField(CharField)
    UUIDField(Field)
    FilePathField(Field)
    FileField(Field)
    ImageField(FileField)
    CommaSeparatedIntegerField(CharField)

    扩展

    models.CharField 对应的是MySQL的varchar数据类型。

    char 和 varchar的区别 :

    char和varchar的共同点是存储数据的长度,不能超过max_length限制,

    不同点是varchar根据数据实际长度存储,char按指定max_length()存储数据;所有前者更节省硬盘空间;

    相关推荐:《Python视频教程

    2、时间字段

    models.DateTimeField(null=True)
    date=models.DateField()

    3、数字字段

    (max_digits=30,decimal_places=10)总长度30小数位 10位)

    数字:

    num = models.IntegerField()
    num = models.FloatField() 浮点
    price=models.DecimalField(max_digits=8,decimal_places=3) 精确浮点

    4、枚举字段

     choice=(
            (1,'男人'),
            (2,'女人'),
            (3,'其他')
        )
    lover=models.IntegerField(choices=choice) #枚举类型

    扩展

    在数据库存储枚举类型,比外键有什么优势?

    1、无需连表查询性能低,省硬盘空间(选项不固定时用外键)

    2、在modle文件里不能动态增加(选项一成不变用Django的choice)

    其他字段

    db_index = True 表示设置索引
    unique(唯一的意思) = True 设置唯一索引
    联合唯一索引
    class Meta:
    unique_together = (
     ('email','ctime'),
    )
    联合索引(不做限制)
    index_together = (
    ('email','ctime'),
    )
    ManyToManyField(RelatedField)  #多对多操作
    专题推荐:django modlespy 表
    品易云
    上一篇:Django的缓存机制是什么 下一篇:Django之ORM连表操作

    相关文章推荐

    • Django的缓存机制是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网