Django-接受查询参数中的完整句子

时间:2019-02-28 16:02:50

标签: regex django django-urls

我正在整理一个小的API,用于将传入的消息转换为Spongebob模拟案例。

我已经完成了所有工作,但是回来后我意识到我一直在用单个值进行测试,因此只注意到以下URL条目将不能接受空格/%20。

url(r'^mock/(?P<message>\w+)/$',mock, name='mock'),

我已经看了很多遍,但是不确定如何适当地表达我正在寻找的东西以找到有用的东西。我想接受一个完整的句子吗?

值得注意的是,这将来自聊天消息,因此,它将按原样发送,而不是按百分比编码。

2 个答案:

答案 0 :(得分:1)

您实际上并不想将类似的内容用作URL参数。相反,它应该在查询字符串中:例如mysite.com/mock/?message=Message+goes+here

URL应该只是:

url('^mock/$', ...)

然后视图仅从request.GET['message']获取数据。

答案 1 :(得分:0)

您可以使用

解决当前问题
r'^mock/(?P<message>[^/]+)/?$

请参见regex demo

此处,[^/]+匹配除/以外的任何一个或多个字符,而/?匹配字符串末尾的可选/$ )。