首页
学习
活动
专区
圈层
工具
发布

django-7-django模型系统

的模型字段类型>>> https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types  InterField  CharFiled...2.1/ref/models/fields/#field-options primary_key auto_dreated unique指定是否为唯一 auto_now >>  通过模型类上的管理器来构造... 模型类上的管理器(class.objects)  queryset (惰性,,没有操作数据库)表示数据库中对象的集合,等同于select 语句   query 获取mysql 语句  first()...获取第一条,返回对象  last() 获取最后一条,返回对象  get(**kwargs) 根据给定的条件获取一个对象,如果有多个对象符合则报错  all() 获取所有记录  filter(**kwargs...) 根据给定的条件获取过滤后的queryset,多个条件用','连接  exclude(**kwargs) 作用和filter相反,去除不符合条件的对象  多条件的or连接  from django.db.models

1K10

django 1.8 官方文档翻译: 3-1-3 Django 的快捷函数

] 在一个给定的模型管理器上调用get(),但是引发Http404 而不是模型的DoesNotExist 异常。...必选的参数 klass 获取该对象的一个Model 类,Manager或QuerySet 实例。 **kwargs 查询的参数,格式应该可以被get() 和filter()接受。...get_list_or_404 get_list_or_404(klass, *args, **kwargs)[source] 返回一个给定模型管理器上filter() 的结果,并将结果映射为一个列表,...必选的参数 klass 获取该列表的一个Model、Manager 或QuerySet 实例。 **kwargs 查寻的参数,格式应该可以被get() 和filter() 接受。...示例 下面的示例从MyModel 中获取所有发布出来的对象: from django.shortcuts import get_list_or_404 def my_view(request):

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django-官网查询部分翻译(1.11版本文档)-QuerySet-字段查找-06

    (ORM)中,数据库与 python 对象的映射关系十分形象,一个表模型类(class)即代表一张表,实例化出一个对象即代表一条数据记录 创建一个对象(一条数据记录) 在 django 中要想创建一个数据对象...Retrieving objects 查出对象(QuerySet) 从数据库中查询对象,通过 表模型类的 Manager 管理器 来构造一个 QuerySet 。...的操作(只有表层面才有Manager) Retrieving all objects 查出所有对象 最简单的方式从表里获取全部记录对象(QuerySet)是在 Manager 上调用 .all()...通常来说,QuerySet 的结果只会在你 “访问” 它们的时候才会从数据库获取,当你执行时,QuerySet 会通过访问数据库来取值(When you do, the QuerySet is evaluated...,你可以用 表模型类的 Manager 对象来调用 .get() 方法,往里面传入查询条件来直接获取到数据对象。

    3.2K20

    Django 模型中自定义Manager和模型方法

    1.自定义管理器(Manager) 在语句Book.objects.all()中,objects是一个特殊的属性,通过它来查询数据库,它就是模型的一个Manager....现在我们可以进行下面的操作: >>> Books.objects.title_count('django') #这是我们自定义的manager中的查询方法 2 >>> Books.objects.filter...修改初始Manager Queryset manager的基础Queryset返回系统中的所有对象.例如,Book.objects.all()返回book数据库中的所有书籍.你而已通过覆盖Manager.get_queryset...).get_queryset().filter(author='Roald Dahl') # 然后,将它显式地插入到Book模型中 class Book(models.Model): title...同样重要的是,您要传递可以传递给模型方法的参数——这就是*args, **kwargs所做的事情。Django将不时扩展内置模型方法的功能,并添加新的参数。

    3.2K20

    从入门到精通Django REST Framework-(五)

    GenericAPIView 是 Django REST Framework (DRF) 中的一个基础视图类,它继承自 APIView,并添加了一些常用的功能,特别是与数据库模型交互的功能。...对象查找(lookup_field 和 lookup_url_kwarg)这两个属性控制如何从 URL 中获取单个对象。lookup_field:模型中用于查找对象的字段名,默认为 'pk'。...= {self.lookup_field: self.kwargs[lookup_url_kwarg]} # 从查询集获取对象 obj = get_object_or_404(queryset...(**filter_kwargs) return queryset def get(self, request): # 获取过滤后的查询集 queryset...中,首先调用父类方法应用配置的过滤器然后遍历所有查询参数,检查是否与模型字段匹配对于匹配的参数,构建过滤条件并应用到查询集最后序列化过滤后的查询集并返回响应使用示例假设 Book 模型有 title、

    50610

    Django模型查询与性能调优:告别N+1问题

    一、查询基础QuerySet 详解Django 中通过模型类的 Manager 构建 QuerySet 来检索数据库对象,其核心特性包括:代表数据库中对象的集合可通过过滤器缩小查询范围具有惰性执行特性(...仅在需要结果时才执行 SQL)常用过滤器all():返回所有对象filter(**kwargs):返回满足条件的对象exclude(** kwargs):返回不满足条件的对象get(**kwargs):...适用于一对多(正向)和一对一关系,通过 SQL JOIN 预加载关联对象语法:select_related('related_field'),related_field 是模型中定义的 ForeignKey...="John"))查看生成的 SQL调试时可查看 QuerySet 生成的 SQLqueryset = Book.objects.filter(author="John")print(queryset.query...《Django从入门到实战》专栏!

    11410

    Django之QuerySet详解

    从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet。...如果不传递任何值给values_list(),它将返回模型中的所有字段,以在模型中定义的顺序。 常见的情况是获取某个模型实例的特定字段值。...当最初获取数据时不知道是否需要这些特定字段的情况下,如果正在使用查询集的结果,可以告诉Django不要从数据库中检索它们。...() 聚合操作 exists() 判断queryset中是否有对象 update() 批量更新对象 delete() 批量删除对象 as_manager() 获取管理器 1...update_or_create方法尝试通过给出的kwargs 去从数据库中获取匹配的对象。 如果找到匹配的对象,它将会依据defaults 字典给出的值更新字段。

    3.1K20

    Django Response对象3.4

    HttpResponse对象 在django.http模块中定义了HttpResponse对象的API HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建 不调用模板...(reverse('booktest:index2')) 得到对象或返回404 get_object_or_404(klass, args, *kwargs) 通过模型管理器或查询集调用get()方法,...如果没找到对象,不引发模型的DoesNotExist异常,而是引发Http404异常 klass:获取对象的模型类、Manager对象或QuerySet对象 **kwargs:查询的参数,格式应该可以被...DEBUG改为False 将请求地址输入2和100查看效果 得到列表或返回404 get_list_or_404(klass, args, *kwargs) klass:获取列表的一个Model、Manager...或QuerySet实例 **kwargs:查寻的参数,格式应该可以被get()和filter()接受 from django.shortcuts import * def index(request)

    1K20

    基于类的通用视图:ListView 和 DetailView

    将 index 视图函数改写为类视图 针对这种从数据库中获取某个模型列表数据(比如这里的 Post 列表)的视图,Django 专门提供了一个 ListView 类视图。...比如这里 IndexView 的功能是从数据库中获取文章(Post)列表,ListView 就是从数据库中获取某个模型列表数据的,所以 IndexView 继承 ListView。...因此 category 视图函数中多了一步,即首先需要根据从 URL 中捕获的分类 id 并从数据库获取分类,然后使用 filter 函数过滤出该分类下的全部文章。...所以我们使了 self.kwargs.get('pk') 来获取从 URL 捕获的分类 id 值。...DetailView 除了从数据库中获取模型列表的数据外,从数据库获取模型的一条记录数据也是常见的需求。比如查看某篇文章的详情,就是从数据库中获取这篇文章的记录然后渲染模板。

    3.1K70

    drf框架中所有视图及用法

    0909自我总结 drf框架中所有视图及用法 一.drf框架中的所有视图类 from django.views import View from rest_framework import views,...generics, mixins, viewsets 最基础:django自带的views类 drf框架中最基础的视图类:views.APIView drf框架中工具视图:generics GenericAPIView...({'get': 'retrieve', 'delete': 'remove_obj'}) GenericViewSet:与模型类有关的接口视图集 - 可以从mixins那继承功能,也可以自定义功能 ViewSet...:与模型类无关或不是标准模型类接口 - 一般都是自定义功能 三.generics中GenericAPIView使用 将 queryset 和 serializer_class 封装成类属性,提供了三个方法...self.get_queryset() :获取所有 self.get_object() :获取根据pk获取单个 self.get_serializer(*args, **kwargs):获取指定 常用的几个参数

    2K30

    Django ORM那些相关操作

    查询所有结果 filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个... distinct(): 从返回结果中剔除重复纪录(如果你查询跨越多个表,可能在计算QuerySet时得到重复的结果。...) 返回数字的方法有 count() 单表查询神奇的双下划线 models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值...("book__title") ManyToManyField class RelatedManager “关联管理器”是在一对多或者多对多的关联上下文中使用的管理器。...如果我们要对两个字段的值做比较,那该怎么做呢?   Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。

    2.6K60

    05.Django基础五之django模型层(一)单表操作

    一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量...创建名为book的app,在book下的models.py中创建模型: from django.db import models # Create your models here....()获取所有的书籍,查询这里大家就掌握谁调用的下面的方法 查询API(都是重点) all(): 查询所有结果,结果是queryset类型 filter...(**kwargs): 它包含了与所给筛选条件相匹配的对象,结果也是queryset类型 Book.objects.filter(title='linux',price=100) #里面的多个条件用逗号分开...values和values_list得到的queryset类型的数据来调用,从返回结果中剔除重复纪录 queryset方法大全: ####################################

    3.3K10
    领券