Flask Blueprint вызывает ошибку 404 при регистрации вне функции create_appPython

Программы на Python
Ответить
Anonymous
 Flask Blueprint вызывает ошибку 404 при регистрации вне функции create_app

Сообщение Anonymous »

Описание
Я использую шаблон фабрики приложений Flask и сталкиваюсь с ошибкой 404 для всех маршрутов в схеме элементов, когда регистрирую схему вне метода create_app() функция. Однако когда я перемещаю регистрацию схемы внутри функции create_app(), все работает как положено. Я хочу понять, почему это происходит и всегда ли регистрация схемы должна выполняться внутри фабрики приложений.
У меня следующая настройка:

Код: Выделить всё

from flask import Flask

def create_app():
app = Flask(__name__)
return app
in main.py , я создаю приложение и регистрирую план, как это:

Код: Выделить всё

app = create_app()

init_db()  # Initializes the database

app.register_blueprint(user_bp, url_prefix='/api')

if __name__ == "__main__":
app.run(debug=True)
Когда я запускаю приложение, я получаю ошибку 404 для всех маршрутов, определенных в плане user_bp. Однако, если я перемесчу регистрацию плане в функцию Create_App в __init __. py , например:

Код: Выделить всё

from flask import Flask
from .user import user_bp  # Importing the blueprint

def create_app():
app = Flask(__name__)

app.register_blueprint(user_bp, url_prefix='/api')  # Registering here

return app
Маршруты работают отлично.
Я не понимаю, почему так происходит. Почему регистрация схемы вне create_app() приводит к ошибке 404, а регистрация внутри работает нормально?
Дополнительные сведения:
Проект (user_bp) определен в отдельном модуле и импортирован правильно.
Я использую шаблон фабрики приложений для создания экземпляра приложения.< /p>
При работе приложения ошибок нет. инициализация или регистрация чертежа.
Что мне не хватает? Есть ли конкретная причина, по которой регистрация схемы должна происходить внутри функции create_app()? Будем признательны за любые идеи и лучшие практики!

Подробнее здесь: https://stackoverflow.com/questions/793 ... p-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»