簡體   English   中英

芹菜中的url_for不起作用

[英]url_for in celery doesn't work

我們正在構建一個通告通知郵件系統,作為python / flask系統的一部分,目前它已經使用cronjobs運行,但是我們將所有東西都轉移到了celery上,以使其性能更高且更易於維護。

但是,到目前為止一直在工作的模板突然開始引發以下錯誤:

[2017-05-29 20:30:30,411: WARNING/PoolWorker-7] [2017-05-29 20:30:30,411] 
ERROR in mails: ERROR errorString => Could not build url for endpoint 
'page.start' with values ['from_email']. Did you mean 'static' instead?

在外部模板中調用url_for,如下所示:

{{ url_for('page.start', _external=True) }}

並呈現如下:

    message = render_template('notifs/user_notif.html',
                                      subject=subject,
                                      entries = grouped,
                                      user=u,
                                      unsubscribe_hash=pw_hash,
                                      list_id = str(notif_list.id),
                                      timestamp = today)

現在,如果我們刪除模板中的所有url_for,它將起作用。 但為什么? 我的假設(我無法檢驗或證明):celery無法訪問藍圖(即使它在應用程序上下文中運行,因為任務實際上訪問了各種模型和數據庫等)。 如何讓芹菜了解url_for?

剛遇到同樣的問題:

數據庫和模型的前面是您的ORM(Flask-sqlalchemy?),而不是Flask應用程序本身。 Flask應用程序為諸如url_for,current_user等之類的內容提供了上下文。您的orm僅提供數據庫抽象,而不取決於實際的應用程序上下文。

暫無
暫無

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

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