Python / Flask: ImportError: Невозможно импортировать имя «app» из «core» - PullRequest
0 голосов
/ 08 июля 2019

Я застрял на этом в течение 3 часов, и решения, которые я нашел в Google, не помогли вообще. Я использую Flask и моя файловая структура выглядит так:

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

Я не совсем уверен, когда произошла ошибка, но вот все мои операции импорта (они перечислены вверху каждого файла):

В run.py:

from core import app

In __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

1 Ответ

0 голосов
/ 08 июля 2019

Лучший подход - использовать чертежи.Это делает ваше приложение модульным и с ним легко работать.Проверьте документы здесь Модульные приложения с Blueprints В целом ваше приложение может работать с этой настройкой: Структура папки: ├──|core │ ├── __init__.py │ ├── routes.py │ ├── static │ └── templates ├── run.py └── venv init .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

run.py


from core import create_app

class Config:
    DEBUG = True

app = create_app(Config)

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

rout.py


from flask import Blueprint

main = Blueprint('main', __name__)

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