2017-01-22 10 views
0

データベースのエントリと一致するパスワードとユーザ名を受け取った後、mongodbデータベースからユーザログインリクエストとデータを返すことができるフラスコアプリケーションを作成しようとしています。 しかし、データがデータベースに存在していても、検索クエリの結果として空の値が返されますが、出力行にnullオブジェクトエラーが表示されます。また、コードは '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」です。これを解決する方法を提案してください。この1に

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

答えて

0

は、この行を変更しようと

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

それが仕事なら、私に知らせてください。

+0

これを試してみてください。 vを空のカーソルとして空白のまま出力します。 –

+0

ベンダー変数には、vendor vendor = mongo.db.VendorDetails.VendorDetailsという行のVendorDetails属性が2回ネストされているのがわかりますね。 –

+0

はい、最初のVendorDetailsはデータベースを参照し、2番目はコレクションを参照します。 –

関連する問題