Django 学习笔记(十二)

接上的翻译 two-scoops-django 1.5 第七章:函数视图与类视图

•视图、url和模型之间的送耦合已被紧耦合所取代,这意味着你永远不能重用视图定义。  

•不要重复自己的代码这违反了CBVs之间反复使用相同/相似的论点。  

•无限的灵活性(对于url)已被毁掉。类继承,基础视图类的主要有点,是不可能使用此反面模式。  

•很多其他的问题:当你需要添加身份验证时会发生什么?你会打算使用两三个修饰符来封装URLConf吗?

将你的视图代码放入URLConfs会使得你的URLConfs变的混乱不堪。

事实上,我们从开发人员那听到看到定义在URLConf的CBVs 是开发者避免使用它们的原因之一。  

好的,足够的抱怨。我们将在下一页展示我们的偏爱。

旨在URLConf松耦合

这里是讲解了如何创建URLconfs以避免在前面我们所提到的问题。

首先,我们写的视图如下:

# tastings/views.py
from django.views.generic import DetailView
from .models import Tasting
class TasteDetailView(DetailView):
model = Tasting
class TasteResultsView(TasteDetailView):
template_name = 'tastetests/results.html'

然后我们定义urls:

# tastings/urls.py
from django.conf.urls import patterns, url

from .views import TastingDetailView, TastingResultsView
urlpatterns = patterns('',
url(
regex=r'^(?P<pk>\d+)/$',
view=TastingDetailView.as_view(),
name='detail'
),
url(
regex=r'^(?P<pk>\d+)/results/$',
view=TastingResultsView.as_view(),
name='results'
),
)






你可能感兴趣的:(python,django,django,学习笔记)