25.常用的字段类型映射关系,字段类型及Field的常用参数

Posted 孤寒者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了25.常用的字段类型映射关系,字段类型及Field的常用参数相关的知识,希望对你有一定的参考价值。

1.常用的字段类型映射关系:

2常用的字段类型讲解:

  1. IntegerField : 整型,映射到数据库中的int类型。
  2. CharField: 字符类型,映射到数据库中的varchar类型,通过max_length指定最大长度。
  3. TextField: 文本类型,映射到数据库中的text类型。
  4. BooleanField: 布尔类型,映射到数据库中的tinyint类型,在使用的时候,传递True/False进去。如果要可以为空,则用NullBooleanField。
  5. DateField: 日期类型,没有时间。映射到数据库中是date类型, 在使用的时候,可以设置DateField.auto_now每次保存对象时,自动设置该字段为当前时间。
    设置DateField.auto_now_add当对象第一次被创建时自动设置当前时间。
  6. DateTimeField: 日期时间类型。映射到数据库中的是datetime类型,
    在使用的时候,传递datetime.datetime()进去。

3.Field的常用参数:

  • primary_key: 指定是否为主键。
  • unique: 指定是否唯一。
  • null: 指定是否为空,默认为False。
  • blank: 等于True时form表单验证时可以为空,默认为False。
  • default: 设置默认值。
  • DateField.auto_now: 每次修改都会将当前时间更新进去
  • DateField.auto_now_add: 第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值



动手实践——实战使用上述所讲!

创建一个供文章使用的模型类!

①模型的定义:

(models.py文件)

from django.db import models

# Create your models here.

class Article(models.Model):
    # 文章标题
    name = models.CharField(max_length=30,unique=True)      #unique唯一
    # 文章点赞数
    up = models.IntegerField(null=True)    				    #null 允许为空
    # 文章内容
    text = models.TextField()

    # 逻辑删除:比如你删除你的一条微信朋友圈,可能就只是将此默认值改为了False,在用户看来他已经删了这条数据,但是实际上后台人员仍可查询到数据!
    is_delete = models.BooleanField(default=True)

    create_time = models.DateField(auto_now_add=True)        #日期   auto_now_add第一次添加数据进去,会将当前时间设置进去。以后修改,不会修改这个值
    update_time = models.DateTimeField(auto_now=True)        #日期时间,每次修改都会将当前时间更新进去

②切记——不要忘记迁移数据库哦!

因为我们添加了一个新模型,因此需要迁移数据库。
步骤:
  ①修改models.py ②执行命令makemigrations music ③再执行命令migrate music。

小注意:

Django系统调用的时间为格林威治时间,中国在东八区,需要加八小时得到中国时间。
需要在settings.py文件中进行设置:

TIME_ZONE = 'Asia/Shanghai'

但经过测试这时不足以修改前端或数据库存储的时间。查阅文档后发现,还需要修改:

USE_TZ = False

③观察可知对应的表已经映射到数据库中:

④进行数据的增加:

(views.py文件)

from django.http import HttpResponse

from .models import Article


def add_user(request):
    Article.objects.create(name="橘子洲头",text="橘子洲有青年艺术雕塑、问天台等景点,史载橘子洲生成于晋惠帝永兴二年(305年),为激流回旋冲积、沙石堆积而成。景区内生长着数千种花草藤蔓植物,其中名贵植物就有143种。还有鸥、狐、獾等许多珍稀动物。")
    Article.objects.create(name="南岳衡山",text="橘子洲有青年艺术雕塑、问天台等景点,史载橘子洲生成于晋惠帝永兴二年(305年),为激流回旋冲积、沙石堆积而成。景区内生长着数千种花草藤蔓植物,其中名贵植物就有143种。还有鸥、狐、獾等许多珍稀动物。")

    return HttpResponse("插入数据成功!")


⑤进行数据修改的话:

(views.py文件中加入以下视图函数:)

def modify_user(request):
    j = Article.objects.get(id=2)
    j.text = "1982年,衡山风景区被列入第一批国家级重点风景名胜区名单;2006年2月,衡山入选首批国家自然与文化双遗产名录;2007年5月,衡山风景区被评为首批国家5A级旅游景区;2007年8月,衡山被列为国家级自然保护区。"
    j.save()

    return HttpResponse("数据修改成功!")


注意:
  被修改的第二条数据的create_time字段名不会改变;但是对应的字段名update_time会自动改为当前时间!

以上是关于25.常用的字段类型映射关系,字段类型及Field的常用参数的主要内容,如果未能解决你的问题,请参考以下文章

049:ORM常用Field详解

Django ORM 创建数据库和模型常用的字段类型参数及Field 重要参数介绍

ElasticSearch之映射常用操作

14.模型常用字段

一 Django模型层简介

Django 模型常用属性