我正在终端中运行以下简单命令:
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)
当我第一次尝试这种方法时,它工作得很好。但是后来我关闭了终端。第二次尝试运行此python文件时,无法再连接到localhost:8000。
同样的问题不断出现。 有时它工作正常,我看到了我想要的页面。为什么呢?
问题: 我是从virtualMachine还是从macOS系统运行Web服务器?
答案 0 :(得分:1)
首先,在您的项目文件中创建一个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
答案 1 :(得分:0)
也许什么都不出来,因为它是一个空服务器?您没有HTML内容。
您可以这样做
mkdir /tmp/www
echo 'It works' > /tmp/www/index.html
python -m http.server 8080 --directory /tmp/www
在新终端中
curl -v http://localhost:8080
您应该看到一些东西