Я создал API, используя Flask.Я следовал заводскому образцу документации Flask - правила и имена будут абстрактными.(__init__.py of my_package)
Завершив пакет и фабричный метод, я импортировал его в другой файл вне пакета и создал небольшой скрипт для запуска сервера официантки (файл server.py)
Все работает, как и ожидалось, но я обнаружил, что каждый раз, когда я делаю запрос к API, он запускается дважды.Этого не может быть, поскольку некоторые маршруты вставляют данные в мою базу данных, и это поведение будет продолжать вводить дубликаты.
Как правильно решить эту проблему?Могу ли я отключить этот двойной ответ?
Я уже пытался установить app.debug и app.use_reloader в False без каких-либо заметных различий.
Я также пытался найти некоторую информацию в документации официанток и Flask, но я мог найти все, что мне помогло.
Заводской метод __init__.py внутри my_package:
def create_app(test_config=None):
app = Flask(__name__, instance_relative_config=True)
app.config.from_object('config')
@app.route('/route1', methods=['POST', 'PUT'])
def route1():
if request.method == 'POST':
# route logic...
pass
elif request.method == 'PUT':
# route logic...
pass
@app.route('/route2', methods=['POST'])
def route2():
if request.method == 'POST':
# route logic...
pass
return app
server.pyфайл за пределами my_package:
import my_package
from waitress import serve
serve(my_package.create_app(), host='0.0.0.0', port=9600)
Ожидается: запросы API будут выполняться только один раз за вызов.
Фактически: запросы API выполняются дважды за вызов.