Я не могу сопоставить представление о странице в своем приложении urls.py

Я не могу сопоставить свой «просмотр страницы» в файле urls.py моего приложения. Я пытался найти решения в Интернете, но я не мог. Переустановил django, снова создал новый проект, но появляется та же ошибка.

Ошибка: SyntaxError.

Я не знаю, где я сделал ошибку. Обратите внимание, что я хочу сопоставить приложение urls.py с другим файлом. Затем присоедините файл приложения urls.py к проекту.

Моя версия Python 2.7

Моя версия django 1.8

Это мой файл views.py.

from django.shortcuts import render
from django.http import HttpResponse


def index(request):
    return HttpResponse("Rango says hello world! <a href='/rango/about'> 
    About </a>")

def about(request):
    return HttpResponse("Rango Says: Here is the about page <a 
    href='/rango/'> Index </a>")

Это мой файл application urls.py.

from django.conf.urls import patterns, url
from rango import views


urlpatterns = patterns('',
        url(r'^$', views.index, name='index')
        urlr('^rango/about', views.about, name='about'))

Это файл моего проекта urls.py.

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
   # Examples:
   # url(r'^$', 'projectX.views.home', name='home'),
   # url(r'^blog/', include('blog.urls')),

  url(r'^admin/', include(admin.site.urls)),
  url(r'^rango/', include("rango.urls"))
]

person alakbear    schedule 20.04.2017    source источник


Ответы (1)


У вас две опечатки. Во-первых, вам не хватает запятых после экземпляров url() (это необходимо для первого, настоятельно рекомендуется для второго). Во-вторых, у вас urlr вместо url для второго шаблона. Так должно быть:

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^rango/about', views.about, name='about'),
)

В качестве дальнейшего улучшения вы должны изменить urlpatterns на список вместо использования patterns() и добавить $ в конец регулярного выражения для страницы about.

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^rango/about/$', views.about, name='about'),
]

У вас также есть проблема в ваших взглядах. Строки с двойными кавычками не должны иметь символы новой строки. Вы должны либо иметь,

def index(request):
    return HttpResponse("Rango says hello world! <a href='/rango/about'>About </a>")

или измените его, чтобы использовать тройные кавычки.

def index(request):
    return HttpResponse("""Rango says hello world! <a href='/rango/about'> 
    About </a>""")
person Alasdair    schedule 20.04.2017
comment
Этой информации недостаточно, чтобы помочь. Полная трассировка покажет вам, где произошло NameError. Обратите внимание, что вам нужно исправить свои строки в представлениях, см. мой обновленный ответ. - person Alasdair; 20.04.2017