一.字段

AutoField(Field)- int自增列,必须填入参数 primary_key=TrueBigAutoField(AutoField)- bigint自增列,必须填入参数 primary_key=True注:当model中如果没有自增列,则自动会创建一个列名为id的列from django.db import modelsclass 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

     -----------实例:number=models.x()  无参数PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)- 正小整数 0 ~ 32767

      --------------实例:numebr=models.x()  无参数

IntegerField(Field)- 整数列(有符号的) -2147483648 ~ 2147483647     ---------------实例:numebr=models.x()  无参数PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)- 正整数 0 ~ 2147483647BigIntegerField(IntegerField):- 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807BooleanField(Field)- 布尔值类型

    -----------实例:b=BooleanField() 在mysql中只能是0或1,True/False不行NullBooleanField(Field):- 可以为空的布尔值CharField(Field)- 字符类型- 必须提供max_length参数, max_length表示字符长度     ----------实例:name=models.CharField(max_length=32,blank=True,null=True)  #平均3个字节存一个汉字,blank=True是DjangoAdmin可为空,null=True是数据库可为空,在写此字段时,建议两者都写TextField(Field)- 文本类型EmailField(CharField):- 字符串类型,Django Admin以及ModelForm中提供验证机制IPAddressField(Field)- 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制GenericIPAddressField(Field)- 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6- 参数:protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启刺功能,需要protocol="both"URLField(CharField)- 字符串类型,Django Admin以及ModelForm中提供验证 URLSlugField(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     --------实例:          class File(models.Model):              file=models.FileField(upload_to="files")  一旦有上传的文件,将其写入数据库后,会自动生成files文件,并将文件放在files文件夹下ImageField(FileField)- 字符串,路径保存在数据库,文件上传到指定目录- 参数:upload_to = ""      上传文件的保存路径storage = None      存储组件,默认django.core.files.storage.FileSystemStoragewidth_field=None,   上传图片的高度保存的数据库字段名(字符串)height_field=None   上传图片的宽度保存的数据库字段名(字符串)        --------实例:          class IMG(models.Model):              w=models.IntegerField()              h=models.IntegerField()              img=models.ImageField(upload_to="img",width_field="w",height_field="h")  获取上传文件的宽高,并将宽高添加w/h字段中   ps:宽高只能获取,不能修改DateTimeField(DateField)- 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]

     ------------实例:        date=models.DateTimeField(auto_now=True)    最新的修改时间,对象调用save()方法时自动更新时间(nid=models.表名.objects.get(id=1) nid.字段="" nid.save())        date1=models.DateTimeField(auto_now_add=True)   最开始的时间
在django+mysql数据库中,保存到数据库中的datetime(auto_now=True)只有执行了对象的save方法才会更新时间,最新修改时间会比本地当前
时间慢8个小时左右解决方法:settings.pyTIME_ZONE = 'Asia/Shanghai'USE_TZ = False
time=datetime(auto_now_add=True)命令行会提示输入当前时间,输入:datetime.datetime.now()

DateField(DateTimeCheckMixin, Field)- 日期格式      YYYY-MM-DDTimeField(DateTimeCheckMixin, Field)- 时间格式      HH:MM[:ss[.uuuuuu]]DurationField(Field)- 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型FloatField(Field)- 浮点型DecimalField(Field)- 10进制小数- 参数:max_digits,小数总长度decimal_places,小数位长度BinaryField(Field)- 二进制类型

---只能在djangoadmin中添加数据source_choices=((0,"转介绍"),(1,"qq"),(2,"官网"))source=models.SmallIntegerField(choices=source_choices) 

二.参数

unique=True 唯一(当前字段不能有相同的)blank=True  DjangoAdmin中可为空null=True   数据库中可为空,通常建议两者合并起来用verbose_name="xx" 当前字段的在Admin中的别名default=False  默认值为False

二.ImgField实例

---------views.py
def uploadimg(req):if req.method=="POST":news=models.IMG.objects.create(img=req.FILES.get("img"),            #将得到的文件放在img字段下(其实是文件路径)name=req.FILES.get("img").name)news.save()return render(req,"img_tem/uploading.html")def showimg(req):imgs=models.IMG.objects.all()content={"imgs":imgs,}for i in imgs:print(i.img.url)return render(req,"img_tem/showing.html",content)
def file_upload(req):if req.method=="POST":models.File.objects.create(file=req.FILES.get("file"))return render(req,"img_tem/uploading.html")

--------urls.py
from django.contrib.staticfiles.urls import staticfiles_urlpatternsfrom django.contrib import staticfiles
urlpatterns = [path('upload',views.uploadimg),path('show',views.showimg),path('file_upload',views.file_upload),
]
urlpatterns += staticfiles_urlpatterns()

---------settings.py
STATIC_URL = '/static/'                   #别名
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),  # 实际名 ,即实际文件夹的名字
)

---------models.py
class IMG(models.Model):img=models.ImageField(upload_to="static/img")   //一旦有上传文件,就在static文件夹下创建img文件name=models.CharField(max_length=20)class File(models.Model):file=models.FileField(upload_to="file")       //有上传文件,会自动新建file文件

-------templates文件下新建img_tem文件,文件中添加两个html-------uploading.html
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %}<input type="file" name="img"><input type="file" name="file"><button type="submit">上传</button>
</form>--------showing.html
<body>
{% for img in imgs %}<img src="/{{ img.img.url}}" alt="">             //获取文件路径,第二个img是IMG表中的img字段
{% endfor %}
</body>

转载于:https://www.cnblogs.com/gaoyukun/p/9180575.html

Django(models中字段+参数)相关推荐

  1. django models 之字段详解

         数据库模型是django操作数据库的主要途径,也是django和数据库连接的主要方法,几乎所有对数据库的操作都是通过models来完成的,下面我们就简单介绍一下创建模型时会涉及到的字段类型, ...

  2. Django models模块字段注释

    models字段注释 models.CharField 用来存储字符串,必须制定范围 models.AutoField 根据可用id自动递增的整数字段.通常不需要直接使用它;如果不指定主键字段,则会自 ...

  3. django models中批量导入数据

    在django中普通创建数据: task_details_obj = models.TaskDetails.objects.create( host_to_remote_user_id=host, t ...

  4. Django models中关于blank与null的补充说明

    建立一个简易Model class Person(models.Model):GENDER_CHOICES=((1,'Male'),(2,'Female'),)name=models.CharFiel ...

  5. Django models中的null和blank的区别

    blank在数据库上存储的是一个空字符串 如需设置字段可以为空:blank=True,默认为blank=False(字段必须填写); null在数据库上表现为NULL,而不是一个空字符串 如需设置字段 ...

  6. Django(五)模型(model)系统 -- 常用字段和字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  7. Django模型系统的常用字段和字段参数

    常用字段 AutoField:int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntegerField:一个整数类型,范围 ...

  8. python怎么设置字段_Django Model中字段(field)的各种选项说明

    字段与选项 CharField() 字符字段 max_length = xxx or None # 必选项 blank = True 和 default = '' # 如果不是必填项,可以设置 uni ...

  9. python中choice的用法_Django模型中字段属性choice使用说明

    今天设计models时,用到了choice这个属性,用来限制用户做出选择的范围.比如说性别的选择(男或女). class User(AbstractUser): ... sex = models.Ch ...

最新文章

  1. Hadoop对Spark:正面比拼报告(架构、性能、成本、安全性和机器学习)
  2. wust 1599弗洛伊德
  3. WINDOWS XP常用的快捷键组合?
  4. 删除个别主机的Know_hosts文件信息
  5. pandas to_dict 的用法
  6. 如何在 Windows 上安装 Python | Linux 中国
  7. FFmpeg中MPEG-4编码程序追踪,其他FFMPEG自带编码器同理
  8. 如何在多个项目中分离Asp.Net Core Mvc的Controller和Areas
  9. [Drupal] Submit and redirect back to the modify page
  10. 异常是catch还是throws的简单原则
  11. building for iOS simulator, but linking in object file built for tvOS, for architecture x86_64
  12. python递归函数分叉树枝_python递归函数绘制分形树的方法
  13. javascript 调用webservice 的几种方法
  14. 实验室常见的PFA制品有哪些?这些特氟龙PFA产品你认得全吗?
  15. 服务器错误数字(代码)对照表
  16. Linux之jq命令的使用
  17. matlab中som结果,matlab神经网络工具箱中的som怎么使用
  18. 开篇词:大厂技术面试“潜规则”
  19. 线性代数-Gilbert Strang(第三部分)
  20. 排列数与组合数~~~~

热门文章

  1. java 数组map_java中 数组 list map之间的互转
  2. 全网最具深度的三次握手、四次挥手讲解,稳进大厂
  3. 入职3个月的Java程序员面临转正,挑战大厂重燃激情!
  4. 史上超级详细:HashMap源码分析,你了解到源码的魅力了嘛
  5. vue 关闭log_vue或react项目生产环境去掉console.log的操作
  6. python解压到指定文件夹_Python:将文件解压缩到当前工作目录,但不保存zip中的目录结构...
  7. python所有函数用法_python函数用法总结
  8. java instanceof 原理_java-在现代JVM实现中如何实现instanceof?
  9. 数据链路层和传输层可靠传输是否重复多余
  10. 商丘网络推广分析网站留不住用户的原因及SEO解决方法