title: How to avoid circular dependency using flask blueprints for a multiple view files
body: <p>I structured my app like the following using blueprints. The view files are 
  extremely huge so I divided them into multiple files.</p>
  
  <pre class="lang-sh prettyprint-override"><code>myapp/
      __init__.py
      admin/
          __init__.py
          views1.py
          views2.py
          views3.py
          views4.py
          static/
          templates/
      models/
          models.py
  </code></pre>
  
  <h1>myapp/<strong>init</strong>.py</h1>
  
  <pre class="lang-py prettyprint-override"><code>from flask import Flask
  from myapp.admin import admin_bp
  
  app = Flask(__name__)
  app.register_blueprint(admin_bp)
  </code></pre>
  
  <h2>myapp/admin/__init__.py</h2>
  
  <pre class="lang-py prettyprint-override"><code>from flask import Blueprint, g
  from flask_login import current_user
  
  admin_bp = Blueprint('admin', __name__, template_folder='templates')
  
  @admin_bp.before_request
  def load_logged_in_user():
      if current_user and not current_user.is_anonymous:
          user_name = current_user.user_name
          g.user = Account.get(user_name)
  
  from . import views1, views2, views3, views4
  </code></pre>
  
  <h2>myapp/admin/view1.py</h2>
  
  <pre class="lang-py prettyprint-override"><code>from . import admin_bp
  
  @admin_bp.route('/hello', methods=['GET'])
  def hello():
      return 'Hello'
  </code></pre>
  
  <p>This is working without any specific errors. But those view files and admin/__init__.py file are importing each other (circular dependency), which should be avoided. How to structure my app using blueprints without circular dependency?</p>