gpt4 book ai didi

android - Flask REST API 响应 JSONArray

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:12 25 4
gpt4 key购买 nike

我使用 Flask 为 Android 应用程序创建了一个简单的 REST API。我在实现 GET 方法时遇到问题。它应该以 JSONArray 的形式返回所有记录。响应看起来像他的

{
"tasks": [{
"task" : "Do it",
"timestamp": 1433510946152
},{..}
],
"success": 1
}

我的任务模型是这样的

class Task(db.Model):   
id = db.Column(db.Integer, primary_key=True)
task= db.Column(db.Text, nullable=False)
timestamp = db.Column(db.Integer, nullable=False)

@staticmethod
def newest():
return Task.query.order_by(desc(Task.timestamp))

def to_json(self):
return dict(id=self.id,
task= self.task,
timestamp = self.timestamp)

to_json() 方法将结果转换为 JSON。我只是不知道如何正确使用它。我如何将所有记录放入 JSONArray 中?这是我获取所有任务的方法。我也在使用 Flask paginate,所以 tasks 是一个分页对象。

def get_tasks():    

page = request.args.get('page')
if page is not None:
try:
page = int(request.args.get('page'))
except:
return jsonify({'result': 'Invalid parameter'})
else:
page = 1
tasks= models.Task.newest().paginate(page, 7, True)

#How do I return the tasks in an appropriate format?

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

只需遍历您的任务,使用您的to_json 将它们转换为json 并将它们存储在一个数组中。例如:

def get_tasks():    

page = request.args.get('page')
if page is not None:
try:
page = int(request.args.get('page'))
except:
return jsonify({'result': 'Invalid parameter'})
else:
page = 1
tasks= models.Task.newest().paginate(page, 7, True)
# This list will hold all your tasks in JSON format
jsontasks = []
# Since tasks is a pagination object, you should use tasks.items
for task in tasks.items:
jsontasks.append(task.to_json())
#How do I return the tasks in an appropriate format? Like this..
return jsonify({'tasks': jsontasks, 'success': 1})

关于android - Flask REST API 响应 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30667979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com