我们正在构建一个notofication邮件系统作为python / flask系统的一部分,因为现在它已经使用cronjobs运行,但我们正在将所有东西都移到芹菜上,以使其更高效,更易于维护。
然而,到目前为止一直在工作的模板开始抛出以下错误:
[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,它就可以了。但为什么? 我的假设,我无法测试或证明:不知何故,芹菜无法访问蓝图(即使它在应用程序上下文中运行,因为任务实际上访问了各种模型和数据库等)。如何让芹菜了解url_for?
答案 0 :(得分:0)
刚遇到同样的问题:
数据库和模型由您的ORM(Flask-sqlalchemy?)提供,而不是Flask应用程序本身。 Flask应用程序为url_for,current_user等提供上下文。您的orm只提供数据库抽象,而不是取决于实际的应用程序上下文。