Django 视图和模板
在 Django 中,网页及其他内容是由视图来展现的。而每个视图就是一个简单的 Python 函数(或方法, 对于基于类的视图情况下)。Django 会通过检查所请求的 URL (确切地说是域名之后的那部分 URL)来匹配一个视图。
视图-->处理的方法:视图的寻找是通过,匹配ur来寻找的 如果匹配到某个视图就会停止
多人blog 需要的视图:
首页
文章详细的页面
基于某标签的归档页 -显示给定标签的所有页面 类搜索
评论功能
用户个人页
发表的编辑页面
url 视图的四个参数 regex,view,kwargs,name;
1.regex regular expression 规则表达
2.view 视图处理方法
3.kwargs 传送一个字典到目标视图
4.name 为后期的明确引用某个url {% ‘name’ 参数%}
url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
类似
detail(request=<HttpRequest object>, poll_id='34')
配置templates
快捷方式: render()
from django.shortcuts import render
from polls.models import Poll
def index(request):
latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
context = {'latest_poll_list': latest_poll_list}
return render(request, 'polls/index.html', context)
快捷方式: get_object_or_404()
from django.shortcuts import render, get_object_or_404
# ...
def detail(request, poll_id):
poll = get_object_or_404(Poll, pk=poll_id)
return render(request, 'polls/detail.html', {'poll': poll})
get_list_or_404() 获取list不是单个对象
name的使用
<li><a href="{% url 'detail' poll.id %}">{{ poll.question }}</a></li>
URL命名空间:
若在urls中使用了include
则在模板的引用变成了
url(r'^polls/', include('polls.urls', namespace="polls")),
{% url 'polls:detail' poll.id%}