Не удается импортировать модуль для запуска основного приложения Flask - PullRequest
0 голосов
/ 09 мая 2019

Итак, я следую учебнику для начинающих по Flask и по какой-либо причине получаю сообщение об ошибке, что по сути является самым первым шагом.

Сначала я создал каталог «app», в котором я создал файл python для « init .py», который содержит следующий код:

from flask import Flask

app = Flask(__name__)

from app import routes

Затем я создал файл Python "rout.py" в том же каталоге:

from app import app


@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"

Наконец (и отсюда проблема), я создал файл python с именем «microblog.py», который находится в той же папке, что и каталог «app»:

from app import app

Затем я иду в свою виртуальную среду и запускаю (используя cmd windows):

set FLASK_APP=microblog.py

Пока все хорошо, но когда я пытаюсь запустить следующий код в cmd:

flask run

Я получаю следующую ошибку:

ImportError: cannot import name 'app' from 'app' (C:\Users\Grae_\microblog\app\__init__.py)

Если требуется какое-либо дальнейшее разъяснение, вот мои местоположения файлов:

C:\Users\Grae_\microblog
C:\Users\Grae_\microblog\app
C:\Users\Grae_\microblog\__init__.py
C:\Users\Grae_\microblog\routes.py
C:\Users\Grae_\microblog\venv
C:\Users\Grae_\microblog\microblog.py

Извиняюсь, если это действительно очевидно, я просто, очевидно, очень плохо знаком с Flask и застрял на этом некоторое время.

Спасибо

Ответы [ 2 ]

0 голосов

Вы можете сделать что-то вроде этого: -

test.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    return "Index!"

@app.route("/hello")
def hello():
    return "Hello World!"

@app.route("/members")
def members():
    return "Members"

@app.route("/members/<string:name>/")
def getMember(name):
    return name</string:name>

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

В командной строке выполните команду-

python test.py 

Попробуйте URL-адреса вВаш браузер:

http://127.0.0.1:5000/

http://127.0.0.1:5000/hello

http://127.0.0.1:5000/members

http://127.0.0.1:5000/members/Karan/

0 голосов
/ 09 мая 2019

Проблема здесь в пакете python "app".В каталоге должен быть файл с именем __init__.py вместо init.py.

Например, вы переименовываете файл init.py в __init__.py и заменяете содержимое следующим кодом:

from flask import Flask

app = Flask(__name__)


def start():
    from app import routes


start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...