2016-11-12 56 views
0

嘿,我正在運行這段代碼,當我在「/ d」上啓動它時,我希望它打印出整個數據庫,此刻它只打印一行並進行更改到下一個對象,如果我刷新頁面,你能幫忙嗎?從MongoDB打印出多條線

from flask import Flask,render_template 
import pymongo 
from pymongo import MongoClient 
client = MongoClient() 
db = client.fliDb 

app = Flask(__name__) 

games = db.games 
g= games.find() 

@app.route('/d', methods = ["GET","POST"]) 
def content(): 
for game in g: 
    str(game) 
    return str(game) 
+0

看起來像你的return語句在循環中。只要返回被調用,它完成該功能。 –

回答

1

您需要在每次請求頁面時創建一個新的PyMongo光標,而不是使用全局光標。此外,您需要完全迭代遊標,而不是在第一次迭代之後從循環內部返回。這樣做:

@app.route('/d', methods = ["GET","POST"]) 
def content(): 
    g = games.find() 
    return '\n'.join([str(game) for game in g)]) 
+0

並且需要轉義明文輸出的'html'內容。 'game.find()'瀏覽器端的壞主意。性能需要一些限制。 – dsgdfg