Want to make redirection of endpoints to differets controllers via blueprint, but it makes error circular import. Can't understand where is cyclicality.
Traceback (most recent call last): File "C:\Users\stein\PycharmProjects\techTasks\filmorate_init_.py", line 2, in from app import routes File "C:\Users\stein\PycharmProjects\techTasks\filmorate\app\routes.py", line 2, in from filmorate.app.view.FilmController import FilmController File "C:\Users\stein\PycharmProjects\techTasks\filmorate_init_.py", line 9, in app.register_blueprint(routes.app_blueprint_film) ^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: partially initialized module 'app.routes' has no attribute 'app_blueprint_film' (most likely due to a circular import)
code:
**__init__.py**
from flask import Flask
from app import routes
app = Flask(__name__)
app.json.ensure_ascii = False
app.register_blueprint(routes.app_blueprint_film)
app.register_blueprint(routes.app_blueprint_user)
if __name__ == '__main__':
app.run(host='localhost', port=8080)
**app.routes.py**
from flask import Blueprint
from filmorate.app.view.FilmController import FilmController
from filmorate.app.view.UserController import UserController
app_blueprint_film = Blueprint('films', __name__)
FilmController.register(app_blueprint_film)
app_blueprint_user = Blueprint('users', __name__)
UserController.register(app_blueprint_user)
**app.view.FilmController.py**
from flask import request
from filmorate.model.Film import Film
from flask_classy import FlaskView, route
from filmorate.app.service.FilmService import FilmService
class FilmController(FlaskView):
pass