hancece
import django,os
os.environ.setdefault(\'DJANGO_SETTINGS_MODULE\', \'dj_Test.settings\')  #指定django的配置文件
django.setup()   #链接数据库
from user import models
from django.db.models import Q   #查询all,必须引进Q
#新增数据的两种方法
# models.Nav.objects.create(name=\'我的日记1\')
# models.Nav.objects.create(name=\'我的日记2\')
# nav_obj=models.Nav(name=\'我的心情\',is_delete=1)
# nav_obj.save()

#查询
# 1.get:get方法查询时必须保证结果只有一条,否则会报错
# result=models.Nav.objects.get(name=\'我的心情\') # result3=models.Nav.objects.get(is_delete=1) # result2=models.Nav.objects.get(id=1) # print(type(result)) #是一个类 # print(result2) # print(result.id) # print(result.update_time) #查询到对应的结果 # print(result3) 结果有多条时报错 #查询2 filter,可以查多条 # result1=models.Nav.objects.filter(is_delete=1) # result=models.Nav.objects.filter(is_delete=1,name=\'我的心情\') #多重条件时 ,相当于and # result2=models.Nav.objects.filter(name__contains=\'我的\',id__gt=0) #字段名__contains:模糊查询,id__gt=0:id字段>0, # #id_gte=1:大于等于1,id_lt=1:小于1,id_lt=lte:小于等于1 # result3=models.Nav.objects.filter(is_delete__range=[1,5]) #查询一个字段在某个范围之间的数据 # result4=models.Nav.objects.filter(id__in=[1,2,3,4,5]) #in条件查询 # result4=models.Nav.objects.filter(id__in=[1,2,3,4,5]) .count()统计数量 # result5=models.Nav.objects.exclude(id=1) #除了id=1的都查询出来,exclude排除 # print(result) # print(result2) # print(result3) # print(result4) # print(result5) result6=models.Nav.objects.filter(Q(name__contains=\'6\')|Q(name__contains=\'3\')) #or 查询,使用前要先导入Q print(result6) all=models.Nav.objects.all() #获取表里所有数据 all2=models.Nav.objects.all().filter(name__contains=\'6\') #可以在结果中继续筛选,可无限筛选下去 #修改 # n=models.Nav.objects.get(is_delete=1) #找到这条元素 get(pk=1):查找主键=1 # n.img=\'article/1.jpg\' #修改数据 # n.save() #修改完保存 # models.Nav.objects.all().update(is_delete=0) #更新表里所有数据 models.Article.objects.filter(is_delete=1).update(img=\'article_img/1.jpg\') #根据条件更改数据 # 删除 # models.Nav.objects.all().delete() #删除表里所有数据 # models.Nav.objects.filter(id__lt=3).delete() #根据条件删除数据 # n=models.Nav.objects.get(id=3) #parimy key 单个删除 # n.delete() models.Article.objects.create(title=\'django教程\',content=\'django教程111\',nav_id=8) models.Article.objects.create(title=\'django教程\',content=\'django教程111\',nav_id=9) models.Article.objects.create(title=\'django教程\',content=\'django教程111\',nav_id=10) models.Article.objects.create(title=\'django教程\',content=\'django教程111\',nav_id=11) models.Article.objects.create(title=\'django教程\',content=\'django教程111\',nav_id=12) models.Article.objects.create(title=\'django教程\',content=\'django教程111\',nav_id=13) # # 同上: # nav=models.Nav.objects.get(name=\'我的日记5\') # models.Article.objects.create(title=\'django教程\',content=\'django教程111\',nav_id=7)

 数据变更不需要执行生效的命令。

多表查询:

# 最原始的连表查询
nav=models.Nav.objects.get(name=\'我的日记3\')
result=models.Article.objects.filter(nav_id=nav.id)
print(result)


# 外键连表查询:
# nav=models.Nav.objects.get(name=\'我的日记10\')
# result=nav.article_set.all()   #获取导航下的所有文章,前提是要关联外键
# print(result)
#
# art=models.Article.objects.get(id=5)
# print(art)

 

分类:

技术点:

相关文章: