簡體   English   中英

在 pymongo 中具體查詢並在 flask app 中顯示數據

[英]Specific query in pymongo and displaying the data in flask app

我正在做一個項目,在 pymongo 的 mongodb 數據庫中查詢特定文檔,並將其顯示在 flask 應用程序上。

這是代碼:

from flask import Flask
from flask_pymongo import PyMongo
import pymongo
import json

app = Flask(__name__)



@app.route("/")
def home_page():

    return "hello world" 


@app.route("/user/<string:phone>")
def user_profile(phone):

client = pymongo.MongoClient("mongodb+srv://Diligent:Diligent1234@cluster0.1pnpt.mongodb.net/test")
db = client["MyDatabase"]
col = db["UserID"]
for x in col.find({"Contact No": phone}, {"_id":0, "UserID": 1, "User": 1, "Contact No": 1, "Designation": 1 }):
    print(x)
return x

因此,當我在 flask App.py 中輸入“http://127.0.0.1:5000/user/phone=9331828671”之類的輸入時

我收到如下錯誤:

UnboundLocalError:分配前引用的局部變量“x”。

那么我應該如何解決這個問題以獲取特定查詢的詳細數據?

我非常感謝您能提供的任何幫助。

使用您指定的 for 循環,您將經歷一個可迭代的,檢索每個匹配的x並打印它。 這個值 x 在這個 for 循環之后被直接丟棄。

現在取決於你想要得到什么。 例如,如果您想檢索最后匹配的x ,請嘗試以下操作:(如果沒有 x 匹配,則返回null

last_element = None
for x in col.find({"Contact No": phone}, {"_id":0, "UserID": 1, "User": 1, "Contact No": 1, "Designation": 1 }):
    last_element = x
    print(x)
return {"data": last_element}

如果您想要所有匹配的x ,請嘗試以下操作:(如果沒有 x 匹配,則返回[]

elements = []
for x in col.find({"Contact No": phone}, {"_id":0, "UserID": 1, "User": 1, "Contact No": 1, "Designation": 1 }):
    elements.append(x)
    print(x)
return {"data": elements}

PS:注意你的縮進,你正在工作的是 python。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM