jsonのjavascriptに結果を渡しました。しかし、var myList = {{ pass_tmp|tojson|safe }}
を使用して結果をjsonに変換すると、TypeError: ObjectId('') is not JSON serializable
というバグがあります。私はこの質問TypeError: ObjectId('') is not JSON serializableを読んだ。しかし、この質問の状況は私とは少し異なります。フリンジテンプレートの代わりにpython file.Andをjsonに変換しなければなりません。コマンドを使用してvar myList = {{ pass_tmp|tojson|safe }}
これをHTMLから渡す必要がありますjavascript.SoにObjectId
をString
に変換できますか? は、ここに私のフラスコアプリのコードです:ObjectIdをPythonでStringに変換するには?
@app.route('/details/', methods=['GET'])
def details():
if request.method == 'GET':
mongoClient = pymongo.MongoClient('localhost', 27017)
name = session['name']
print name
db = mongoClient[name]
results = db[name].find()
json_results= []
for result in results:
json_results.append(result)
# json_tmp = toJson(json_results)
return render_template('details.html', pass_tmp=json_results)
私のテンプレート(ジャバスクリプト)のコードは次のとおりです。
var myList = {{ pass_tmp|tojson|safe }}
// Builds the HTML Table out of myList json data from Ivy restful service.
function buildHtmlTable() {
var columns = addAllColumnHeaders(myList);
for (var i = 0 ; i < myList.length ; i++) {
var row$ = $('<tr/>');
for (var colIndex = 0 ; colIndex < columns.length ; colIndex++) {
var cellValue = myList[i][columns[colIndex]];
if (cellValue == null) { cellValue = ""; }
row$.append($('<td/>').html(cellValue));
}
$("#excelDataTable").append(row$);
}
}
だから、誰もがこの問題を解決するための任意の良い提案を持っていますか?
http://stackoverflow.com/questions/23902596/how-to-use-flask-jsonify-and-render-a-templateを-in-a-flask-route試してみてください。私は自信がない。 –
私はちょうどあなたが助けてくれてありがとうございました~~~テンプレートにjsonを渡すことでこの問題を解決しました –
あなたの歓迎。 :) –