zoukankan      html  css  js  c++  java
  • ORM属性/字段

    . ORM字段   (models.py文件中创建类,继承models.Model)

            class Book(models.Model):  # 书籍列表

    bid=models.AutoField(primary_key=True)  # 自增主键

    bname=models.CharField(max_length=20)  # varchar

    price = models.IntegerField()  # int类型的字段

    price = models.DateTimeField( auto_now_add=True)  # 年月日时分秒

    price = models.DateField(DateField=True)  # 年月日

      DateTimeFieldDateField都是存放时间类字段的,区别是显示的日期格式不同,

     这两个字段括号内都可设置参数,参数也都一样,以下为参数及其含义:

      auto_now:每次修改该对象任意内容,都会修改为当前日期时间

      auto_now_add:新建对象时自动添加当前日期时间,该日期永远不会被修改

    1. 括号内指定了参数后创建对象时不用我们填写该字段,系统会自动生成时间;

        > 注意:auto_nowauto_now_adddefault这三个参数时互斥的,一个字段中不能同时设置.

        > 补充个执行ORM操作的便捷方法,点击python页面左下角python console,该窗口会加载所有的djago环境,

          我们只用在这个窗口中导入model即可使用该文件中的类,代码如下:

          from app01 import models

          models.Book.objects.all()就可使用.

    2. 以上为常用的一些字段,更多字段如下:

    > AutoField(Field)

             - int自增列,必须填入参数 primary_key=True

           > BigAutoField(AutoField)

                    - bigint自增列,必须填入参数 primary_key=True

           > model中如果没有自增列,则自动会创建一个列名为id的列

              from django.db import models

              class UserInfo(models.Model):

                       # 自动创建一个列名为id的且为自增的整数列

                      username = models.CharField(max_length=32)

              class Group(models.Model):

                # 自定义自增列

                nid = models.AutoField(primary_key=True)

                name = models.CharField(max_length=32)

     > SmallIntegerField(IntegerField):

            - 小整数 -32768 32767

     > PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)

            - 正小整数 0 32767

     > IntegerField(Field)

            - 整数列(有符号的) -2147483648 2147483647

     > PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)

            - 正整数 0 2147483647

     > BigIntegerField(IntegerField):

            - 长整型(有符号的) -9223372036854775808 9223372036854775807

     > BooleanField(Field)

            - 布尔值类型

     > NullBooleanField(Field):

            - 可以为空的布尔值

     > CharField(Field)

            - 字符类型

            - 必须提供max_length参数, max_length表示字符长度

     > TextField(Field)

            - 文本类型

     > EmailField(CharField)

            - 字符串类型,Django Admin以及ModelForm中提供验证机制

     > IPAddressField(Field)

            - 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制

     > GenericIPAddressField(Field)

            - 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4Ipv6

            - 参数:

                protocol,用于指定Ipv4Ipv6'both',"ipv4","ipv6"

                unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1

    开启此功能,需要protocol="both"

     > URLField(CharField)

            - 字符串类型,Django Admin以及ModelForm中提供验证 URL

     > SlugField(CharField)

            - 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号)

     > CommaSeparatedIntegerField(CharField)

            - 字符串类型,格式必须为逗号分割的数字

     > UUIDField(Field)

            - 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证

     > FilePathField(Field)

            - 字符串,Django Admin以及ModelForm中提供读取文件夹下文件的功能

            - 参数:

                    path,                      文件夹路径

                    match=None,                正则匹配

                    recursive=False,           递归下面的文件夹

                    allow_files=True,          允许文件

                    allow_folders=False,       允许文件夹

     > FileField(Field)

            - 字符串,路径保存在数据库,文件上传到指定目录

            - 参数:

                upload_to = ""      上传文件的保存路径

                storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

     > ImageField(FileField)

            - 字符串,路径保存在数据库,文件上传到指定目录

            - 参数:

                upload_to = ""      上传文件的保存路径

                storage = None      存储组件,默认django.core.files.storage.FileSystemStorage

                width_field=None,   上传图片的高度保存的数据库字段名(字符串)

                height_field=None   上传图片的宽度保存的数据库字段名(字符串)

     > DateTimeField(DateField)

            - 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]

     > DateField(DateTimeCheckMixin, Field)

            - 日期格式      YYYY-MM-DD

     > TimeField(DateTimeCheckMixin, Field)

            - 时间格式      HH:MM[:ss[.uuuuuu]]

     > DurationField(Field)

            - 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型

     > FloatField(Field)

            - 浮点型

     > DecimalField(Field)

            - 10进制小数

            - 参数:

                max_digits,小数总长度

                decimal_places,小数位长度

     > BinaryField(Field)

            - 二进制类型

    . 字段参数

        字段括号内参数都有哪些呢?参考如下内容:

        注意: price = models.IntegerField( null=True, blank=True)

             注意nullblank的区别: null=True表示在数据库层面可为空,blank=True则是在django层面限制可

       为空,使用时两者是连用的,否则数据库可空但django不能为空,还是会报错的,反之亦然

        参数如下:67

        null                数据库中字段是否可以为空

        db_column           数据库中字段的列名

        default             数据库中字段的默认值

        primary_key         数据库中字段是否为主键

        db_index            数据库中字段是否可以建立索引

        unique              数据库中字段是否可以建立唯一索引

        unique_for_date     数据库中字段【日期】部分是否可以建立唯一索引

        unique_for_month    数据库中字段【月】部分是否可以建立唯一索引

        unique_for_year     数据库中字段【年】部分是否可以建立唯一索引

        verbose_name        Admin中显示的字段名称

        blank               Admin中是否允许用户输入为空

        editable            Admin中是否可以编辑

        help_text           Admin中该字段的提示信息

        choices             Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作

        

  • 相关阅读:
    Postman使用教程
    CAD和ArcGIS转换 矢量配准
    SAP CRM Advanced search和Simple search里Max hit表现行为的差异
    SAP CRM Product simple search的启用步骤
    如何快速定位SAP CRM订单应用(Order Application)错误消息抛出的准确位置
    如何动态修改SAP CRM WebClient UI表格栏的宽度
    如何在SAP CRM WebClient UI里创建web service并使用ABAP消费
    如何处理SAP CRM Web Service错误
    如何使用SAP CRM WebClient UI实现一个类似新浪微博的字数统计器
    如何开启SAP CRM基于WORD模板创建附件的功能
  • 原文地址:https://www.cnblogs.com/quzq/p/9788791.html
Copyright © 2011-2022 走看看