類別視圖
Jun 23, 2017 pm 04:30 PM
類別檢視
程式碼越少越好
永遠不要重複程式碼
View應只包含呈現邏輯, 不應包含業務邏輯
保持view邏輯清晰簡單
不要將CBVs用作403, 404, 500的錯誤處理程序
。 mixin簡單明了
- #Django本身提供的View永遠在最右邊
- mixin依序在上述view的左邊
- #mixin永遠繼承自Python的object類型
View 基本View 可以在任何时候使用 见后面详细介绍 RedirectView 重新定向到其他URL 将访问"/log-in/"的用户重新定向到"/login/"TemplateView 显示Django 模板 一般网站中使用模板显示的页 ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页 FormView 提交From 网站联系我们或emai订阅form CreateView 创建对象 创建新文章页 UpdateView 更新对象 修改文章页 DeleteView 删除对象 删除文章页 Generic date views 显示一段时间内的对象 按时间归类的博客
#View
django.shortcuts django.views.generic state =http_method_names = [, , , , , , , dispatch(self, request, *args, **(= super(Index,self).dispatch(request, *args, **( HttpResponse( HttpResponse()
從下列視圖繼承方法與屬性
- ##django
.
views<span class="pln">.<span class="pun">generic<span class="pln">.<span class="pun">base<span class="kwd">.<span class="pun">TemplateResponseMixin<span class="pln"><span class="pun"><span class="typ"></span></span></span></span></span></span></span></span></span>
- ##django
.
views<span class="pln">.<span class="pun">generic<span class="pln">.<span class="pun">base<span class="kwd">.<span class="pun">ContextMixin<span class="pln"><span class="pun"><span class="typ"></span></span></span></span></span></span></span></span></span>
<span class="pln"><span class="pun"><span class="pln"><span class="pun"><span class="kwd"><span class="pun"><span class="pln"><span class="pun"><span class="typ"></span></span></span></span></span></span></span></span></span>
generic
.<span class="pln"><span class="pun"><span class="pln"> <span class="pun"><span class="kwd">範例<span class="pun"><span class="pln"><span class="pun"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> django.views.generic.base = dispatch(self, request, *args, **(= super(HomePageView,self).dispatch(request, *args, **( get_context_data(self, **= super(HomePageView, self).get_context_data(**] = [,,( context</pre><div class="contentsignin">登入後複製</div></div> <span class="typ"></span> </span></span></span> </span>## </span></span></span></span>
.views<span class="typ">.<span class="pun">generic<span class="pln">.<span class="pun">base<span class="pln">.<span class="pun">View</span></span></span></span></span></span>
django.views.generic.base == False query_string = True pattern_name = dispatch(self, request, *args, **(= super(ArticleRedirectView,self).dispatch(request, *args, **( get_redirect_url(self, *args, **( super(ArticleRedirectView, self).get_redirect_url(*args, **kwargs)
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">detail<span class="pun">.<span class="typ">SingleObjectTemplateResponseMixin</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">TemplateResponseMixin</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">detail<span class="pun">.<span class="typ">BaseDetailView</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">detail<span class="pun">.<span class="typ">SingleObjectMixin</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">View</span></span></span></span></span></span></span></span></span>
django.contrib.auth.mixins chouti.models == pk_url_kwarg = get_context_data(self, **(context = super(UserDetailView, self).get_context_data(**] = [33, 44]
ListView
<span class="pln">model<span class="pun">:获取这个<span class="pln">model<span class="pun">相关的所有数据</span></span></span></span>
<span class="pln">queryset<span class="pun">:从这个<span class="pln">queryset<span class="pun">中获取指定的数据。</span></span></span></span>
<span class="pln">queryset<span class="pun">的优先级高于<span class="pln">model</span></span></span>
<span class="pun">它所获取的数据是通过<span class="pln">context<span class="pun">中<span class="pln">object_list<span class="pun">这个变量来传递的</span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">list<span class="pun">.<span class="typ">MultipleObjectTemplateResponseMixin</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">base<span class="pun">.<span class="typ">TemplateResponseMixin</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">list<span class="pun">.<span class="typ">BaseListView</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">generic<span class="pun">.<span class="pln">list<span class="pun">.<span class="typ">MultipleObjectMixin</span></span></span></span></span></span></span></span></span>
<span class="pln">django<span class="pun">.<span class="pln">views<span class="pun">.<span class="pln">gen</span></span></span></span></span>
blog.models django.views.generic model = Post queryset = Post.objects.filter(title__contains = ) context_object_name = template_name= ( Post.objects.filter(title__contains = self.kwargs[ get_context_data(self, **(= super(PublisherList, self).get_context_data(**kwargs) context[] = [, ] context
以上是類別視圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)