Django 02 urls.py

版权声明:随心所欲、无欲无求! https://blog.csdn.net/qq_32662595/article/details/85272721
  1. 文件位置
    urls.py的位置
  2. 文件的内容及作用
	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文件夹下的文件

  1. 抛出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如果列表是空的

  2. 模板(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查找

  3. 移除硬编码
    使用{% url %}代替原始的硬编码路径

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

上述的url找不到的问题原因:setting文件中的ROOT_URLCONF配置未进行修改

在这里插入图片描述

GIT 源代码地址 :https://gitee.com/UniQue006/django_mysite.git

猜你喜欢

转载自blog.csdn.net/qq_32662595/article/details/85272721
今日推荐