Flask app对象`get`和`post`类方法的文档?

时间:2013-09-25 16:20:21

标签: python get flask

在关于测试的Flask文档(http://flask.pocoo.org/docs/testing/)中,它有一行代码

rv = self.app.get('/')

在它下面,它提到“通过使用self.app.get,我们可以使用给定路径向应用程序发送HTTP GET请求。”

在哪里可以找到这些直接访问方法的文档(我假设所有的其他方法都有一个)?具体来说,我想知道他们可以采取什么样的参数(例如,传递数据,标题等)。查看有关Flask对象的flask文档,它似乎没有列出这些方法,即使它在上面的示例中使用它们。

或者,知识渊博的个人可以回答我想要解决的问题:我正在尝试模拟向我的服务器发送POST请求,就像我通过以下行一样,如果我是通过HTTP执行的话:

    res = requests.post("http://localhost:%d/generate" % port, 
                        data=json.dumps(payload), 
                        headers={"content-type": "application/json"})

以上在适当的端口上运行Flask应用程序时有效。但我尝试用以下内容替换它:

    res = self.app.post("/generate", 
                        data=json.dumps(payload), 
                        headers={"content-type": "application/json"})

相反,我得到的对象是400 BAD REQUEST

1 个答案:

答案 0 :(得分:8)

这在Werkzeug项目中有记录,Flask从中获得测试客户端:Werkzeug's test client

测试客户端不发出HTTP请求,它在内部调度请求,因此无需指定端口。

关于JSON在体内的支持,文档不是很清楚,但是如果你传递一个字符串并设置内容类型就好了,所以我不确定你为什么要找回代码400我会检查你的/generate视图功能是否被调用。调试器应该有助于确定400来自何处。