我正在使用python Flask构建一个网站.一切都很顺利,现在我正在努力实施芹菜.
在我尝试使用来自芹菜的烧瓶邮件发送电子邮件之前,情况也很顺利.现在我得到一个"在应用程序上下文之外工作"的错误.
完全追溯是
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/celery/task/trace.py", line 228, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/celery/task/trace.py", line 415, in __protected_call__
return self.run(*args, **kwargs)
File "/home/ryan/www/CG-Website/src/util/mail.py", line 28, in send_forgot_email
msg = Message("Recover your Crusade Gaming Account")
File "/usr/lib/python2.7/site-packages/flask_mail.py", line 178, in __init__
sender = current_app.config.get("DEFAULT_MAIL_SENDER")
File "/usr/lib/python2.7/site-packages/werkzeug/local.py", line 336, in __getattr__
return getattr(self._get_current_object(), name)
File "/usr/lib/python2.7/site-packages/werkzeug/local.py", line 295, in _get_current_object
return self.__local()
File "/usr/lib/python2.7/site-packages/flask/globals.py", line 26, in _find_app
raise RuntimeError('working outside of application …Run Code Online (Sandbox Code Playgroud) 我有一个具有 MVC 结构的 Flask 应用程序:
my_app
??? server.py
??? requirements.txt
??? models
? ??? __init__.py
??? model.py
??? controllers
??? __init__.py
??? client_controllers
???controller.py
??? another_controller.py
??? templates
Run Code Online (Sandbox Code Playgroud)
我使用蓝图在“控制器”中拆分服务器代码,所以我有这样的事情:
from flask import Flask
from celery import Celery
from controllers.client_controllers.controller import controller
app = Flask(__name__)
app.secret_key = 'SECRET'
app.register_blueprint(controller)
# Celery Configuration
def make_celery(app):
celery = Celery(app.import_name, backend=app.config['CELERY_RESULT_BACKEND'],
broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
TaskBase = celery.Task
class ContextTask(TaskBase):
abstract = True
def __call__(self, *args, **kwargs):
with app.app_context():
return TaskBase.__call__(self, *args, **kwargs)
celery.Task = …Run Code Online (Sandbox Code Playgroud)