一、常用的查询

常用的查询方法(注:User为app项目):

获取所有的记录: rs = User.objects.all()

获取第一条数据:rs = User.objects.first()

获取最后一条数据:rs = User.objects.last()

根据参数提供的条件获取过滤后的记录:rs = User.objects.filter(name=‘xiaoming’)

注意:filter(**kwargs)方法:根据参数提供的提取条件,获取一个过滤后的QuerySet。

排除name为xiaoming的记录:rs = User.objects.exclude(name='xiaoming')

获取一个记录对象:rs = User.objects.get(name='xiaoming')

注意:get返回的对象具有唯一性质,如果符合条件的对象有多个,则get报错!

对结果排序order_by:  rs = User.objects.order_by('age')

对多对象排序:rs = User.objects.oeder_by('age', 'id')

逆向排序:rs = User.objects.oeder_by('-age')

将返回来的QuerySet中的model转换为字典:rs = User.objects.all().values()

获取当前查询到的数据的总数:rs = User.objects.count()

常用的查询条件:

注:查找对象的条件的意思是传给以下方法的一些参数。相当于是SQL语句中的where语句后面的条件,语法为字段名__规则(是连着两个下划线)

exact 相当于等于号: rs = User.objects.filter(name__exact='xiaoming'), iexact:跟exact,只是忽略大小写的匹配;

contains包含:rs = User.objects.filter(name__contains='xiao'), icontains跟contains,唯一不同是忽略大小写。

startwith 以什么开始: rs = User.objects.filter(name__startwith='xiao'), isstartwith:同startwith,忽略大小写。

endwith  以什么结尾:rs = User.objects.filter(name__endwith='xiao'),isendwith:同endwith,忽略大小写。

in 成员所属: rs = User.objects.filter(age__in=[18,19,20])

gt 大于:rs = User.objects.filter(age__gt=20)

gte大于等于:rs = User.objects.filter(age__gte=20)

lt 小于: rs = User.objects.filter(age__lt=20)

lte小于等于:rs = User.objects.filter(age__lte=20)

range区间:rs = User.objects.filter)age__range=(18,20))

isnull 判断是否为空:rs = User.objects.filter(city__isnull=True)

二、常用的模型字段类型

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

int---------->IntegerField

varchar--->CharField

longtext--->TextField

date-------->DateField

datetime--->DateTimeField

常用的字段类型:

IntegerField:整型,映射到数据库中的int类型;

CharField:字符类型,映射到数据库中的varchar类型,通过max_length指定最大长度;

TextField:文本类型,映射到数据库中的text类型;

BooleanField:布尔类型,映射到数据库中的tinyint类型,在使用的时候,传递True/False进去,如果要可以为空,则用NullBooleanField;

DateField:日期类型,没有时间。映射到数据库中是date类型,在使用的时候,可以设置DateFiled.auto_now每次保存对象时,自动设置该字段为当前时间。设置DateField.auto_now_add当对象第一次被创建时自动设置当前时间;

DateTimeField:日期时间类型。映射到数据库中的是datetime类型,在使用的时候,传递datetime.datetime()进去。

三、Field的常用参数

primary_key:制定是否为主键;

unique:指定是否唯一;

null:指定是否为空,默认为False;

blank:等于True时form表单验证时可以为空,默认为False;

default:设置默认值。

DateField.auto_now:每次修改都会将当前时间更新进去,只有调用,QuerySet.update方法将不会调用。这个参数只是Date和DateTime以及TimModel.save()方法才会调用e类才有的。DateField.auto_now_add:第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值。

创建模型类:

app目录下的models.py文件中,创建模型所需要的数据,并定义其Field参数

 app目录下的views.py文件中,创建输入对应数据

四、表关系的实现

表关系的实现:

  数据库层面 模型类层面
一对多 外键

ForeignKeyField

一对一 外键+唯一键 OneToOneField
多对多 关联表:外键+联合唯一 ManyToManyField

表关系图:

表关系的例子:

学院信息表 一对多 学生信息表
学生信息表 一对一 学生详细信息表
课程表 多对多 学生信息表

创建模型类:

最新文章

  1. 【完全开源】微信客户端.NET版
  2. JavaScript中call,apply,bind方法的总结。
  3. Arch命令行与安装包
  4. HDU 5344 MZL's xor (水题)
  5. Delphi 712操作word
  6. android94 样式和主题
  7. uva10020 贪心
  8. 使用shell+awk完成Hive查询结果格式化输出
  9. 认识CLR [《CLR via C#》读书笔记]
  10. 分享PHP中的10个实用函数
  11. 自定义下拉刷新上拉加载View
  12. Feel Good POJ - 2796 (前缀和+单调栈)(详解)
  13. Django——权限
  14. git工作操作步骤
  15. #ASP.NET 自制免费.NET代码生成器KevinCodeBuilder
  16. (原) windows下autohotkey的快捷键脚本编写
  17. ParseUrl
  18. Unity3D Shader图像扭曲过场效果
  19. Python一键安装全部依赖包
  20. 1、webpack编译打包Sass编译的css进js文件

热门文章

  1. phpstorm go py 30天无线试用
  2. windows服务包装程序
  3. vue中常用的插件
  4. 2019-2020-1 20199318《Linux内核原理与分析》第十二周作业
  5. 【剑指Offer】【链表】链表中环的入口结点
  6. c中遍历lua的表
  7. Queries Gym - 100741A - 树状数组
  8. Springboot实现文件上传下载功能
  9. 每日一抄 Go语言聊天服务器
  10. SQLServer数据库,使用Alter修改表的主外键结构