处理网址

时间:2016-02-18 19:41:33

标签: django url

所以我试图用Django编写一个简单的API,它使用twitter API为用户发送推文。我有:

url(r'^(?P<twitter_id>\d+)/send_tweet/(?P<text>(.){,140})$', views.send_tweet, name='send_tweet'),

和一个视图send_tweet,它接受两个参数twitter_id和文本,并将文本作为该用户的推文发送

我遇到的问题是text是一个带有保留字符的字符串,如“1. #Hello”。然后#Hello不包含在文本参数中。

我已经指出这是因为'#'和'?'和其他是URL中的保留字符。所以我试图将文本作为查询字符串的一部分传递,并在视图中使用text = request.GET.get('text')访问它,但这也存在同样的问题。

有没有办法绕过这个并阅读像#或?这样的字符?从url或查询字符串?如果没有,那么让用户将他们的文本传递给我的API的推文(即强迫用户传递编码字符串,然后在视图中解码)会是一个很好的解决方案?

编辑:因此,如果我强制用户将已经编码的字符串传递给它工作的URL(string_of_characters_like_these%3A%24%23%40%3D%3F%25%5EQ%5E%24)。但这是否需要在API中制作?

1 个答案:

答案 0 :(得分:0)

期望用户这样做是不合理的。为什么不为他们申请urllib.urlencode