django的必知必会13条
参考链接: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()
        作者:wangkaiok —— 小菜鸟111
        
        出处:http://www.cnblogs.com/wangkaiok/
        
        本文版权归作者和博客园共有,但未经作者同意禁止转载,转载必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    

                
            
        
浙公网安备 33010602011771号