我对 urls.py 中的正则表达式有一些问题(我是 django 的初学者以及一般的正则表达式)
这是我原来的 urls.py
url(r'^name/(?P<name>\w+)/$', 'course.views.name'),
url(r'^', 'course.views.index'),
我试图用这个来访问它:
http://127.0.0.1:8000/name/blah/
我的观点如下:
def index(request):
return HttpResponse("Hello, sam. You're at the course index.")
def name(request, name):
return HttpResponse("Hello, %s. You're at the course index." % name)
我得到的结果是,无论我给出什么输入,我都会定期获得“索引”函数,而不是“名称”函数。我认为问题出在第一个正则表达式上。
但是后来,我将第二个更改为:
url(r'^$', 'course.views.index'),
这正是我认为的工作方式!
我知道“$”表示行尾,但不应该首先评估第一个正则表达式吗?这些表达式匹配的顺序是什么?
向每个网址添加“$”并不是什么大不了的事,但我想了解我为什么将它放在那里。
我正在使用 Django1.4 和 Python 2.7