一、什么是Flask Jsonify
Flask是一个轻量级的Python Web框架,其设计目的是使得Web开发变得更加容易。Flask支持多种扩展库,Flask Jsonify是其中一个非常常用的扩展库。所谓的Jsonify,指的是将Python对象转换为Json对象。Flask Jsonify是Flask库中的一个函数,用来将Python数据结构转换为Json并返回到客户端。
二、Flask Jsonify的使用
Flask Jsonify的使用非常简单,我们只需要在Python代码中导入该扩展库,并且在需要返回Json结果的函数中使用该方法即可。下面是一个使用Flask Jsonify的示例代码:
from flask import Flask, jsonify app = Flask(__name__) @app.route('/user_info') def user_info(): user = { 'name': '小明', 'age': 18, 'gender': '男' } return jsonify(user) if __name__ == '__main__': app.run()
以上代码中,我们定义了一个/user_info的路由,当用户访问该路由时,会返回一个Json格式的用户信息。其中,我们使用了Flask Jsonify函数将Python字典对象转换为了Json对象。
三、Flask Jsonify函数的参数
Flask Jsonify函数支持多种参数类型,下面我们分别介绍一下这些参数。
1、字典类型的参数
字典类型的参数是使用最为广泛的一种情况,我们可以直接将一个Python字典对象传递给Flask Jsonify函数,该函数会将该字典对象转换为Json。
from flask import Flask, jsonify app = Flask(__name__) @app.route('/user_info') def user_info(): user = { 'name': '小明', 'age': 18, 'gender': '男' } return jsonify(user) if __name__ == '__main__': app.run()
2、列表类型的参数
列表类型的参数也可以被Flask Jsonify函数识别并转换为Json。我们可以将一个Python列表对象传递给Flask Jsonify函数,该函数会将该列表对象转换为Json。
from flask import Flask, jsonify app = Flask(__name__) @app.route('/user_list') def user_list(): users = [ { 'name': '小明', 'age': 18, 'gender': '男' }, { 'name': '小红', 'age': 20, 'gender': '女' } ] return jsonify(users) if __name__ == '__main__': app.run()
3、自定义JsonEncoder的参数
Flask Jsonify函数还支持定义自定义Json序列化器,即JsonEncoder。我们可以在Flask应用程序初始化时,通过app.json_encoder属性设置自定义的JsonEncoder。
from flask import Flask, jsonify import json class UserEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, User): return { 'name': o.name, 'age': o.age, 'gender': o.gender } return json.JSONEncoder.default(self, o) app = Flask(__name__) app.json_encoder = UserEncoder class User: def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender @app.route('/user') def user(): user = User('小明', 18, '男') return jsonify(user) if __name__ == '__main__': app.run()
上述代码中,我们自定义了一个UserEncoder类,并继承了json.JSONEncoder。该类重写了default方法,判断如果传入对象是User类型,则使用该对象的属性生成一个字典对象,并返回该字典对象。当然,我们还需要在Flask应用程序初始化时,通过app.json_encoder属性设置UserEncoder为自定义的JsonEncoder。
4、其它参数
在Flask Jsonify函数中,还支持一些其它的参数。例如:
– status_code:指定返回的Http状态码,默认为200;
– headers:指定返回的Http头部信息;
– indent:指定Json的缩进量;
– separators:指定Json中各项之间的分隔符;
– cls:指定JsonEncoder。
四、小结
Flask Jsonify是一个很实用的Python库,可以方便地将Python对象转换为Json格式返回到客户端。本文简单介绍了Flask Jsonify的使用方法和参数,希望对大家有所帮助。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/254437.html