【script】python3使用http.server搭建简易web服务

'''
更详细的web服务搭建可参考django:
https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial01/
'''

from http.server import HTTPServer, BaseHTTPRequestHandler
import json

class Resquest(BaseHTTPRequestHandler):
	def do_GET(self):
		'''
		处理get请求
		'''
		# 打印请求方法
		print(self.command)
		# 打印请求头
		print(self.headers)
		# 打印请求路径
		print(self.requestline)

		# 非访问根目录则返回404
		if self.path != '/':
			self.send_error(404, "Page not found!")
			return

		datas = {'HomePage':'Hey guy!!!'}
		self.send_response(200)
		self.send_header('Content-type', 'application/json')
		self.end_headers()
		self.wfile.write(json.dumps(datas).encode())

	def do_POST(self):
		'''
		处理post请求
		'''
		# 接收post数据
		req = self.rfile.read(int(self.headers['content-length']))
		req_datas = req.decode('utf-8')
		# 打印post数据
		# print(req_datas)
		
		# 处理post参数
		key, value = req_datas[:req_datas.find('=')], req_datas[req_datas.find('=') + 1:]
		res_datas = str({'key': key, 'value': value})

		# 返回响应头
		self.send_response(200)
		self.send_header('Content-type', 'text/plain')	# 返回结果为信息
		# self.send_header('Content-type', 'application/json')	# 返回结果为json
		# self.send_header('Content-type', 'application/text')	# 返回结果为文本文件
		self.end_headers()

		# 打印请求结果
		self.wfile.write(res_datas.encode('utf-8'))

if __name__ == '__main__':
	host = ('0.0.0.0', 80)
	server = HTTPServer(host, Resquest)
	print("[+] http://%s:%s\n" % host)
	server.serve_forever()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值