背景:
我正在构建一个基本的烧瓶应用程序,它将允许我从Atlas Compass Cluster返回一个Collection,然后使用Collection数据创建一个HTML容器来显示数据并并创建一些D3图表。
问题:
我创建了两个@app.route
,以使我能够直观地看到json.dump
和flask.jsonify
返回数据之前,决定使用哪个
不幸的是,尽管我的json.dump
路由(通过index.html页面)返回了数据,但jsonify似乎不起作用。我的终端机
错误:
TypeError: jsonify() behavior undefined when passed both args and kwargs
代码:
这是我的代码,其中同时显示了 @ app.route
import flask
from flask import Flask, jsonify
import pymongo
from pymongo import MongoClient
from bson import ObjectId, json_util
import json
cluster = pymongo.MongoClient("mongodb+srv://group2:<PASSWORD>@cluster0.mpjcg.mongodb.net/<dbname>?retryWrites=true&w=majority")
db = cluster["simply_recipe"]
collection = db["recipes_collection"]
app = Flask(__name__)
@app.route("/recipes", methods=["GET"])
def get_recipes():
all_recipes = list(collection.find({}))
return json.dumps(all_recipes, default=json_util.default)
@app.route("/recipes_jsonify", methods=["GET"])
def get_recipes_jsonify():
all_recipes = list(collection.find({}))
return flask.jsonify(all_recipes, default=json_util.default)
我是Flask的一个完整的初学者,所以毫无疑问我错过了一些明显的东西,有人可以帮忙吗?
答案 0 :(得分:-2)
这里有个例子,解释了jsonify如何处理您的数据:
from flask import jsonify
@app.route('/_get_current_user')
def get_current_user():
return jsonify(username=g.user.username,
email=g.user.email,
id=g.user.id)
输出:
{
"username": "admin",
"email": "admin@localhost",
"id": 42
}