【问题标题】:Django url wrongDjango 网址错误
【发布时间】:2012-07-29 18:46:38
【问题描述】:

我是 django 新手,正在阅读教程,它有一个示例,但我认为是旧 Django 版本,现在我使用的是 Django 1.4

views.py


 from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

def hours_ahead(request, offset):
    offset = int(offset)
    dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
    html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
    return HttpResponse(html)

还有 urls.py 文件

from django.conf.urls.defaults import *
from mysite.views import current_datetime, hours_ahead

urlpatterns = patterns('',
    (r'^time/$', current_datetime),
    (r'^time/plus/\d{1,2}/$', hours_ahead),


)

【问题讨论】:

  • 那么问题是什么?

标签: python django url frameworks get


【解决方案1】:

您的 URL 模式缺少括号,表明您希望从 URL 中捕获偏移量。尝试将其更改为以下内容:

(r'^time/plus/(\d{1,2})/$', hours_ahead),

通常,人们更喜欢在其 URL 模式中使用 named groups。在您的情况下,URL 模式将更改为:

(r'^time/plus/(?P<offset>\d{1,2})/$', hours_ahead),

【讨论】:

    【解决方案2】:

    因此,与其导入该应用程序的视图模块和给定的处理程序,您应该提供一个我相信的字符串,所以这应该适用于您的 urls.py

    from django.conf.urls.defaults import *
    from mysite.views import current_datetime, hours_ahead
    
    urlpatterns = patterns('',
         (r'^time/$', 'mysite.views.current_datetime'),
         (r'^time/plus/\d{1,2}/$', 'mysite.views.hours_ahead'),
    
    )
    

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多