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

2024-05-02 17:05:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将一个用户定义的对象参数传递给我的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应用程序,flask应用程序可以反序列化它


Tags: 对象用户nameself应用程序flaskagereturn
1条回答
网友
1楼 · 发布于 2024-05-02 17:05:07

我知道我可以通过指定内容类型在客户端发布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风格的方法来实现这一点,就像我在问题中遇到的一样,有什么方法吗

相关问题 更多 >