Python 如何将用户定义的对象参数传递给flask post方法?

Python 如何将用户定义的对象参数传递给flask post方法?,python,flask,Python,Flask,我想将一个用户定义的对象参数传递给我的flask app post方法,我的意思是序列化应该在客户端完成,而反序列化应该在服务器上自动完成。 例如: 我有一个学生班: class Student(object): def __init(self, name, age, sno): self.name = name self.age = age self.sno = sno def __repr(self):

我想将一个用户定义的对象参数传递给我的flask app post方法,我的意思是序列化应该在客户端完成,而反序列化应该在服务器上自动完成。 例如: 我有一个学生班:

class Student(object):
    def __init(self, name, age, sno):
         self.name = name
         self.age = age
         self.sno = sno

    def __repr(self):
        return 'Student [name: %s, age: %d, sno: %d]' % (self.name, self.age, self.sno)
我的烧瓶应用程序是:

@route('/addstudent', method=['post'])
def add_student():
    stu = request.some_function() # some_function should get a Student object from request and deserialize it autimatically
    if not isinstance(stu, Student):
        return 'input is not a Student object.'
    return do_something(stu)

有没有办法让我输入一个用户定义的对象(学生类),然后它可以被序列化并传输到flask app,flask app可以反序列化它?

我知道我可以通过指定内容类型在客户端发布json对象:

request_body = '{"name": "tom","age": 20, "sno": 12}'
request_header = {'Content-Type': 'application/json'}
通过get_json方法获取json对象,如下所示:

stu = request.get_json()

在flask app server上解析这个对象,但我想找到一些更具python风格的方法来实现这一点,就像我在问题中遇到的那样,有什么方法吗?

我知道我可以通过指定内容类型在客户端发布json对象:

request_body = '{"name": "tom","age": 20, "sno": 12}'
request_header = {'Content-Type': 'application/json'}
通过get_json方法获取json对象,如下所示:

stu = request.get_json()

在flask app server上解析这个对象,但我想找到一些更具python风格的方法来实现这一点,就像我在问题中遇到的一样,有什么方法吗?

在java spring项目中,我们可以通过指定请求体为用户定义的对象来使用annotation@RequestBody Student,然后spring框架将自动反序列化它,但我在python中找不到类似的框架。在java spring项目中,我们可以通过指定请求主体是用户定义的对象来使用注释@RequestBody Student,然后spring框架将自动反序列化它,但我在python中找不到类似的框架。