参考链接:https://www.cnblogs.com/maple-shaw/articles/9403501.html
为了保存你的CRM操作。
在Python脚本中调用Django环境
import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "BMS.settings") import django django.setup() from app01 import models books = models.Book.objects.all() print(books)
import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "about_orm.settings") import django django.setup() from app01 import models #all() 获取所有的数据 _> QuerySet 对象列表 books = models.Person.objects.all() print(books)
定义str方法:
def __str__(self): return '<Person: {} - {} - {}>'.format(self.pk,self.name,self.age)
import os
if __name__ == '__main__':
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "about_orm.settings")
import django
django.setup()
from app01 import models
#all() 获取所有的数据 _> QuerySet 对象列表
# ret = models.Person.objects.all()
# print(ret)
#get() 获取一个满足条件的对象 _> 对象
# 获取不到或者获取到多个就报错
# ret = models.Person.objects.get(name='alex')
# print(ret) #<Person: 2 - alex - 84>
#filter 获取满足条件的所有对象 _> QuerySet 对象列表
# ret = models.Person.objects.filter(name='xx')
# print(ret) # <QuerySet []>
#firtst() 获取第一个对象 _> 对象
# ret = models.Person.objects.filter(name='xx').first()
# print(ret) #None
#last() 获取第一个对象 _> 对象
# ret = models.Person.objects.filter(name='xx').last()
# print(ret) #None
#exclude 获取不满足条件的所有对象 _> QuerySet 对象列表
# ret = models.Person.objects.exclude(name='xx')
# print(ret) #<QuerySet [<Person: <Person: 1 - alex - 73>>, <Person: <Person: 2 - alex - 84>>]>
# values 获取对象的字段和值 _> QuerySet [{},{}]
# 不写参数 获取所有字段的名字和值
# 写参数 获取指定字段的名字和值
# ret = models.Person.objects.all().values('nid','name')
# for i in ret:
# print(i,type(i))
# print(ret)
# value_list 获取对象的值 _> QuerySet [(),()]
# 不写参数 获取所有的字段值
# 写参数 获取指定字段值
# ret = models.Person.objects.all().values_list('nid','age')
# for i in ret:
# print(i,type(i)) #(1, 73) <class 'tuple'>
# print(ret)
#(1, 73) <class 'tuple'>
# (2, 84) <class 'tuple'>
# <QuerySet [(1, 73), (2, 84)]>
# order_by 排序 指定多个字典 - 降序
# ret = models.Person.objects.order_by('nid','age')
# ret = models.Person.objects.order_by('-nid','age') #降序
# print(ret)
#reverse 反向排序 对一个已经有序的列表 有效果前必须先排序
# ret = models.Person.objects.reverse()
# print(ret) #<QuerySet [<Person: <Person: 1 - alex - 73>>, <Person: <Person: 2 - alex - 84>>]>
# distinct 去重 nid也得一样,所有的都得一样
#从返回结果中剔除重复纪录(如果你查询跨越多个表,可能在计算QuerySet时得到重复的结果。此时可以使用distinct(),注意只有在PostgreSQL中支持按字段去重。)
# ret = models.Person.objects.values('name', 'nid').distinct()
# count 计数
# ret = models.Person.objects.count()
#如果QuerySet包含数据,就返回True,否则返回False
# ret = models.Person.objects.filter(name='alex').exists()
# print(ret)
返回QuerySet对象的方法有
all()
filter()
exclude()
order_by()
reverse()
distinct()
特殊的QuerySet
values() 返回一个可迭代的字典序列
values_list() 返回一个可迭代的元祖序列
返回具体对象的
get()
first()
last()
返回布尔值的方法有:
exists()
返回数字的方法有
count()