iT邦幫忙

0

透過 flask 取得mongodb的資料

大家好,小弟最近剛接觸flask,想由此寫API抓出mongodb的資料,但卻一直跑不出來,想請問code是不是有寫錯的地方,已確定client & 資料庫沒錯,想藉由資料庫的id欄位(key)呼資料,只是呼不出來/images/emoticon/emoticon02.gif

from flask import Flask, jsonify, request #request網路參數用
from pymongo import MongoClient

client = MongoClient() 
# 帳號:密碼@ip:porter(服務在哪個端口)
wine = client['']['']#[] # 資料庫 + 資料表

app = Flask(__name__) #命名

'define function,這支API要做的事情'
# http://my.domain.com/denny
@app.route('/denny', methods=['GET']) #取得網址,/ = url,get取得網頁方式

def test():
    
    text_id = request.args.get('text_id') 
    #網址參數,'網站上打的東西'
    
    data = wine.find_one({'id':text_id},{'_id':0}) 
    #'key(欄位)': value(值)
    #Fund_id:欄位名稱>串網址參數,0 >> 不要_id欄位
    
    #上述做法會有空值,故要有個測試
    if data is None:
        msg = {
            'Result': None,
            'Status': {
                'Code' : 404,
                'Msg' : 'Data Not Found'
            }
        }
        return jsonify(msg), 404
    else:
        msg = {
            'Result': data,
            'Status': {
                'Code': 200,
                'Msg': 'Operation Successful'
            }
        }
        return jsonify(msg), 200 #確保傳回前端為json格式,200代表成功
#%%
'執行 http://127.0.0.1:5000/denny?text_id=235395820'
app.run()

http://127.0.0.1:5000/denny?text_id=235395820 想由此拉出資料

https://ithelp.ithome.com.tw/upload/images/20210526/20116986VKRXNZ0bi9.png

你可以先print看看text_id及data,確定有沒有值,
再看看你DB的code 有沒有執行成功
這個都是有資料的QQ
然後flask是2.0.0版 python是3.9.5 (怕版本有誤)

尚未有邦友回答

立即登入回答