python - Django url 模式 - 带正斜杠的参数

标签 python regex django

如何为两个参数创建 url 模式,其中第一个参数包含正斜杠作为其内容的一部分:

da/ta1=/data2

最初我有以下模式:

(r'^view/(?P<item_id>\w+=)/(?P<changekey>\w+)/$', 'view'),

但是,由于第一个正斜杠是参数数据的一部分,因此该模式不匹配。

最佳答案

假设您自己构建网址,您可以使用 quote_plus对内联正斜杠进行编码:

>>> '/'.join([urllib.quote_plus(d) for d in ['da/ta1', 'data2']])
'da%2Fta1/data2'

并解码:

>>> urllib.unquote_plus('da%2Fta1/data2')
'da/ta1/data2'

为了匹配您的数据,您的模式可以更改为下面找到的构造。对于第一个参数,这会匹配 = 字符之前的所有内容;第二个参数应该是字母数字。

(r'^view/(?P<item_id>[^=]+)=/(?P<changekey>\w+)/$', 'view')

关于python - Django url 模式 - 带正斜杠的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7875886/

相关文章:

python - 将行拆分为多列,仅从行中选择某些值并删除其余值

python:从PNG转换为JPG而不使用PIL将文件保存到磁盘

javascript - 用于匹配输入的正则表达式,例如 HTML 输入中模式的 "abc > 10, cba < 100, ..."

python - celery 不采摘 CELERY_ALWAYS_EAGER 设置

python - 在 python 中解析 pcap 文件

python - 跟踪快速更新的文件时程序崩溃

python - 从 Pandas 数据框中过滤所需行的正则表达式

用于查找 CSV 数字的 MySQL 正则表达式

python - 在 Google 应用引擎的 django-nonrel 中使用 manage.py 时出现异常 AttributeError 消息

python - 如何定义在django中接受各种字符串的url