【发布时间】:2017-02-22 18:08:15
【问题描述】:
Django 的url 模板标签是如何工作的?它在幕后使用了什么魔法来“反转”正则表达式?
你给它一个这样的正则表达式:
urlpatterns = [
# ex: /polls/5/
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
]
...然后在您的模板中,您可以生成一个与该模式匹配的 URL,如下所示:
<a href="{% url 'detail' question.id %}">{{ question.question_text }}</a>
它是如何工作的?通常,正则表达式用于解析文本,而不是生成文本。 re 模块中是否有提供此功能的内置工具?
我的问题不是关于如何使用 Django,或者如何使用正则表达式解析文本。相反,我有兴趣了解如何在其他地方以这种“字符串模板”的方式使用正则表达式。
【问题讨论】:
-
stackoverflow.com/questions/30100870/… 是 not 我的问题的副本,尽管它的标题。这个问题是试图让一些东西在 Django 中正常工作——我不是。
-
您到底在问什么?
urlpatterns是如何工作的,或者 url 模板标签是如何工作的? -
url模板标签的工作原理。我已经很好地理解了通过urlpatterns解析和分派传入请求的工作原理。我不明白url模板标签如何能够采用相同的正则表达式并使用它来生成网址。 -
是的,这正是我正在寻找的东西!很有趣。
-
哎呀,抱歉删除了我的评论,因为我认为我误解了 url 标签和反向标签的确切原因,但我很确定反向标签是繁重的工作,希望它有帮助无论如何!