博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3、render使用添加命名空间抛出404错误
阅读量:6291 次
发布时间:2019-06-22

本文共 2360 字,大约阅读时间需要 7 分钟。

第三部分官网参考链接

1、编写更多视图:
添加函数
polls/views.py

def detail(request, question_id):    return HttpResponse("You're looking at question %s." % question_id)def results(request, question_id):    response = "You're looking at the results of question %s."    return HttpResponse(response % question_id)def vote(request, question_id):    return HttpResponse("You're voting on question %s." % question_id)

url函数调用

polls/urls.py

from django.urls import pathfrom . import viewsurlpatterns = [    # ex: /polls/    path('', views.index, name='index'),        # ex: /polls/5    path('
/', views.detail, name='detail'), # ex: /polls/5/results/ path('
/results/', views.results, name='results'), # ex: /polls/5/vote/ path('
/vote/', views.vote, name='vote'),]

访问:

2、一个快捷函数: render()的使用

(1) 编写index视图

polls/views.pyfrom django.shortcuts import renderfrom .models import Questiondef index(request):    latest_question_list = Question.objects.order_by('-pub_date')[:5]    context = {'latest_question_list': latest_question_list}    return render(request, 'polls/index.html', context)

(2)添加模板

polls应用下创建templates/polls子文件夹,再在polls/templates/polls下创建index.html
polls/templates/polls/index.html

{% if latest_question_list %}    
{% else %}

No polls are available.

{% endif %}

页面添加六条数据

测试访问:

3、一个快捷函数: get_object_or_404()抛出404错误

(1)编写视图

from django.shortcuts import get_object_or_404, renderfrom .models import Questiondef detail(request, question_id):    question = get_object_or_404(Question, pk=question_id)    return render(request, 'polls/detail.html', {'question': question})

添加模板系统

polls/templates/polls/detail.html
{
{ question }}

4、为 URL 名称添加命名空间

在每个应用的的urls下添加对应的应用名字的命名空间
polls/urls.py

from django.urls import pathfrom . import viewsapp_name = 'polls'   #添加命名空间urlpatterns = [    path('', views.index, name='index'),    path('
/', views.detail, name='detail'), path('
/results/', views.results, name='results'), path('
/vote/', views.vote, name='vote'),]

修改为指向具有命名空间的详细视图:

polls/templates/polls/index.html
<li><a href="{% url 'polls:detail' question.id %}">{
{ question.question_text }}</a></li>

转载于:https://blog.51cto.com/yht1990/2383312

你可能感兴趣的文章
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>