workflow
Import Model to rango/views.py
from rango.models import Category, Page
Define view function in rango/views.py
def category(request, category_name_slug):
context_dict = {}
try:
category = Category.objects.get(slug=category_name_slug)
context_dict['category_name'] = category.name
pages = Page.objects.filter(category=category)
context_dict['pages'] = pages
context_dict['category'] = category
except Category.DoesNotExist:
pass
return render(request, 'rango/category.html', context_dict)
Append url in rango/urls.py
url(r'^category/(?P<category_name_slug>[\w\-]+)/$',
views.category, name='category'
),
Create template file in project_dir/templates/rango/
Summary
django 的MTV模式
view是核心, 在url匹配完成之后,调用view中的view function , view function 通过引入models中的Model来从数据库中读取数据,然后进行逻辑处理,然后render(request, template_file, context_dict),将渲染后的响应返回给客户端。相比于MVC,django的view的作用类似于MVC中的C。