如何检查request.GET或request.POST是否来自URL的特定部分?

时间:2015-04-27 14:35:37

标签: python django post get

技术:Django 1.7.7,Python 3

currentUrl = request.get_full_path()
if request.method == 'POST' and request.POST('/path/to/thing', currentUrl):
    # Do something

我试图检查请求方法是否是POST,以及请求是来自特定URL,还是不包括用户输入作为URL的一部分(如果这是有意义的话)。

因此,举例来说,让我们说用户填写表格,然后他/她提交单词"你好。"我想查看表单是否来自" some / base / url"没有检查是否"你好"也在网址中。

实现这一目标的最佳方法是什么?

发现这个工作:

  if request.method == 'GET' and '/path/to/thing' in request.path_info

1 个答案:

答案 0 :(得分:1)

  

HttpRequest.POST

     

包含所有给定HTTP POST参数的类字典对象,   假设请求包含表单数据

HttpRequest.POST不是一种使用方法。

如果你有多个选项可以处理你的表单,例如你想要一个提交按钮,一个提交按钮添加另一个,那么你需要为每个按钮命名,然后在POST参数与否。

如果您害怕从未知地点提交表单。然后csrf_token为你做。

  

CSRF中间件和模板标签提供易于使用的保护   反对跨站点请求伪造。发生此类攻击时   恶意网站包含链接,表单按钮或一些JavaScript   用于在您的网站上执行某些操作,使用   访问恶意网站的登录用户的凭据   浏览器。相关类型的攻击,“登录CSRF”,即攻击   网站欺骗用户的浏览器登录某人的网站   其他人的证书,也包括在内。

阅读:

https://docs.djangoproject.com/en/1.8/ref/request-response/ https://docs.djangoproject.com/en/1.8/ref/csrf/