模型学习记录篇,仅仅自己学习时做的记录!!!

实现模型变更的三个步骤:

模型字段类型:

  1. AutoField自增字段   一个IntegerField 根据实际ID自动增长.
  2. BigIntegerField   一个64位整数, 这个字段默认的表单组件是一个TextInput.
  3. BinaryField     一个用来存储原始二进制码的Field.
  4. BooleanField
  5. CharField  class CharField(max_length=None[, **options]), 存储从小到很大各种长度的字符串的地方, 默认的表单样式是 TextInput.
  6. CommaSeparatedIntegerField  一个逗号分隔的整数字段。
  7. DateField   一个使用Python的datetime.date实例表示的日期.
  8. DateTimeField   通过Pythondatetime.datetime实例表示的日期和时间.
  9. DecimalField   十进制浮点数,表示python中 Decimal 的一个实例.
  10. DurationField   用作存储一段时间的字段类型 - When used on PostgreSQL, the data type used is an interval
  11. EmailField  that the value is a valid email address
  12. FileField  一个上传文件的字段

a)    FileField and FieldFile

  1. FilePathField   一个 CharField ,内容只限于文件系统内特定目录下的文件名。
  2. FloatField   通过一个浮动实例表示Python中的浮点数。
  3. ImageField
  4. IntegerField   一个整数。从 -21474836482147483647 范围内的值是合法的。默认的表单输入工具是TextInput.
  5. IPAddressField
  6. GenericIPAddressField
  7. NullBooleanField
  8. PositiveIntegerField  跟IntegerField一样,但必须是大于等于0,从0到147483647 范围内的值是合法的。
  9. PositiveSmallIntegerField   跟PositiveIntegerField一样,但只只允许在0到32767范围内
  10. SlugField
  11. SmallIntegerField  跟IntegerField一样,范围从-32768到32767范围内是合法的
  12. TextField   大的文本字段,默认表单是Textarea.
  13. TimeField   时间字段,类似于DateFieldDateTimeField
  14. URLField
  15. UUIDField

模型执行查询

:模型执行查询语句写在view中函数中

基础:

  • 每个模型都是django.db.models.Model 的一个Python 子类。
  • 模型的每个属性都表示数据库中的一个字段。
  • Django 提供一套自动生成的用于数据库访问的API;详见执行查询

通过模型中的管理器构造一个查询集,来从你的数据库中获取对象。

从SQL 的角度,查询集SELECT 语句等价,过滤器是像WHERELIMIT 一样的限制子句。你可以从模型的管理器那里取得查询集。每个模型都至少有一个管理器,它默认命名为objects。通过模型类来直接访问它,

一般查询集(相当于select * from LOrder):

LOrder.objects #模型管理器, 通过模型中的管理器构造一个查询集,来从你的数据库中获取对象.

注: 可以在每个模型类中重命名它们。在模型中定义一个值为models.Manager()的属性,来重命名管理器

LOrder.objects.all() #获取一个表中所有对象,这是最简单的方式

过滤查询集 (相当于select * from LOrder where +条件语句):

LOrder.objects.filter(查询参数) #获取一个表中满足查询参数的对象,

例: LOrder.objects.filter(serv_id='121768152983'),意为查询LOrder数据标识serv_id字段下为121768152983的一行信息

LOrder.objects.exclude(查询参数) #获取一个表中不满足查询参数的对象,执行与filter相反的结果

注:了解上面两种模型执行查询方法后,可以试着链式查询方式

LOrder.objects.get(查询参数) #获取一个表中满足查询参数的单一对象,

值得注意的是,使用get() 和使用filter() 的切片[0] 有一点区别。如果没有结果满足查询,get() 将引发一个DoesNotExist 异常。这个异常是正在查询的模型类的一个属性 —— 所以在上面的代码中,如果没有主键为1 的Entry 对象,Django 将引发一个Entry.DoesNotExist

类似地,如果有多条记录满足get() 的查询条件,Django 也将报错。这种情况将引发MultipleObjectsReturned,它同样是模型类自身的一个属性。

限制查询集(相当于select * from LOrder limit 10):

LOrder.objects.all()[1:10:2] #获取一个表中1到10行且每隔2行的对象

字段查询集:

LOrder.objects.filter(completed_time__lte='2015-12-01') #筛选出字段completed_time__lte小于2015-12-01的数据

LOrder.objects.filter(completed_time__gte='2015-12-01') #筛选出字段completed_time__lte大于2015-12-01的数据

注: exclude中lte是大于,gte是小于

LOrder.objects.filter(completed_time__exact='2014-11-21 17:29:21') #exact是精确匹配

LOrder.objects.filter(completed_time__contains ='2015') # contains是模糊匹配,相当于like’%2015%’

注:iexact,和icontains是不区分大小写,上面的区分大小写

1: 一般来说,只有在请求查询集的结果时才会到数据库中去获取它们。

2: 执行查询函数具体参见django1.8.2官方文档中的查询集API参考

最后编辑于2016-01-05,此为模型部分第一次学习记录后续继续完善

[Django]模型学习记录篇--基础的更多相关文章

  1. 学习记录-java基础部分(一)

    学习记录-java基础部分(一) 参考:GitHub上的知名项目:javaGuide : https://github.com/Snailclimb/JavaGuide/blob/master/doc ...

  2. python核心编程学习记录之基础知识

    虽然对python的基础知识有所了解,但是为了更深入的学习,要对python的各种经典书籍进行学习 第一章介绍python的优缺点,略过 第二章介绍python起步,第三章介绍python基础,仅记录 ...

  3. python学习记录_IPython基础,Tab自动完成,内省,%run命令_

        这是我第一次写博客,之前也有很多想法,想把自己所接触的,以文本的形式储存,总是没有及时行动.此次下定决心,想把自己所学,所遇到的问题做个记录共享给诸位,与此同时自己作为备忘,感谢各位访问我的博 ...

  4. CSS盒子模型学习记录3(侧面导航栏)

    学习http://www.blueidea.com/tech/web/2007/4545_2.asp 代码试验 html <!DOCTYPE html PUBLIC "-//W3C// ...

  5. CSS盒子模型学习记录1

    http://www.blueidea.com/tech/web/2007/4545.asp 代码试验: html代码: <!DOCTYPE html PUBLIC "-//W3C// ...

  6. CSS盒子模型学习记录2

    参考:http://www.blueidea.com/tech/web/2007/4545_2.asp 代码试验: html代码: <!DOCTYPE html PUBLIC "-// ...

  7. SpringBoot【新手学习记录篇】

    1. 启动方式: 在idea中的application.java右键run as 命令行进入项目目录,使用命令 mvn spring-boot:run 使用mvn install进行打包,然后进入ta ...

  8. 个人学习记录-Cpp基础-成员初始化列表

    Translator     Translator     参考链接: https://blog.csdn.net/XIONGXING_xx/article/details/115553291http ...

  9. 《java从入门到精通》学习记录

    目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...

随机推荐

  1. 转载:《TypeScript 中文入门教程》 8、函数

    版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 函数是JavaScript应用程序的基础. 它帮助你实现抽象层,模拟类,信息隐藏 ...

  2. MySQL 5.7:非结构化数据存储的新选择

    本文转载自:http://www.innomysql.net/article/23959.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 工作10余年,没有一个版本能像MySQL ...

  3. Linux下三个密码生成工具

    http://code.csdn.net/news/2820879 想出一个难破解且容易记的密码对不是一件简单的事情.在我为电脑设定一个新密码,或者在线注册了一个新的账号,需要输入密码的时候,脑袋就一 ...

  4. 使用C#开发数据库应用系统

    第一章 初识Windows程序 01.浅谈控制台应用 解析:控制台应用程序:dos窗口中显示 Windows窗体应用程序:有控件参与的,支持事件的一种程序 02.关于窗体项目的注意点: /*01.一个 ...

  5. webpack继续

    序言:继续上一篇<webpack初入> 1.上一篇配置完成后最终的命令是:webpack,如果更改package.json中的一个配置如下: 换为 此时最终的命令:npm start等同于 ...

  6. 学习笔记 ACCESS 延迟注入

    通过执行很多命令延长执行时间判断返回是否有SQL注入. 例如: login.asp?id and (SELECT count(*) FROM MSysAccessObjects AS T1, MSys ...

  7. ArcGIS中国工具应用:固定比例尺固定纸张批量打印

    ArcGIS中国工具应用:固定比例尺固定纸张批量打印 下载地址:http://files.cnblogs.com/files/gisoracle/a3batchprint.zip 固定A3,比例尺1: ...

  8. 云南南天电子信息产业股份有限公司某站SQL注入漏洞

      220.163.13*.**   root@kali:~# sqlmap -u http://www.****.com.cn/****.Aspx?keyword= -v 1 --dbs --tam ...

  9. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q147-Q151)

    Question  147 Your company has an existing SharePoint 2010 public-facing Web site. The Web site runs ...

  10. iOS之ShareSDK实现分享、第三方登录等功能

    (1)官方下载ShareSDK iOS 2.8.8,地址:http://sharesdk.cn/ (2)根据实际情况,引入相关的库,参考官方文档. (3)在项目的AppDelegate中一般情况下有三 ...