2017-01-22 58 views
0

我試圖製作一個燒瓶應用程序,它可以支持用戶登錄請求並從mongodb數據庫返回數據,它接收到與數據庫中的條目匹配的密碼和用戶名。 雖然它作爲find查詢的結果返回空值,但在輸出行提示空對象錯誤,即使數據存在於數據庫中。此外,代碼沒有進入'for循環'。在Python中查找返回空遊標與Mongodb的Flask應用程序

from flask import Flask, render_template 
import pymongo 
from flask import jsonify, request 
from flask_pymongo import PyMongo 
app= Flask(__name__) 
app1= Flask(__name__) 

app.config['MONGO_DBNAME']= 'VendorDetails' 
app.config['MONGO_URL']='mongodb://localhost:27017/VendorDetails' 
mongo=PyMongo(app) 

@app.route('/getvendorlogin', methods=['POST']) 
def getVendorLogin(): 
    vendor=mongo.db.VendorDetails.VendorDetails 
    Username= request.json["Username"] 
    Password= request.json["Password"] 
    v= vendor.find({'Username':Username},{'Password':Password}) 
    for record in v: 
     Username1= record['Username'] 
     Password1= record['Password'] 
     Name1= record['Name'] 
    output= {"Username":Username1, "Password":Password1, "Name":Name1} 
    return jsonify({'result':output}) 
    if __name__=="__main__": 
     app.run(host='0.0.0.0', port=80) 

我的數據庫的名稱是'VendorDetails',我的集合的名稱也是'VendorDetails'。請建議我可能的方法來解決這個問題。

回答

0

嘗試將此行更改:​​

v= vendor.find({'Username':Username},{'Password':Password}) 

這一個:

v= vendor.find({"Username": Username, "Password":Password}) 

讓我知道,如果它的工作。

+0

試過了。仍然給出空白輸出,其中v爲空遊標。 –

+0

我看到供應商變量在行vendor = mongo.db.VendorDetails.VendorDetails上有兩次嵌套的VendorDetails屬性,是不是? –

+0

是的,第一個VendorDetails指的是數據庫,第二個指的是收集,我想。 –