__init__.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:sauna 作者: NicolasLM 项目源码 文件源码
def HandlerFactory(self):
        config = self.config

        class Handler(BaseHTTPRequestHandler):

            server_version = 'Sauna/' + __version__

            def do_GET(self):
                data = self.generate_response()
                self.wfile.write(data)

            def do_HEAD(self):
                self.generate_response()

            def generate_response(self):
                try:
                    content = self.get_content_from_path()
                    code = 200
                except NotFoundError:
                    content = {'error': 'Resource not found'}
                    code = 404

                self.send_response(code)
                if config['data_type'] == 'json':
                    self.send_header('Content-Type', 'application/json')
                    data = json.dumps(content).encode()
                elif config['data_type'] == 'html':
                    self.send_header('Content-Type', 'text/html')
                    from .html import get_html
                    data = get_html()
                else:
                    data = 'data type not found'.encode()
                self.send_header('Content-Length', len(data))
                self.end_headers()
                return data

            def get_content_from_path(self):
                if self.path == '/':
                    status, code = HTTPServerConsumer.get_current_status()
                    return {
                        'status': status,
                        'code': code,
                        'checks': HTTPServerConsumer.get_checks_as_dict()
                    }
                else:
                    raise NotFoundError()

            def log_message(self, format, *args):
                logger.debug(
                    '{} {}'.format(self.address_string(), format % args))

        return Handler
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号