Python: невозможно подключиться к localhost с помощью приложения flask - PullRequest
1 голос
/ 07 мая 2020

Я новичок в Flask, и мы запускаем простое веб-приложение в univeristy, где вы подключаетесь к локальному хосту и получаете простой текст Hello World. Однако, когда я пытаюсь запустить приложение после загрузки приложения flask с кодом ниже:

* Serving Flask app "my_app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Затем я нажимаю CTRL + C, чтобы выйти, а затем я пытаюсь запустить свое приложение для подключения к веб-страницу с помощью команды

curl localhost:5000/

, и я получаю сообщение об ошибке:

curl : Prefix of  URI not recognised.
  At line:1 char:1
    + curl localhost:5000/
    + ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotImplemented: (:) [Invoke-WebRequest], NotSupportedException
    + FullyQualifiedErrorId : 
    WebCmdletIEDomNotSupportedException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Я попытался изменить команду на curl.exe localhost: 500 /, но результат тот же . У меня есть следующий код для веб-приложения:

from flask import Flask
app = Flask(__name__)

 @app.route('/')
 def hello_world():
     return 'Hello World!'
 @app.route('/<name>')
 def hello_name(name):
     return f'Hello {name}!\n'

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

Я был бы признателен за вашу помощь в создании моего приложения. Заранее спасибо.

РЕДАКТИРОВАТЬ: проблема заключалась просто в том, что я завершил свое приложение, не открывая оболочку для подключения к локальному хосту. Большое спасибо за ответы

Ответы [ 3 ]

1 голос
/ 07 мая 2020

Вы сами это сказали:

Затем я нажимаю CTRL + C, чтобы выйти

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

Вам нужно оставить процесс запущенным, пока вы не захотите его завершить. Итак, go на другой терминал, не завершая сначала сервер, и тогда вы увидите, что curl удалось получить страницу.

1 голос
/ 07 мая 2020

Если я правильно понимаю вашу проблему, это то, что вы не можете получить ответ вашего веб-сайта с сервера.

Это имеет смысл. Вы запускаете свое приложение, а затем останавливаете его, нажав «CTRL + C».

Затем вы пытаетесь подключиться к серверу, который вы уже остановили. Вам нужно оставить сервер работающим (не нажимайте «CTRL + C»), затем используйте веб-браузер и введите http://0.0.0.0: 5000 / , и вы должны снова увидеть свой «привет, мир» .

Также вы можете открыть отдельную вкладку в терминале / командной строке и использовать команду curl.

0 голосов
/ 07 мая 2020

Вы закрываете приложение. Вместо этого нажмите CTRL + T , чтобы открыть новую вкладку.

...