2016-05-05 33 views
0

比方說,我想執行一個隨機函數:如何用python eve api調用方法?

def compute_average(user) 

此功能將計算幾個值的平均值,並將其插入到用戶現場。這只是一個例子。

如何使用eve api調用此函數?

我查閱了文檔,但沒有找到任何東西。

+0

我無法找到該功能源代碼...你在哪裏看到的? –

+0

這是一個例子,我說的是你在api中編寫的函數 – Babajaga

+0

我沒有使用過Eve,但我會看看Github例子中的'settings.py'文件。 –

回答

0

如果我明白,你想要的是在請求之前/之後運行自定義代碼。爲此,您可以使用事件掛鉤在請求或數據庫事件之前/之後設置回調。 一個例子來運行你的compute_average之前的任何GETusers資源:

def compute_average(request, lookup) 
    # your code 

app = Eve() 
app.on_pre_GET_users += compute_average 

app.run() 

你的函數的參數會改變一點點。如documentation所述,對特定資源的回調將原始的flask.request對象和當前的lookup字典作爲參數。

但是,如果您需要檢索文檔以執行計算,則可以像往常一樣在代碼中執行mongodb查詢。 查看文檔以獲取更多詳細信息。

1

由於EveFlask派生,你可以路由頁面瓶方式:

from flask import jsonify 
from eve import Eve 
app = Eve() 

@app.route('/average/<user>') 
def compute_average(user): 
    return jsonify({user:47}) 

if __name__=='__main__': 
    app.run(debug=True) 

用法:

$ curl http://localhost:5000/average/joe 

結果:

{ 
    "joe": 47 
}