Когда я регистрирую чертежи в init, они не регистрируются, почему?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Когда я регистрирую чертежи в init, они не регистрируются, почему?

Сообщение Anonymous »

Есть десятки вопросов об исчезновении чертежей на StackExchange, но это, пожалуй, самый лаконичный пример. Предположим, что app.py находится в верхней папке, а __init__.py и т. д. — в подпапке «test». Следующее не работает:
app.py

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

from test_bad import create_app

# Start the app
if __name__ == '__main__':
app = create_app()

for rule in app.url_map.iter_rules():
print(rule)

app.run(debug=True, use_reloader=False)
__init__.py

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

from flask import Flask, render_template
from . routes import dash

def create_app():
app = Flask(__name__)
app.register_blueprint(dash)
return app
routes.py

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

from flask import Blueprint

# Define the blueprint
dash = Blueprint('dash', __name__)
views.py

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

from . routes import dash

@dash.route('/', methods=['GET', 'POST'])
def index():
return 'Hello World!'

@dash.route('/verify', methods=['GET','POST'])
def check_verification():
return 'And Farewell!'

в то время как следующее работает нормально:
app.py

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

from test_good.views import create_app

# Start the app
if __name__ == '__main__':
app = create_app()

for rule in app.url_map.iter_rules():
print(rule)

app.run(debug=True, use_reloader=False)
__init__.py routes.py

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

from flask import Blueprint

# Define the blueprint
dash = Blueprint('dash', __name__)
views.py

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

from flask import Flask, render_template
from . routes import dash

@dash.route('/', methods=['GET', 'POST'])
def index():
return 'Hello World!'

@dash.route('/verify', methods=['GET','POST'])
def check_verification():
return 'And Farewell!'

def create_app():
app = Flask(__name__)
app.register_blueprint(dash)
return app
Глядя на напечатанные правила конечных точек, вы можете видеть, что в «плохом» случае эти конечные точки не были добавлены в приложение (или приложение каким-то образом «обновилось»). В то время как в хорошем случае с конечными точками все в порядке.
С точки зрения структуры кода я бы подумал, что __init__ — правильное место, но, видимо, нет.
Как еще лучше это написать? [Или я что-то упускаю]. Спасибо,

Подробнее здесь: https://stackoverflow.com/questions/790 ... hy-is-that
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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