Как вызвать некоторую функцию из приложения Flask в Python?
Я myapp.py
такой:
from flask import Flask
from flask import request
from flask import render_template
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
# do something
# for example:
message = 'I am from the POST method'
f = open('somefile.out', 'w')
print(message, f)
return render_template('test.html', out='Hello World!')
if __name__ == '__main__':
app.run()
у меня простой вопрос. как позвонить
2 ответов
посмотреть Контекста Запроса документация; вам нужно создать контекст явно:
>>> ctx = myapp.app.test_request_context('/', method='POST')
>>> ctx.push()
>>> myapp.index()
вы также можете использовать контекст в качестве менеджера контекста (см. Другие Трюки Тестирования):
>>> with myapp.app.test_request_context('/', method='POST'):
... myapp.index()
...
ошибка вызвана доступом к на . Вы могли бы позвонить index()
без каких-либо проблем, если вы пытаетесь получить доступ к request
атрибуты внутри него.
на request
прокси работает только в пределах контекста запроса.
вы можете прочитать больше об этом здесь: http://flask.pocoo.org/docs/reqcontext/
>>> request.method
(...)
>>> RuntimeError: working outside of request context
вы можете создать контекст запроса следующим образом:
>>> with app.test_request_context('/'):
... request.method
...
'GET'