我正在研究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
答案 0 :(得分: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})$ ...
# ^ ^ ^