我在一個藍圖模塊中有一個JSON API,而在另一個藍圖模塊中有一個Web前端。如何從另一個視圖調用一個Flask視圖?
我想在發送給客戶端like in this gist I found之前,通過在前端視圖模板中嵌入一些JSON來客戶端JS代碼所需的AJAX請求。
如何從另一個瓶子視圖調用一個瓶子視圖?
我本來可以直接調用視圖函數,但request
會對應於「外部」請求,這會混淆被調用的API函數。我試過using test_request_context
,它幾乎可以工作,但我無法弄清楚如何保持身份驗證(我正在使用Flask-Login)。
我會採取你正在使用的邏輯來檢索AJAX調用視圖的數據,並將其放入另一個函數。這個功能不應該依賴認證。然後,從兩個視圖調用該函數。 –
@Mark:這就是我通常所做的,但JSON函數依賴'request'對象來生成分頁URL和其他一些東西。我不想將它們全部重寫,以顯式傳遞'endpoint','request.args'等。我還需要*生成的JSON中的這個分頁信息,以便客戶端知道如何獲取下一頁。我同意這不是最優雅的解決方案,但它最適合我。 –