您现在的位置是:网站首页>DjangoDjango

django中的模型数据库的建删改查或等

deling2019年2月23日Django530人已围观

简介django中的数据库模型

首先先导入所有数据表

from app(app名字).models import *

  1. 创建数据

(1) p=Product() 
   p.name='' 
   p.save()

(2) Product.objects.create(name='')

(3) p=Product(name='') 

     p.save()

(4)关联表的创建数据

      格式:grade1=Grades.objects.get(pk=1)

      stu=grade1.students_set.create()


2.更新数据

(1) Product.objects.get(id=1)

.update(name='小明')

(2) Product.objects.filter(name='小明')

.update(name='小红')

(3)全表查询: Product.objects

.update(name='')

3.删除数据

(1)删除表中的所有数据:

Product.objects.all().delete()

(2)删除id=1的数据:

Product.objects.get(id=1).delete()

(3)删除多条数据:

Product.objects.filter(name='小明').delete()

注意:
查询条件get: 查询的数据必须要存在,不然会报错 。 查询条件filter: 查询的数据以列表的形式出现,如果查询条件不在,则返回一个空列表。

4.查询数据

(1)全表查询:

Product.objects.all()

(2)查询前五条数据:

Product.objects.all()[0:5]

(3)查询某个字段:

product.objects.values() 返回的数据是以字典的形式表示

(4)Values_list方法:

Product.objects.values_list()  返回的数据是以元组的形式表示

(5)get方法:

Prduct.objects.get(id=1)

(6)filter方法:

Product.objects.filter()

(7)Q方法查询:

就是mysql 中的or 
      首先先导入Q模块: 
      from django.db.models import Q 
      编写格式:Q(field=values)|Q(field=values)

(8)count方法:

Product.objects.filter(name='小明').count()

(9)去重查询:

Product.objects.values('name')

.filter(name='小明').distinct()

(10)排序方法:

order_by 
      Product.objects.order_by('-id')

(11)聚合查询:

就是mysql语句中的sum,count等,django中用annotate和aggregate方法实现。 
      首先先导入sum,这些模块 
      from django.db.models import sum,count 
      Product.objects.values('name')

       .annotate(sum('id')) 
      aggregate方法:将某个字段的值进行计算并只返回计算结果。 
      Product.objects.

       aggregate(id_count=Count('id')

(12)多表查询:

    格式:类名.关联的类名小写_set.all()

    grade1=Grades.objects.get(id=1)

    grade1.students_set.all()

5.匹配符的使用及说明

(1)__exact匹配符 :

filter(name__exact='荣耀'),精确等于,如mysql中like'荣耀'

(2)__iexact匹配符:

filter(name__iexact='荣耀'),精确等于并忽略大小写

(3)__contains匹配符:

filter(name__contains='荣耀')模糊匹配,如mysql中的%荣耀%

(4)__icontains匹配符:

filter(name__icontains='荣耀',模糊查询并忽略大小写)

(5)__gt匹配符:

filter(id__gt=9),大于

(6)__gte匹配符:

filter(id__gte=9),大于等于

(7)__lt匹配符:

filter(id__lt=9),小于

(8)__lte匹配符:

filter(id__lte=9),小于等于

(9)__in匹配符:

filter(id__in=[1,2,3]) ,判断是否在列表内

(10)__startwith匹配符:

filter(name__startwith='荣耀'),以什么开头

(11)__istartwith匹配符:

filter(name__istartwith='荣耀'),以什么开头,并忽略大小写

(12)__endwith匹配符:

filter(name__endwith='荣耀'),以什么结尾

(13)__iendwith匹配符:

filter(name__iendwith='荣耀'),以什么结尾并忽略大小写

(14)__range匹配符:

filter(name__range='荣耀'),在什么范围内

(15)__year匹配符:

filter(name__year='荣耀'),日期字段的年份

(16)__month匹配符:

filter(name__month='荣耀'),日期字段的月份

(17)__day匹配符:

filter(name__day='荣耀'),日期字段的天数

(18)__isnull匹配符:

filter(name__isnull=True/Flase)

Tags: Django

很赞哦! (14)

上一篇: 无

下一篇:django的安装

留言

来说点儿什么吧...

您的姓名: *

选择头像: *

留言内容:

    2019年2月25日 13:35嘿嘿

    2019年2月26日 13:20ok

    可以可以!

    2019年3月18日 09:2311

    1

    2019年3月28日 09:24www.ikeguang.com

    可以可以

    2019年5月29日 18:47qwe

    666

    2019年5月30日 16:52BlankYk

    he,tui~

    2019年5月30日 17:04123

    321

    2019年6月26日 10:02周树人

    厉害厉害

    2019年6月26日 10:34sdlakrj

    sdaag

    2019年6月29日 15:31sdagafdbaf

    dgafdgdfh

    站长回复:你这是什么什么高级语言,我表示看不懂哈哈

    2019年7月6日 16:37啦啦

    写的真好!谢谢博主

    站长回复:谢谢!

    2019年8月14日 12:35傻傻

    厉害 小林

    2019年9月11日 20:05sdfw

    fgbhjksdgjdfhag

    2019年9月11日 22:18baba

    keke tui

    2019年11月5日 20:09666

    666