【发布时间】:2020-06-01 12:33:21
【问题描述】:
我正在为我的项目使用 Django URL 模式。我正在发送一个包含 特殊字符 和 数字 的字符串。在 python 函数中读取字符串时,它不会在函数中获取 ?。
html
{% for user_name in userSet%}
<a class="dropdown-item" href="/slackNotification/{{user_name}}/{{data.question}}">{{ user_name }}</a>
{% endfor %}
网址
path('slackNotification/<str:slack_user_name>/<str:question>',views.slackNotification)
当我通过 URL 获取所有详细信息时,无论我在 python 代码中收到哪个字符串,它都不会包含 ? 标记,即使我的输入包含特殊字符和数字。
输入:你叫什么名字? 输出:你叫什么名字(问号不可用;)
问题 我试过这个:
re_path(r'^slackNotification/<str:slack_user_name>/(?P<question>\w+)',views.slackNotification)
输出 当前路径与任何 url 都不匹配
我想知道我的需求的确切正则表达式??
【问题讨论】:
-
一个url中的
?表示路径的结束和查询参数列表的开始,如http://example.com/apples?color=green中路径为http://example.com/apples,{'color': 'green'}为查询字典。只有?之前的部分被认为是路径。因此,如果您想在 URL 中包含?,您应该对其进行 URL 编码:%3F。其他特殊字符也是如此,例如空格是%20 -
@dirkgroten 非常感谢您分享您的知识。