我正在尝试从我用来创建Flask应用程序的类中的方法内部访问request.form字段,但我每次都得到空的请求
from flask import Flask, request
class MyAPIClass(object):
def __init__(self, address="0.0.0.0", port=5000):
self.address = address
self.port = port
self.app = Flask(__name__)
self.logger = self.app.logger
self.app.add_url_rule('/create/<id>', 'create', self.create, methods=['POST'])
def create(self, od):
root = request.form.get('root')
home = request.form.get('home')
size = int(request.form.get('size', 0))
print('CREATE {} -> {} -> {} -> {}'.format(id, root, home, size))
def start(self):
self.app.run(debug=True, host=self.address, port=self.port)
我曾尝试使用Flask.request_started将请求对象保存在我班级的某个字段中,但似乎无效。
这就是我创建和启动课程的方式
from MyLib import MyAPIClass
api = MyAPIClass()
api.start()
然后使用邮递员我发送一个POST到网址
curl --request POST \
--url http://127.0.0.1:5000/create/123 \
--header 'home: r/h' \
--header 'root: r' \
--header 'size: 100'
有什么建议吗?
答案 0 :(得分:1)
HTTP标头与表单数据(实际上是格式为application/x-www-form-urlencoded
的POST数据)不同。
使用您发布的curl命令,添加HTTP标头而不是表单数据。像这样使用它:
curl --request POST \
--url http://127.0.0.1:5000/create/123 \
--form 'home: r/h' \
--form 'root: r' \
--form 'size: 100'