Pri*_*rim 6 post request flask python-2.7
我有以下代码
class MyClass(restful.Resource):
def get(self):
headers = {'Content-Type': 'text/html'}
return make_response(render_template('myfile.html'),200,headers)
def post(self):
session['CONSUMER_KEY']=request.form.get('consumer_key')
session['CONSUMER_SECRET']=request.form.get('consumer_secret')
render_template('myfile.html')
api.add_resource(MyClass,"/mag/",endpoint="mag")
Run Code Online (Sandbox Code Playgroud)
我写了以下测试:
def mytest(self):
content_type={"Content-Type": "application / x - www - form - urlencoded","Content-Disposition": "form-data"}
response = self.client.post(
api.url_for(MyClass), data = json.dumps({'consumer_key':'testconsumerkey',
'consumer_secret':'testconsumersecret'}),
headers=content_type
)
Run Code Online (Sandbox Code Playgroud)
问题是表单数据是空白的,并且这些值未在会话中设置.当我调试时,我看到request.data已填充,但request.form是一个空字典.有人可以建议我如何在测试的发布请求中发送表单数据
编辑:环境细节Python 2.7,Flask Web框架,self.client是.我正在使用flask.ext.testing
您似乎对帖子正文的预期格式应该是什么感到困惑。它应该是 JSON 数据(这是您在测试用例中发送的数据),还是应该采用格式application/x-www-form-urlencoded(这是您声明在测试用例中发送的数据以及端点将读取的数据)?
如果您希望接收 JSON 数据,则需要更改端点以从中读取数据request.get_json()。您还需要application/json在测试用例中用作 Content-Type 标头。
如果您希望接收 urlencoded 的发布数据,那么只需通过删除 Content-Type 标头和json.dumps. 只需将数据字典传递给data参数即可。
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |