版权声明:随心所欲、无欲无求! https://blog.csdn.net/qq_32662595/article/details/85272721
- 文件位置
- 文件的内容及作用
from django.conf.urls import url
from polls import views
urlpatterns = [ # path('admin/', admin.site.urls),
url(r'^$', views.index, name='index'), # ex: /polls/
url(r'^polls/(?P<question_id>\d+)/$', views.detail, name='detail'), # ex: /polls/5/
url(r'^polls/(?P<question_id>\d+)/results/$', views.results, name='results'), # ex: /polls/5/results/
url(r'^polls/(?P<question_id>\d+)/vote/$', views.vote, name='vote'), # ex: /polls/5/vote/
]
该文件的作用在页面进行访问的时候,进行路径映射。(请求路径映射管理)
##### 官网文档的写法
当前项目中访问将提升404,接口找不到。
from django.conf.urls import url
from . import views
urlpatterns = [
# ex: /polls/
url(r'^$', views.index, name='index'),
# ex: /polls/5/
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
# ex: /polls/5/results/
url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
# ex: /polls/5/vote/
url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
]
如下:
点击‘What’s up ’进入到详情页面
注意:所有的html文件需要放在templates下的polls文件夹中。
Django会自动去寻找templates文件夹下的文件
-
抛出404
from django.http import HttpResponse, Http404
或者
from django.shortcuts import get_object_or_404, render question = get_object_or_404(Question, pk=question_id)
get_object_or_404()函数将Django模型作为其第一个参数和任意数量的关键字参数,它通过get()函数模型的管理。它引出了Http404如果对象不存在。
get_list_or_404()函数,就像get_object_or_404()——除了使用filter()而不是get()。它提出了Http404如果列表是空的
-
模板(template)
<h1>{{ question.question_text }}</h1> <ul> {% for choice in question.choice_set.all %} <li>{{ choice.choice_text }}</li> {% endfor %} </ul>
模板系统使用dot-lookup语法来访问变量的属性。{{ question.question }},首先一个字典查找对象上的question 。不存在,尝试一个属性查找——的作品,在这种情况下。如果属性查找失败,它将一直list-index查找
-
移除硬编码
使用{% url %}
代替原始的硬编码路径<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li> <li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>