所以,我一直在开发一个小瓶子应用程序。我已经能够从Web表单调用activate方法,但我正在尝试使用python请求库发布到它并继续获取403(没有使用身份验证)。
但是当我使用httplib2发布它时,它突然起作用了。这里有什么我想念的吗?
import httplib2
import requests
http = httplib2.Http()
content = http.request('http://127.0.0.1:5000/services/activate', method="POST")
print content
res = requests.post('http://127.0.0.1:5000/services/activate')
print res
给我输出:
({'status': '200', 'content-length': '20', 'server': 'Werkzeug/0.12.2 Python/2.7.12', 'date': 'Thu, 21 Dec 2017 05:55:20 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json'}, '{\n "status": "ok"\n}')
<Response [403]>
答案 0 :(得分:0)
如果您可以发布所有相关代码,那就太棒了。但总的来说 -
如果使用FlaskForm,您的HTML应如下所示:
<form action="{{url_for('activate') }}" method = "post">
{{ form.csrf_token }}
<!-- other form stuff -->
</form>
其他,
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/>