0

私は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),


)
4

2 に答える 2

1

URL パターンに、URL からのオフセットをキャプチャする必要があることを示す括弧がありません。次のように変更してみてください。

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

多くの場合、人々は URL パターンで名前付きグループを使用することを好みます。あなたの場合、URL パターンは次のように変わります。

(r'^time/plus/(?P<offset>\d{1,2})/$', hours_ahead),
于 2012-07-29T18:55:00.787 に答える
0

したがって、そのアプリのビューモジュールと特定のハンドラーをインポートするのではなく、私が信じる文字列を提供することになっているので、これは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'),

)
于 2012-07-29T18:52:03.873 に答える