2013-12-10 33 views
2

我正在研究python基礎知識。我有這樣的問題,我無法弄清楚。Django/Python「多次重複」

views.py

# -*- coding: utf-8 -*- 

from django.http import HttpResponse 
import datetime 

def hello(request): 
    return HttpResponse("Hello, World!") 

def time(request): 
    now = datetime.datetime.now() 
    html = "<html><body>Teraz jest %s</body></html>" %now 
    return HttpResponse(html) 

def time_offset(request, offset): 
    delta = int(offset) 
    dt = datetime.datetime.now() + datetime.timedelta(hours=offset) 
    assert False 
    shtml = "<html><body>za %s godzin będzie %s</body></html>" % (delta,dt) 
    return HttpResponse(shtml) 

urls.py

# -*- coding: utf-8 -*- 
from django.conf.urls import patterns, include, url 


urlpatterns = patterns('', 
    url(r'^hello$', 'mysite.views.hello', name='hello'), 
    url(r'^time$', 'mysite.views.time', name='time'), 
    url(r'^time\plus\(/d+{1,2})$', 'mysite.views.time_offset', name='time_offset'), ) 

這是所有關於最後一行我的網址。我在那裏激活我的新視圖「time_offset」,一定是出了什麼問題,但我不知道是什麼?我無法讓這個觀點奏效。

謝謝你的幫助,歡呼!

錯誤代碼:

error at /time/plus/2 
multiple repeat 
Request Method: GET 
Request URL: http://127.0.0.1:8000/time/plus/2 
Django Version: 1.4.5 
Exception Type: error 
Exception Value:  
multiple repeat 
Exception Location: /usr/lib/python2.7/re.py in _compile, line 242 
Python Executable: /usr/bin/python 
Python Version: 2.7.3 
Python Path:  
['/home/maze/Dokumenty/djcode/mysite', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PIL', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7'] 
Server time: Tue, 10 Dec 2013 04:40:17 -0600 

回答

2

的正則表達式被合併兩個重複修飾符(+{1, 2}

>>> re.compile(r'\d+{1,2}') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\re.py", line 190, in compile 
    return _compile(pattern, flags) 
    File "C:\Python27\lib\re.py", line 242, in _compile 
    raise error, v # invalid expression 
sre_constants.error: multiple repeat 

選其一+{1,2}只:

>>> re.compile(r'\d{1,2}') 
<_sre.SRE_Pattern object at 0x00000000025C5458> 
>>> re.compile(r'\d+') 
<_sre.SRE_Pattern object at 0x0000000002A454F0> 

順便說一句,它好像代碼交換\/

... r'^time\plus\(/d+{1,2})$ ... 
#  ^^^ 
+0

就是這樣。感謝您的直接回答! – user3087161