【问题标题】:Django saying that my syntax is wrongDjango 说我的语法错误
【发布时间】:2012-12-05 12:37:22
【问题描述】:

基本上使用 django,它一直告诉我这段代码中存在语法错误:

from django.conf.urls import patterns, url

from venues import views

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

    # ex /venues/3
    url(r'^(?P<venue_id>\d+)/$', views.detail, name='detail'),
    # ex: /venues/3/events
    url(r'^(?P<venue_id>\d+)/events/$', views.events, name='events')
)

具体来说,它似乎在告诉我:

from venues import views

行不正确。

但是我的场所/views.py 看起来像:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello this is the home page!")

def detail(request, venue_id):
    return HttpResponse("You're looking at Venue %s.", % venue_id)

def events(request, venue_id):
    return HttpResponse("You're looking at events at venue %s.", % venue_id)

所以该文件存在并且似乎运行良好,直到我开始在 urls.py 中使用场地 ID

哦,我的主要 urls.py 看起来像这样:

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'Comedy.views.home', name='home'),
    # url(r'^Comedy/', include('Comedy.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
    url(r'^venues/', include('venues.urls')),
)

所以我不完全确定问题出在哪里,感谢所有帮助。

非常感谢, 我。

【问题讨论】:

  • 请包含您遇到的错误的完整回溯。

标签: python django syntax module


【解决方案1】:

您的view.py 文件确实存在语法错误:

return HttpResponse("You're looking at Venue %s.", % venue_id)

return HttpResponse("You're looking at events at venue %s.", % venue_id)

在字符串和% 字符串格式化运算符之间有逗号,这不是合法的python 语法。删除% 运算符前的逗号。

请在将来报告您的 Python 代码问题时始终包含 完整 python 回溯,这样我们就不必猜测您的问题是什么。

【讨论】:

  • 刚刚接受,我对 stackoverflow 还很陌生(很好用),所以我还在学习接受答案等细节
【解决方案2】:

我认为错误在这里:

def detail(request, venue_id):
    return HttpResponse("You're looking at Venue %s.", % venue_id)

def events(request, venue_id):
    return HttpResponse("You're looking at events at venue %s.", % venue_id)

您必须删除 %venue_id 之前的逗号。

【讨论】:

    【解决方案3】:

    代替:

    def events(request, venue_id):
        return HttpResponse("You're looking at events at venue %s.", % venue_id)
    

    尝试:

    def events(request, venue_id):
        return HttpResponse("You're looking at events at venue %s.")  % venue_id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 2010-10-14
      • 1970-01-01
      • 2021-09-07
      • 2014-05-24
      • 1970-01-01
      • 2015-01-07
      相关资源
      最近更新 更多