2016-05-04 4 views
0

Я только что обновил свой Django до версии 1.9.6. Я делал basic tutorial, но у меня есть ошибка синтаксиса в urls.py.Ошибка в учебнике Django: urls.py

Примечание: Я изменил имя «mysite» на «опросы» и «опросы» на «опрос».

Это мой код в опрашиваешь/опрос/urls.py:

from django.conf.urls import url 

from . import views 

urlpatterns = [ 
    url(r'^, views.index, name='index'), 
] 

И это сообщение об ошибке:

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x03AE16F0> 
Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper 
    fn(*args, **kwargs) 
    File "C:\Python34\lib\site-packages\django\core\management\commands\runserver.py", line 116, in inner_run 
    self.check(display_num_errors=True) 
    File "C:\Python34\lib\site-packages\django\core\management\base.py", line 426, in check 
    include_deployment_checks=include_deployment_checks, 
    File "C:\Python34\lib\site-packages\django\core\checks\registry.py", line 75, in run_checks 
    new_errors = check(app_configs=app_configs) 
    File "C:\Python34\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config 
    return check_resolver(resolver) 
    File "C:\Python34\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver 
    for pattern in resolver.url_patterns: 
    File "C:\Python34\lib\site-packages\django\utils\functional.py", line 33, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
    File "C:\Python34\lib\site-packages\django\core\urlresolvers.py", line 417, in url_patterns 
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
    File "C:\Python34\lib\site-packages\django\utils\functional.py", line 33, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
    File "C:\Python34\lib\site-packages\django\core\urlresolvers.py", line 410, in urlconf_module 
    return import_module(self.urlconf_name) 
    File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1471, in exec_module 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "C:\Users\David\Dropbox\Emprendimiento\Gamification\polls\polls\urls.py", line 20, in <module> 
    url(r'^poll/', include('poll.urls')), 
    File "C:\Python34\lib\site-packages\django\conf\urls\__init__.py", line 52, in include 
    urlconf_module = import_module(urlconf_module) 
    File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1467, in exec_module 
    File "<frozen importlib._bootstrap>", line 1572, in get_code 
    File "<frozen importlib._bootstrap>", line 1532, in source_to_code 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "C:\Users\David\Dropbox\Emprendimiento\Gamification\polls\poll\urls.py", line 6 
    url(r'^, views.index, name='index'), 
SyntaxError: invalid syntax 

Спасибо за помощь

ответ

1

Вы пропустили ' для завершения строки (перед запятой в r'^,. В идеале вы должны добавить $:

url(r'^$', views.index, name='index'), 

Обратите внимание, что ваш текстовый редактор или IDE может сделать подсветку синтаксиса, чтобы помочь вам определить этот вопрос - обратите внимание, что в вашем вопросе, о переполнении стека имеет все ^, views.index, name= в том же цвете, чтобы показать, что это одна строка.

+0

Большое спасибо @Alasdair. Но теперь я получаю это сообщение: "" "" Страница не найдена (404) Запрос Метод: \t GET Request URL: \t http://127.0.0.1:8000/ Использование URLconf определено в опросах. urls, Django пробовал эти шаблоны URL-адресов в следующем порядке: ^ poll/ ^ admin/ Текущий URL-адрес не соответствует ни одному из них. Вы видите эту ошибку, потому что у вас DEBUG = True в файле настроек Django. Измените это на False, и Django отобразит стандартную страницу 404. "" " Ваш ответ имеет смысл, но я только копировал и вставлял. –

+0

Ожидается, что вы не определили URL-адрес для'/', вы определили его для'/poll/'(из-за include). В учебном пособии вам предлагается перейти на http: // localhost: 8000/polls/', а не' http: // localhost: 8000'. В вашем случае перейдите на страницу http: // localhost: 8000/poll/', или измените include на'^polls/''. – Alasdair

+0

Конечно !, большое спасибо @Alasdair. Вы спасли мне часы. –