Python 无法从浏览器访问localhost:8080

Python 无法从浏览器访问localhost:8080,python,Python,我正在终端中运行以下简单命令: python -m http.server 8080 但当我尝试访问localhost:8080时,什么也没有出现。为什么会发生这种情况?有人能帮我吗 提前谢谢 当我尝试Udacity课程提供的另一个python代码时: #!/usr/bin/env python3 # # A buggy web service in need of a database. from flask import Flask, request, redirect, url_fo

我正在终端中运行以下简单命令:

python -m http.server 8080
但当我尝试访问localhost:8080时,什么也没有出现。为什么会发生这种情况?有人能帮我吗

提前谢谢

当我尝试Udacity课程提供的另一个python代码时:

#!/usr/bin/env python3
# 
# A buggy web service in need of a database.

from flask import Flask, request, redirect, url_for

from forumdb import get_posts, add_post

app = Flask(__name__)

# HTML template for the forum page
HTML_WRAP = '''\
<!DOCTYPE html>
<html>
  <head>
    <title>DB Forum</title>
    <style>
      h1, form { text-align: center; }
      textarea { width: 400px; height: 100px; }
      div.post { border: 1px solid #999;
                 padding: 10px 10px;
                 margin: 10px 20%%; }
      hr.postbound { width: 50%%; }
      em.date { color: #999 }
    </style>
  </head>
  <body>
    <h1>DB Forum</h1>
    <form method=post>
      <div><textarea id="content" name="content"></textarea></div>
      <div><button id="go" type="submit">Post message</button></div>
    </form>
    <!-- post content will go here -->
%s
  </body>
</html>
'''

# HTML template for an individual comment
POST = '''\
    <div class=post><em class=date>%s</em><br>%s</div>
'''


@app.route('/', methods=['GET'])
def main():
  '''Main page of the forum.'''
  posts = "".join(POST % (date, text) for text, date in get_posts())
  html = HTML_WRAP % posts
  return html


@app.route('/', methods=['POST'])
def post():
  '''New post submission.'''
  message = request.form['content']
  add_post(message)
  return redirect(url_for('main'))


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

#/usr/bin/env蟒蛇3
# 
#需要数据库的错误web服务。
从烧瓶导入烧瓶,请求,重定向,url\u
从forumdb导入获取帖子,添加帖子
app=烧瓶(名称)
#论坛页面的HTML模板
HTML_WRAP=''\
DB论坛
h1,表单{text align:center;}
text区域{宽度:400px;高度:100px;}
分区邮政{边界:1px实心#999;
填充:10px 10px;
利润率:10px 20%;}
hr.postbound{宽度:50%;}
em.date{color:#999}
DB论坛
留言
%
'''
#单个注释的HTML模板
POST=''\
%s
%s ''' @app.route('/',方法=['GET']) def main(): “论坛主页” posts=”“.join(在get_posts()中的文本、日期的POST%(日期、文本) html=html\u换行%posts 返回html @app.route('/',methods=['POST']) def post(): “新帖子提交” message=request.form['content'] 添加帖子(消息) 返回重定向(url_for('main')) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 应用程序运行(主机=0.0.0.0',端口=8000)
当我第一次尝试这个方法时,效果很好。但后来我关闭了航站楼。第二次尝试运行此python文件时,我无法再连接到localhost:8000

同样的问题不断出现。 有时它工作得很好,我看到了我想要的页面。为什么呢

问题:
我是从virtualMachine还是从macos系统运行Web服务器?

首先,在项目文件中创建一个python文件(server.py)

将下面的代码复制到server.py中

import http.server
import socketserver

PORT  = 8080

Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(("",PORT), Handler)
print("Server at PORT : ",PORT)
httpd.serve_forever()
之后,运行以下代码命令=>


python server.py

可能因为它是一个空服务器而什么也没有出现?您没有HTML内容

你可以这样做

mkdir /tmp/www
echo 'It works' > /tmp/www/index.html
python -m http.server 8080 --directory /tmp/www
在一个新的航站楼

curl -v http://localhost:8080

你应该看到一些东西

为什么你认为8080应该响应?这不是HTTP或HTTPS。我只知道Jenkins会默认使用这个端口。我不太明白,但是Udacity中的这个类说服务器应该响应?我在mt终端中看到了这一点:
在0.0.0.0端口8080上提供HTTP服务(http://0.0.0.0:8080/)…
但是服务器没有收到任何类型的请求。@FrankMerrow errr。。。什么?http未与端口80绑定;这只是默认值所以…?我怎样才能修复它?它困扰了我几个小时,所有的谷歌结果都不起作用。你试过了吗?但是,嗯,你能告诉我我的python代码有什么问题吗?@Rachel_Miller最初的错误来自这样一个事实:服务器的属性是一个需要字节输入的对象。您可以通过以下方法解决此问题:
output=b“Hello!”
噢,我不知道self.wfile属性是一个bufferedobase对象。我照你说的做了,修改了我的代码,现在它完全可以工作了。谢谢注意:这是不安全的@RachelIn将军,使用web框架哦,嗯。。我之前遇到的问题实际上已经解决了。但我对使用web框架完全感兴趣。一个简单的问题,它对Beginner是友好的吗?框架的设计要比标准API更友好,是的。Flask是一款很受欢迎的入门产品,很多公司都在生产中使用它。谢谢!我只是想学习网络编程。我去看看。