• Python3实现简单的http server


     

    前端的开发的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'),
    ('.zip', 'application/zip'), ] 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 = 8080 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()
  • 相关阅读:
    使用微软TFS代码管理工具和在金山快盘上搭建SVN的使用方法
    微软的Windows8安装体验
    软件注册码随笔
    软件注册码(算法一DES)
    PHP连接SAE平台MYSQL
    一点一滴《C++处理数据》
    BouncyCastle.Crypto的RSA算法调用源码
    一点一滴《C++学习》
    软件注册码(算法二Rijndael)
    Web 应用程序的程序常见安全防范
  • 原文地址:https://www.cnblogs.com/timssd/p/5400381.html
Copyright © 2020-2023  润新知