在 python 代码中使用 http.server 命令行

在命令行中,我们可以这样做:
$ python3 -m http.server 8674
但在 Python 代码中(在 .py 中),如何做到这一点?
别用os.system!我打算在 exe 中使用它,但会失败。
PPS 不要建议这个。真正来自代码,而不是命令行。

潇潇雨雨
浏览 164回答 2
2回答

开满天机

您所要做的就是导入http.server默认模块。from http.server import HTTPServer, SimpleHTTPRequestHandlerdef run(number=8080, server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler):    server_address = ('', number)    httpd = server_class(server_address, handler_class)    try:        httpd.serve_forever()    except KeyboardInterrupt:        print("Exit")有关详细说明,请参阅Python 文档。

撒科打诨

通过使用这两个模块,可以通过 Python 程序轻松地为网站提供服务:http.server(用于 http)套接字服务器(用于 TCP 端口)这是工作代码的示例:# File name:&nbsp; web-server-demo.pyimport http.serverimport socketserverPORT = 8080Handler = http.server.SimpleHTTPRequestHandlerwith socketserver.TCPServer(("", PORT), Handler) as httpd:&nbsp; &nbsp; print("serving the website at port # ", PORT)&nbsp; &nbsp; httpd.serve_forever()示例 index.html 文件:<!DOCTYPE html><html>&nbsp; <head>&nbsp; &nbsp; <title>Website served by Python</title>&nbsp; </head>&nbsp; <bod>&nbsp; &nbsp; <div>&nbsp; &nbsp; &nbsp; <h1>Website served by Python program</h2>&nbsp; &nbsp; </div>&nbsp; </body></html>输出:> python web-server-demo.pyserving the website at port #&nbsp; 8080127.0.0.1 - - [25/May/2020 14:19:27] "GET / HTTP/1.1" 304 -
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python