• 学习了ORM模板中常用的字段以及使用方法,具体如下:
  • from django.db import models
    
    # Create your models here.
    # 如果要将一个普通的类映射到数据库,必须设置其父类为models.Model
    class Book(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100, null=False)
    author = models.CharField(max_length=100, null=False)
    price = models.FloatField(null=False, default=0) def __str__(self):
    # 定义返回字符串的格式
    return "<Book:{name},{author},{price}>".format(name=self.name, author=self.author, price=self.price) class Publisher(models.Model):
    name = models.CharField(max_length=100, null=False)
    address = models.CharField(max_length=100, null=False) class Article(models.Model):
    # 如果想自己定义主键,primary_key=True,否则会自动生成id主键
    id = models.BigAutoField(primary_key=True)
    # removed = models.BooleanField(default=True)
    # 如果没有指明null=True,那么默认null=False,
    # 如果想要使用可以为null的BooleanField,那么应该使用NullBooleanField
    removed = models.NullBooleanField()
    # CharField 如果超过254个,不建议使用
    title = models.CharField(max_length=200, null=True) '''
    naive time: 不知道自己的时间是表示那个时区的时间
    aware time: 知道自己的时间表示的是那个时区的
    pytz: 库在安装django的时候默认安装,专门用来处理时区的库
    astimezone:将一个时区的时间转化为另一个时区的时间,只能被aware time类型时间使用
    replace: 可以将上述的两种时间表示相互转换(now = now.replace(tzinfo= pytz.timezone(Asia/Shanghai)))
    django.utils.timezone.now(): 会根据’setting.py’中是否设置了‘USE_TZ=True’获取当前时间,如果设置了,那么就会获取到一个‘aware’类型的‘UTC’时间,如果没有,就会获取到一个‘navie’时间。
    django.utils.timezone.localtime(): 会根据’setting.py’中的‘TIME_ZONE'来将一个’aware‘类型的时间转化为‘TIME_ZONE'指定的时区的时间
    '''
    # auto_now_add=True:在第一添加数据的时候会自动获取当前时间
    # auto_now: 每次这个对象调用save方法的时候(更改数据的时候会用到save),都会将当前的时间更新,在更新时间字段用得到
    create_time = models.DateTimeField(auto_now_add=True) class Person(models.Model):
    # EmailField在数据库层面不会限制你存储的格式
    email = models.EmailField()
    context = models.TextField()

      建立迁移文件命令:python manage.py makemigrations    迁移文件:python manage.py migrate

  • 常用字段: 在 Django 中,定义了一些 Field 来与数据库表中的字段类型来进行映射。以下将介绍那些常用 的字段类型。
  • AutoField: 映射到数据库中是 int 类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主 键,那么模型会自动的生成一个叫做 id 的自动增长的主键。如果你想指定一个其他名字的并且具 有自动增长的主键,使用 AutoField 也是可以的。
  • BigAutoField: 64位的整形,类似于 AutoField ,只不过是产生的数据的范围是从 1-9223372036854775807 。
  • BooleanField: 在模型层面接收的是 True/False 。在数据库层面是 tinyint 类型。如果没有指定默认值,默认值 是 None 。
  • CharField: 在数据库层面是 varchar 类型。在 Python 层面就是普通的字符串。这个类型在使用的时候必须 要指定最大的长度,也即必须要传递 max_length 这个关键字参数进去。
  • DateField: 日期类型。在 Python 中是 datetime.date 类型,可以记录年月日。在映射到数据库中也 是 date 类型。使用这个 Field 可以传递以下几个参数: 1. auto_now :在每次这个数据保存的时候,都使用当前的时间。比如作为一个记录修改日期的 字段,可以将这个属性设置为 True 。 2. auto_now_add :在每次数据第一次被添加进去的时候,都使用当前的时间。比如作为一个记 录第一次入库的字段,可以将这个属性设置为 True 。
  • DateTimeField:日期时间类型,类似于 DateField 。不仅仅可以存储日期,还可以存储时间。映射到数据库中 是 datetime 类型。这个 Field 也可以使用 auto_now 和 auto_now_add 两个属性。 TimeField: 时间类型。在数据库中是 time 类型。在 Python 中是 datetime.time 类型。
  • EmailField: 类似于 CharField 。在数据库底层也是一个 varchar 类型。最大长度是254个字符。
  • FloatField: 浮点类型。映射到数据库中是 float 类型。
  • IntegerField: 整形。值的区间是 -2147483648——2147483647 。
  • BigIntegerField: 大整形。值的区间是 -9223372036854775808——9223372036854775807 。
  • PositiveIntegerField: 正整形。值的区间是 0——2147483647 。 SmallIntegerField: 小整形。值的区间是 -32768——32767 。
  • PositiveSmallIntegerField:正小整形。值的区间是 0——32767 。
  • TextField: 大量的文本类型。映射到数据库中是longtext类型。
  • UUIDField: 只能存储 uuid 格式的字符串。 uuid 是一个32位的全球唯一的字符串,一般用来作为主键。
  • URLField: 类似于 CharField ,只不过只能用来存储 url 格式的字符串。并且默认的 max_length 是200。
  • 以上。

Django中ORM模板常用属性讲解的更多相关文章

  1. Django中ORM介绍和字段及其参数

    ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...

  2. Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)

    Django中ORM介绍和字段及字段参数   Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...

  3. Django中ORM的使用

    Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...

  4. Django中ORM对数据库的增删改查

    Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...

  5. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  6. Django中ORM对数据库的增删改查操作

         前言 什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...

  7. Django中ORM创建表关系

    一:django中ORM创建表关系 ORM创建外键关系 1.表与表之间的关系 1.表与表之间的关系 一对多 一对一 多对多 2.操作目标条件: 图书表 出版社表 作者表 作者详情表 3.外键关联 一对 ...

  8. Delphi中TStringList类常用属性方法详解

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...

  9. Django中ORM实际应用

    1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...

随机推荐

  1. 【我的Android进阶之旅】Realm数据库学习资料汇总(持续更新)

    介绍 realm是一个跨平台移动数据库引擎,支持iOS.OS X(Objective-C和Swift)以及Android. 2014年7月发布.由YCombinator孵化的创业团队历时几年打造,是第 ...

  2. rabbitmq channel参数详解【转】

    1.Channel 1.1 channel.exchangeDeclare(): type:有direct.fanout.topic三种durable:true.false true:服务器重启会保留 ...

  3. 部署Node.js的应用

    原创:作者 mashihua 最近Node.js很火,让很多的前端看到了可以直接从前端写到后端的希望.但是每次部署一个Node.js的应用却让前端苦恼不已.每次登陆服务器,用自己不熟悉的方式从版本控制 ...

  4. centos7 vmware克隆解决网络问题

    centos7克隆后,发现两台机子之间的MAC相同,无法获取IP.超找资料,解决办法如下: 只要删除网卡的配置文件中的HWADDR和UUID两行就行.使用ifup启动网卡即可.

  5. 转:探索C++0x: 1. 静态断言(static_assert)

    转自:http://www.cppblog.com/thesys/articles/116985.html 简介 C++0x中引入了static_assert这个关键字,用来做编译期间的断言,因此叫做 ...

  6. beego——控制器函数

    基于beego的Controller设计,只需要匿名组合beego.Controller就可以,如下所示: type xxxController struct { beego.Controller } ...

  7. Matplot相关(一)

    ——————————缩写定义—————————— import matplotlib.pyplot as plt import matplotlib as mpl ——————————函数解析———— ...

  8. Bootstrap 简介二

    什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstra ...

  9. spring boot Rabbitmq集成,延时消息队列实现

    本篇主要记录Spring boot 集成Rabbitmq,分为两部分, 第一部分为创建普通消息队列, 第二部分为延时消息队列实现: spring boot提供对mq消息队列支持amqp相关包,引入即可 ...

  10. Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法

    最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders ...