Проблема с flask при использовании Python 3.7.6 с vscode на mac - PullRequest
0 голосов
/ 02 апреля 2020

У меня странная проблема с кодом, который я хочу запустить. Сам код не должен быть проблемой, так как он загружается из класса Udemy и не изменяется:

# coding=utf-8
from flask import Flask, render_template, request
app = Flask(__name__)

@app.route("/")
def hello():
    items = ["Apfel", "Birne", "Banane"]

    return render_template("start.html", name="Max Mustermann", items=items)

@app.route("/test")
def test():
    name = request.args.get("name")
    return render_template("test.html", name=name)

Я обнаружил, что для запуска эмулируемого веб-сервера (?) Мне нужно выполнить следующие временные команды прежде чем я увижу вывод:

(базовый) Christophs-MBP: 13-23 chris $ export FLASK_APP = run.py run flask (базовый) Christophs-MBP: 13-23 chris $ export FLASK_APP = run.py run flask (базовый) Christophs-MBP: 13-23 chris $ export FLASK_APP = run.py (базовый) Christophs-MBP: 13-23 chris $ run flask bash: run: команда не найдена Нет реакции на мои команды терминала

В основном нет реакции на команду запуска сервера (?). Должен ответить «Запуск на 127.0.0.1:5000» как только я выполню команду один раз.

Если я go в своем браузере, при обращении к http://127.0.0.1: 5000 страница отсутствует. Что я делаю неправильно? Я довольно новичок в Python и абсолютная ладья ie относительно терминала. Не уверен, что я что-то там сломал, так как попытка установить pyenv для управления моими установками Python лучше, как рекомендует друг, также не работает (я не могу обновить заголовки SDK, как описано в Real Python

1 Ответ

0 голосов
/ 02 апреля 2020

Что такое операторы экспорта?

В Ma c, export key=value создает новую (или обновляет существующую) переменную среды - учебник, скорее всего, просто попросил вас указать, где key равно FLASK_APP, а значение - это путь к вашему приложению.

Чтобы убедиться, что оно сохранено правильно, вы можете перечислить переменные, просто набрав export в терминале и выяснить, что находится внутри каждой из переменных среды в вашей системе (если вы хотите просмотреть только FLASK_APP, вы можете набрать export | grep FLASK_APP).

Зачем вам нужен FLASK_APP?

Когда вы звоните flask run в своем терминале, вы увидите следующее сообщение:

Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py"
module was not found in the current directory.

Я предполагаю, что ваш файл называется run.py, поэтому ни одно из условий не выполняется встретил. Вы можете переименовать run.py в app.py и просто набрать flask run в терминале, но вы также можете набрать export FLASK_APP=<path-to-run.py>. Кажется, автор учебника решил сделать последнее. Помните, что если вы переименуете свой файл в app.py, вам нужно будет запустить flask run в каталоге, в котором находится файл. Вы можете изменить каталог в терминале с помощью команды cd.

Почему вы получаете bash: run: command not found?

bash - язык, работающий внутри вашего терминала, и он знает только несколько команд - он не знает ни о каких run командах. Однако он знает о команде flask после того, как вы установили ее на свой компьютер. В выходных данных команды есть часть, которая включает в себя команду run:

Commands:
  routes  Show the routes for the app.
  run     Run a development server.
  shell   Run a shell in the app context.

Поэтому вам нужно набрать flask run вместо просто run в вашем терминале.

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