开发环境: python 3.6 django 1.11 场景一 经常有从数据库中获取一批数据,然后在前端以列表的形式展现,比如:获取到所有的用户,然后在用户列表页面展示。...针对这种常用场景,提供了一个更快速便捷的方式,那就是ListView,用法如下: from django.views.generic import ListView class UsersView(ListView...代码如下: from django.views.generic import ListView class UsersView(ListView): model = UserProfile...,代码如下: from django.views.generic import ListView class UsersView(ListView): model = UserProfile...场景四 我想要限制接口的请求方式,比如限制只能GET访问,代码如下: from django.views.generic import ListView class UsersView(ListView
将 index 视图函数改写为类视图 针对这种从数据库中获取某个模型列表数据(比如这里的 Post 列表)的视图,Django 专门提供了一个 ListView 类视图。...blog/views.py from django.views.generic import ListView class IndexView(ListView): model = Post...然后我们调用父类的 get_queryset 方法获得全部文章列表,紧接着就对返回的结果调用了 filter 方法来筛选该分类下的全部文章并返回。...下面我们就来将 detail 视图函数转换为等价的类视图 PostDetailView,代码如下: blog/views.py from django.views.generic import ListView...在不涉及源码的情况下我也只能讲这么多了。
开发环境: python 3.6 django 1.11 场景一 经常有从数据库中获取一批数据,然后在前端以列表的形式展现,比如:获取到所有的用户,然后在用户列表页面展示。...针对这种常用场景,提供了一个更快速便捷的方式,那就是ListView,用法如下: from django.views.generic import ListView class UsersView(ListView...代码如下: from django.views.generic import ListView class UsersView(ListView): model = UserProfile...,代码如下: from django.views.generic import ListView class UsersView(ListView): model = UserProfile...到此这篇关于Django的ListView超详细用法(含分页paginate)的文章就介绍到这了,更多相关Django的ListView用法内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持
准备工作 新建一个Django项目 # 新建一个django项目 $ django-admin startproject mysite # 新建一个app $ django-admin startapp...django.contrib.messages', 'django.contrib.staticfiles', 'blog', 'markdown2' ] $ python3...manage.py makemigrations $ python manage.py migrate admins.py 参考Mozila的教程以及结合官方文档。...from blog.models import Article, Tag, Category from django.views.generic import ListView, DetailView...blank 是针对表单的,如果 blank=True,表示你的表单填写该字段的时候可以不填,比如 admin 界面下增加 model 一条记录的时候。直观的看到就是该字段不是粗体。
Django源码学习-8-ListView&DetailView通用视图 ?...请求网站页面是get请求,提交表单为post请求,可通过继承View类来自动识别请求,如果为get,自动调用get方法,为post就自动调用POST方法。 ?...from django.views.generic import ListView ListView 通过重写queryset, template_name和context_object_name来完成...() 默认返回属性 queryset from django.views.generic import ListView class PublisherBookList(ListView):...template_name = 'books/books_by_publisher.html' def get_queryset(self): self.publisher =
1.ListView ? 表示对象列表的一个页面. 执行这个视图的时候,self.object_list将包含视图正在操作的对象列表(通常是一个查询集,但不是必须)....方法: get_queryset():返回用来获取本视图显示对象的queryset.如果设置了queryset属性,get_queryset()默认返回它的值. get_object(queryset=...'django.contrib.messages', 'django.contrib.staticfiles', 'crud', ] 4、数据迁移 python manage.py...makemigrations crud python manage.py migrate crud 5、修改urls,views crud中的urls from django.conf.urls import...,ListView from django.utils import timezone from django.views.generic.detail import DetailView from
():获取此视图的对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作的关键点,在于当类视图被调用时,各种有用的对象被存储在self上...方法: get_queryset():返回用来获取本视图显示对象的queryset.如果设置了queryset属性,get_queryset()默认返回它的值. get_object(queryset=...django.contrib.messages', 'django.contrib.staticfiles', 'crud', ] 4、数据迁移 python manage.py makemigrations...crud python manage.py migrate crud 5、修改urls,views crud中的urls from django.conf.urls import url from crud...from django.views.generic import TemplateView,ListView from django.utils import timezone from django.views.generic.detail
作者:Kuky_xs 博客:https://www.jianshu.com/p/8cdf099e974f 1 正文 《django入门:环境及项目搭建》 《django入门:数据模型》 《django入门...:视图及模版》 《django入门:Admin管理系统及表单》 终于到最后一部分了,这部分我们将通过 django 自带的通用视图类替换之前写的视图函数,对视图进行重构 2 利用 django 通用视图类创建类视图...1.创建视图类 import markdown from django.shortcuts import render from django.views.generic import ListView...类进行修改 # 基本属性同 HomeView 相同,也可以直接继承 HomeView 然后复写 get_queryset() 方法实现 class CategoryView(ListView):...ListView 中的 paginate_by 属性来设置分页 class PostListView(ListView): model = Post template_name = 'blog
网站:http://python.usyiyi.cn/django/index.html 基于类的内建通用视图 编写Web应用可能是单调的,因为你需要不断的重复某一种模式。...在一个通用视图上的context_object_name属性指定了要使用的定了上下文变量: # views.py from django.views.generic import ListView from...如果我们不这么做,通过视图会使用和 “vanilla” 对象列表名称一样的模板,这可 能不是我们想要的。 另外需要注意,这并不是处理特定出版商的图书的非常优雅的方法。...相当方便的是, ListView 有一个get_queryset() 方法来供我们重写。在之前,它只是返回一个queryset属性值,但是现在我们可以添加更多的逻辑。...class PublisherBookList(ListView): template_name = 'books/books_by_publisher.html' def get_queryset
order_by(F('add_time').desc())[:100] 2.分页,每页 10 篇文章 paginator = Paginator(object_list, 10) 一般要呈现列表,可使用 django...内置的 ListView 视图类 ?...django.views.generic.list.ListView ListView 有以下方法: dispatch() http_method_not_allowed() get_template_names...() get_queryset() get_context_object_name() get_context_data() get() render_to_response() 修改 url 修改...blog/urls.py 文件: 在urls.py中使用类视图的时候都是调用它的 .as_view() 函数 ?
使用 Django 的模型,都是 django.db.models.Model 类的子类。 每个类将被转成数据库表。 每个字段由 django.db.models.Field 子类转成数据库的列。...import login_required from django.views.generic import UpdateView, ListView from django.utils import...forms import NewTopicForm, PostForm from .models import Board, Topic, Post ① 主题回复 class PostListView(ListView...True kwargs['topic'] = self.topic return super().get_context_data(**kwargs) def get_queryset...(self): queryset = super().get_queryset() return queryset.filter(created_by=self.request.user
常规情况下,对应页面中要展示数据列表的视图,通过继承Django的django.views.generic.ListView对象来实现,页面中要展示数据信息的视图,通过继承Django的django.views.generic.DetailView...视图对象的使用 经过上述的改造,我们可以看到视图处理函数已经变得非常的简洁,但是存在这样一个问题,IndexView处理类中的数据,我们可以看懂是通过get_queryset()函数进行查询的,然后自动复制给变量...源码分析 此时,会有个问题困扰着我们,为什么要继承视图处理类,为什么要继承不同的处理类ListView和DetailView?...这个问题就对了,我们看看Django源代码 首先查看ListView class ListView(MultipleObjectTemplateResponseMixin, BaseListView):...def get_queryset(self): """ Return the list of items for this view.
import ListView from blog.models import BlogPost path(r'bloglist/',ListView.as_view(template_name='...bloglist.html:默认list名为object_list {% for dr in object_list %} {{dr.title}} {% endfor %} 5、重写 //ListView...:tempate_name/context_object_name/get_queryset()/get_context_data()放其他keys/values进去。...from django.views.generic import ListView class IndexView(ListView): template_name = "blog/index.html..." context_object_name = "article_list" model=Article def get_queryset(self): article_list = Article.objects.all
, 'static') ] # 设置收集静态资源的路径(部署时使用) STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static/') 2.收集静态资源 python...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
执行后,django将为我们新建video文件夹。 python3 manage.py startapp video 下面的功能模块开发都在该应用(video)下进行。...显示列表数据非常简单,我们使用django中内置的视图模版类ListView来显示,首先在view.py中编写IndexView类,用它来显示列表数据。...context_object_name = 'video_list' 此处,我们使用了django提供的通用视图类ListView, ListView使用很简单,只需要我们简单的配置几行代码,即可将数据库里面的数据渲染到前端...另外,还使用了thumbnail标签来显示图片,thumbnail是一个很常用的python库,常常被用来做图片显示。...把get_page_list放到helpers.py里面 该函数用来生产页码列表,不但这里可以使用,以后在其他地方也可以调用该函数。
网上几乎所有的教程这样的,但是运行的时候会报错 import os import sys import django os.environ.setdefault("DJANGO_SETTINGS_MODULE...", "simple_cms.settings") django.setup() 正确的做法是还要加入一句 sys.path.append(os.path.dirname(os.path.dirname...(os.path.abspath(__file__)))) 完整的就是这样: import os import sys import django sys.path.append(os.path.dirname...(os.path.dirname(os.path.abspath(__file__)))) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "simple_cms.settings...") django.setup()
分类页面的实现 考虑到分类页面是一个用来展示属于当前类别的所有文章,和首页一样的格式,就是显示的列表项十有八九会比首页少,因此分类页面的视图直接继承首页的视图,然后重写 get_queryset 方法就完事了...import Q from django.views.generic import DetailView, ListView from.models import Article, Category...# Create your views here. class IndexView(ListView): context_object_name = 'articles' paginate_by...import admin from django.urls import path, include from django.contrib.staticfiles.urls import staticfiles_urlpatterns...from django.conf import settings from django.conf.urls.static import static from personal_website.views
Django 使用 CSRF Token 保护所有的 POST 请求,这是避免外部站点或者应用程序向服务器的应用程序提交数据的安全措施。...基于类的通用视图 from django.views.generic import UpdateView, ListView ① 主页 class BoardListView(ListView):...Board context_object_name = 'boards' template_name = 'board/home.html' ② 话题 class TopicListView(ListView...kwargs): kwargs['board'] = self.board return super().get_context_data(**kwargs) def get_queryset...from django.contrib.auth.decorators import login_required @login_required def new_topic(request, pk):
return render(request,'detail.html') 类视图写完后,还应该在urls.py中进行映射,映射的时候就需要调用View的类方法as_view()来进行转换。...在Django中可以使用ListView来帮我们快速实现这种需求。...ArticleListView, self).get_context_data(**kwargs) print(context) return context def get_queryset...get_queryset:如果你提取数据的时候,并不是要把所有数据都返回,那么你可以重写这个方法。将一些不需要展示的数据给过滤掉。...他们在Django中的路径为django.core.paginator.Paginator和django.core.paginator.Page。
领取专属 10元无门槛券
手把手带您无忧上云