• 学习了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进阶之旅------>解决错误: java.util.regex.PatternSyntaxException: Incorrect Unicode property

    1.错误描述 今天使用正则表达式验证密码的时候,报了错误 java.util.regex.PatternSyntaxException: Incorrect Unicode property near ...

  2. 前端基础-css(3)

    一.文本属性和字体属性(常用的) 1.文本属性 text-align:left|right|center|justify(两端对齐,只适用于英文);   /*对齐方式*/ color:色值;   /* ...

  3. java 多线程 day01 创建线程

    线程,即代码的执行路径java 面向对象编程.所以线程在java中也是用对象来表示的,创建线程对象的类就是 Thread如下代码即开启一个新的线程,通过线程对象的start方法,即可启动线程 Thre ...

  4. 简明python教程六----编写一个python脚本

    备份程序: #!/usr/bin/python #Filename:backup_ver1.py import os import time source = ['/home/liuxj/python ...

  5. DP专题·三(01背包+完全背包)

    1.hdu 2126 Buy the souvenirs 题意:给出若干个纪念品的价格,求在能购买的纪念品的数目最大的情况下的购买方案. 思路:01背包+记录方案. #include<iostr ...

  6. java.util.Calendar简介

    Calendar是一个抽象类,我们无法直接实例化它,它有一个具体子类实体类java.util.GregorianCalendar,这个类实现的就是我们日常所用的公历历法,或者叫做阳历.我们可以直接使用 ...

  7. C#中跨库事务处理解决方案

    最近新接手了一项业务,其中有一个方法,需要对业务表进行写入数据,之后记录到日志表中.这部分代码原先是前人写的,他没有采用任何方案,只是简单的调用Ado.net执行了两次写库操作.因此经常出现系统使用者 ...

  8. 保护你的代码,生成.a文件以及.framework文件需要注意的地方

    一个好的设计,一个方便使用的控件封装,一个酷炫的动画... 是不是迫不及待要分享给大家你的每一个突然蹦出来的好的idea,那就下手吧! 可是,你想要的只是让大家使用它,而不是把所有技术点都公开给每个人 ...

  9. Linux系统启动管理 系统安全

    Linux GRUB加密方法 加密grub防止黑客通过单用户系统破解root密码 ,进入系统窃取数据.给grub加密,不让别人通过grub进入单用户.  生成密码 [root@localhost ~] ...

  10. 常用iptables命令

    1.不让某个ip访问本机的80端口: iptables -t filter -I INPUT -p tcp -s 192.168.222.163 --dport 80 -j DROP 2.实现把访问 ...