没有名为http.server的模块 [英] no module named http.server

查看:171
本文介绍了没有名为http.server的模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的网络服务器类:

here is my web server class :

import http.server  
import socketserver

class WebHandler(http.server.BaseHTTPRequestHandler):

    def parse_POST(self):
        ctype, pdict = cgi.parse_header(self.headers['content-type'])
        if ctype == 'multipart/form-data':
            postvars = cgi.parse_multipart(self.rfile, pdict)
        elif ctype == 'application/x-www-form-urlencoded':
            length = int(self.headers['content-length'])
            postvars = urllib.parse.parse_qs(self.rfile.read(length),
                                             keep_blank_values=1)
        else:
            postvars = {}
        return postvars

    def do_POST(self):
        postvars = self.parse_POST()

        print(postvars)

        # reply with JSON
        self.send_response(200)
        self.send_header("Content-type", "application/json")
        self.send_header("Access-Control-Allow-Origin","*");
        self.send_header("Access-Control-Expose-Headers: Access-Control-Allow-Origin");
        self.send_header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
        self.end_headers()
        json_response = json.dumps({'test': 42})
        self.wfile.write(bytes(json_response, "utf-8"))

当我运行服务器时,在导入http.server后得到未定义名称'http'",然后我得到了这个无模块,名为http.server"

when i run server i got "name 'http' is not defined" after import http.server then i got this "no module named http.server"

推荐答案

http.server仅存在于Python 3中.在Python 2中,应使用

http.server only exists in Python 3. In Python 2, you should use the BaseHTTPServer module:

from BaseHTTPServer import BaseHTTPRequestHandler

应该可以正常工作.

这篇关于没有名为http.server的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆