플라스크 응용 프로그램에서 플라스크 메일을 구현하고 있지만 응용 프로그램에서 컨텍스트 오류가 없어지면 제거 할 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 구성 파일에 mail_server 매개 변수를 넣었습니다.Flask-mail (python) : 응용 프로그램 컨텍스트 오류가 발생했습니다.
/app.py - 응용 프로그램이 create_web_apis
def create_app(config):
"""Creates an instance of the app according to `config`
:param config: An instance of :class:`flask.config.Config`
:returns: The configured application. This can be passed to a WSGI
container.
"""
app = create_web_apis()
app.config.update(config)
mail = Mail(app)
...
여기 /emails.py
from flask import current_app
from flask.ext.mail import Mail, Message
mail = Mail(current_app)
def send_email(subject, sender, recipients, text_body, html_body):
msg = Message(subject, sender = sender, recipients = recipients)
msg.body = text_body
msg.html = html_body
mail.send(msg)
에서 인스턴스화하면 내부 응용 프로그램 컨텍스트를 제공해야
Traceback (most recent call last):
File "bin/run-tests", line 58, in <module>
test_suite = test_loader.loadTestsFromNames(args.tests)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 128, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 91, in loadTestsFromName
module = __import__('.'.join(parts_copy))
File "/Users/tahsin/dev/restful_phollow/phollow/tests/test_external.py", line 16, in <module>
from phollow.emails import send_email
File "/Users/tahsin/dev/restful_phollow/phollow/emails.py", line 6, in <module>
mail = Mail(current_app)
File "/Users/tahsin/dev/venv/phollow/lib/python2.7/site-packages/flask_mail.py", line 461, in __init__
self.state = self.init_app(app)
File "/Users/tahsin/dev/venv/phollow/lib/python2.7/site-packages/flask_mail.py", line 473, in init_app
app.config.get('MAIL_SERVER', '127.0.0.1'),
File "/Users/tahsin/dev/venv/phollow/lib/python2.7/site-packages/werkzeug/local.py", line 338, in __getattr__
return getattr(self._get_current_object(), name)
File "/Users/tahsin/dev/venv/phollow/lib/python2.7/site-packages/werkzeug/local.py", line 297, in _get_current_object
return self.__local()
File "/Users/tahsin/dev/venv/phollow/lib/python2.7/site-packages/flask/globals.py", line 26, in _find_app
raise RuntimeError('working outside of application context')
당신이 시작할 수
app.py 들여 쓰기를 고정하고 전체 예제를 제공합니다. 'create_web_apis' 내부에서 무슨 일이 일어나고 있는지는 명확하지 않습니다. 또한 추적은 몇 가지 테스트를 실행하고 있다고 제안합니까? 그래서'test_external.py'는 어디에 있습니까? 답변을 얻으려면 [SSCCE] (http://www.sscce.org/)를 제공해야합니다. – zero323
test_external의 테스트 케이스가 send_email의 매개 변수를 전달합니다. 죄송합니다. – user2216194
문제를 일으킨 코드가 없으면 문제를 진단하기가 어렵습니다. 그럼에도 불구하고 당신은 내 대답을 읽을 수 있고 그것은 당신에게 해결책을 줄 것입니다. – zero323