【问题标题】:Python/Flask: ImportError: Cannot import name 'app' from 'core'Python / Flask:ImportError:无法从'core'导入名称'app'
【发布时间】:2019-07-08 04:01:07
【问题描述】:

我已经坚持了 3 个小时,我在 Google 上查找的解决方案根本没有帮助。我正在使用 Flask,我的文件结构是这样的:

| run.py
|
| core |
     __init__.py
    routes.py
    templates |
             ... (html)
    static |
          ... (js/css)

我不确定错误发生的时间,但这是我的所有导入(它们列在每个文件的顶部):

run.py:

from core import app

__init.py__:

from core import app, routes
from flask import Flask
from flask_htmlmin import HTMLMIN

from flask_dance.contrib.google import make_google_blueprint
import os

routes.py:

from flask import render_template, redirect, url_for, request, abort
from core import app, blueprint
from werkzeug.exceptions import HTTPException

from flask_dance.contrib.google import google
import requests

Error

【问题讨论】:

  • 你有一个循环导入和一个相同模块的导入。

标签: python flask python-import


【解决方案1】:

最好的方法是使用蓝图。它使您的应用程序模块化并且易于使用。在此处查看文档Modular applications with Blueprints 总之,您可以让您的应用程序使用此设置: 文件夹结构: ├──|core │   ├── __init__.py │   ├── routes.py │   ├── static │   └── templates ├── run.py └── venv 初始化.py


from flask import Flask
from .routes import main
from flask_htmlmin import HTMLMIN 

from flask_dance.contrib.google import make_google_blueprint
import os

def create_app(config_obj=None):
    app = Flask(__name__)
    app.config.from_object(config_obj)

    # register the blueprints
    app.register_blueprint(main)

    return app

运行.py


from core import create_app

class Config:
    DEBUG = True

app = create_app(Config)

if __name__ == '__main__':
    app.run()

routes.py


from flask import Blueprint

main = Blueprint('main', __name__)

@main.route('/')
def index():
    return 'My awesome index page!'

【讨论】:

  • 谢谢,我会调查一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 2014-09-21
  • 1970-01-01
  • 2021-11-26
  • 2020-12-06
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多