Python 官方文档:入门教程 => 点击学习
前端的开发的html给我们的时候,由于内部有一些ajax请求的.JSON的数据,需要在一个WEB server中查看,每次放到Http服务器太麻烦。还是直接用python造一个最方便。 最简单的,直接用python3 -m http.se
前端的开发的html给我们的时候,由于内部有一些ajax请求的.JSON的数据,需要在一个WEB server中查看,每次放到Http服务器太麻烦。还是直接用python造一个最方便。
最简单的,直接用python3 -m http.server
但是我在测试的时候发现在收到json数据的时候,由于content-type不对,部分内容显示不出来,于是写出来新版本.
这个版本加了几种常见的mimetype的支持。
在Mac下使用Python3 myhttpserver.py
启动。
#!/usr/bin/env python
#--coding:utf-8--
from http.server import BaseHTTPRequestHandler, HTTPServer
from os import path
from urllib.parse import urlparse
curdir = path.dirname(path.realpath(__file__))
sep = '/'
# MIME-TYPE
mimedic = [
('.html', 'text/html'),
('.htm', 'text/html'),
('.js', 'application/javascript'),
('.CSS', 'text/css'),
('.json', 'application/json'),
('.png', 'image/png'),
('.jpg', 'image/jpeg'),
('.gif', 'image/gif'),
('.txt', 'text/plain'),
('.avi', 'video/x-msvideo'),
]
class testHTTPServer_RequestHandler(BaseHTTPRequestHandler):
# GET
def do_GET(self):
sendReply = False
querypath = urlparse(self.path)
filepath, query = querypath.path, querypath.query
if filepath.endswith('/'):
filepath += 'index.html'
filename, fileext = path.splitext(filepath)
for e in mimedic:
if e[0] == fileext:
mimetype = e[1]
sendReply = True
if sendReply == True:
try:
with open(path.realpath(curdir + sep + filepath),'rb') as f:
content = f.read()
self.send_response(200)
self.send_header('Content-type',mimetype)
self.end_headers()
self.wfile.write(content)
except IOError:
self.send_error(404,'File Not Found: %s' % self.path)
def run():
port = 8000
print('starting server, port', port)
# Server settings
server_address = ('', port)
httpd = HTTPServer(server_address, testHTTPServer_RequestHandler)
print('running server...')
httpd.serve_forever()
if __name__ == '__main__':
run()
--结束END--
本文标题: Python3实现简单的http ser
本文链接: https://www.lsjlt.com/news/190805.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0