![](/img/trans.png)
[英]How can I append null in list when particular parameter is absent for some lines while iterating through log file using urlparser
[英]How to parse a list in Django urlparser?
在Stack Overflow上,您可以在诸如http://stackoverflow.com/questions/tagged/django+python
的URL上查看带有多个标签的问题列表。
我想在我正在从事的项目中做类似的事情,其中url参数之一将是标签列表,但是我不确定如何编写可以解析出它的正则表达式urlparser。 我很喜欢SO使用+
号的方式,但这不是一个大问题。 我还可以想象urlparser可能必须将整个字符串(foo + bar + baz)作为单个变量提供给视图,这也很好,因为我可以将其拆分为视图本身,也就是说,我不希望URL解析器为视图提供一个已经拆分的列表,但是如果可以的话,那就更好了!
现在我所拥有的是:
url(r'^documents/tag/(?P<tag>\w+)/$', ListDocuments.as_view(), name="list_documents"),
因为\\w+
只是给我那些[A-Za-z0-9_]
而不是+
,所以[A-Za-z0-9_]
提取一个标签。 我尝试了类似的东西:
url(r'^documents/tag/(?P<tag>[\w+\+*])/$', ListDocuments.as_view(), name="list_documents"),
但这不再匹配documents/tag/foo
或documents/tag/foo+bar
。
请协助,我对regex不太满意,谢谢!
无法自动执行此操作。 在文档中 :“每个捕获的参数都将作为纯Python字符串发送到视图,而不考虑正则表达式进行哪种匹配。” 在视图中拆分它是要走的路。
答案中的第二个正则表达式是可以的,但是它确实允许您不需要的某些东西(例如'django+++python+'
)。 较严格的版本可能类似于:( (?P<tag>\\w+(?:\\+\\w+)*)
。 然后,您可以在视图中执行一个简单的tag.split('+')
,而无需担心任何边缘情况。
目前适用:
url(r'^documents/tag/(?P<tag>[A-Za-z0-9_\+]+)/$', ListDocuments.as_view(), name="list_documents"),
但是我希望能够将w
返回到那里,而不是像这样的完整字符列表。
[编辑]
开始了:
url(r'^documents/tag/(?P<tag>[\w\+]+)/$', ListDocuments.as_view(), name="list_documents"),
如果Django urlparser有一种方法可以给视图一个实际的列表,而不只是一个大的长字符串,我仍然会选择一个更好的答案,但是,如果不可能,则此解决方案确实可行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.