куда импортировать модули в проект flask - PullRequest
0 голосов
/ 20 июня 2020

Я следил за flask мега учебником от Мигеля Гринберга и за самым первым «Hello World!» программа сбивает меня с толку.

Точнее, это импорт модуля маршрутов из модуля init .py, который меня сбивает.

Ниже init .py файл:

#__init__.py file:

from flask import Flask

app = Flask(__name__)

from app import routes
# above line is the source of confusion.

Ниже находится файл routes.py

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, world!"

Теперь, если я правильно понимаю, приложение является объектом класса Flask. когда мы делаем "from app import app" в routes.py, я понимаю, что мы импортируем объект приложения, созданный в файле init .py.

Следующий код - регистрация маршрута для этого объекта.

Итак, мой вопрос: зачем нам нужно импортировать этот модуль routes в init .py?

Я имею в виду маршруты модуль, объект приложения был импортирован и для него был зарегистрирован маршрут. Таким образом, это должно отражаться на объекте приложения, созданном в init .py. Так зачем нам его импортировать?

Я знаю, что это не сработает, если мы удалим оператор import routes. Но хочу знать, почему.

Изменить: Хотя у меня есть опыт программирования, я новичок в python. Таким образом, может быть неправильное понимание того, как файлы python выполняются при выполнении проектов. Также я думаю, что это связано с тем, что python является интерпретируемым языком.

1 Ответ

0 голосов
/ 20 июня 2020

Когда вы импортируете что-либо в python, фактически запускается весь файл, который вы импортируете. Файл __init__.py не содержит информации о маршрутах, поэтому, импортируя его, вы, по сути, предоставляете эту информацию объекту приложения. Кроме того, этот файл маршрутов никогда не запускается напрямую, так что это единственный способ создания представлений.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...