找回密码
 会员注册
查看: 36|回复: 0

跟着暴躁哥学Pythonhttp.server:快速搭建你的本地服务器

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
64104
发表于 2024-9-13 13:36:26 | 显示全部楼层 |阅读模式
你有没有想过,就在你的电脑上,用几行代码就能搭建一个服务器?没错,不需要复杂的Apache、Nginx,Python的http.server模块就能让你快速起飞。今天,暴躁哥就带你快速入门!1.为啥用http.server?简单!快!烦那些花里胡哨的东西?http.server是你的最佳选择。不用装一堆乱七八糟的东西,Python自带的,开箱即用!2.基本使用看这里,一行命令:python-mhttp.server完了,你的电脑现在就是个服务器了,端口是8000。打开浏览器,输127.0.01:8000,看看是不是有东西?如果你需要换一个端口,比如8001。你可以这样:python-mhttp.server80013.自定义服务器“这样太简单了,我要自定义!”没问题!来自定义一个:比如我们加上一个"/hello"路由。fromhttp.serverimportHTTPServer,SimpleHTTPRequestHandlerclassMyHandler(SimpleHTTPRequestHandler):defdo_GET(self):ifself.path=='/hello':self.send_response(200)self.end_headers()self.wfile.write(b"Hello,world!")else:super().do_GET()#其他请求就用默认的处理方式server_address=('',8008)httpd=HTTPServer(server_address,MyHandler)httpd.serve_forever()再复杂点儿,需要加上简单的POST请求。importcgifromhttp.serverimportHTTPServer,SimpleHTTPRequestHandlerclassMyHandler(SimpleHTTPRequestHandler):defdo_GET(self):ifself.path=='/hello':self.send_response(200)self.end_headers()self.wfile.write(b"Hello,world!")else:super().do_GET()#其他请求就用默认的处理方式defdo_POST(self):ifself.path=='/submit':form=cgi.FieldStorage(fp=self.rfile,headers=self.headers,environ={'REQUEST_METHOD':'POST'})message=form.getvalue('message')self.send_response(200)self.end_headers()response=f"Messagereceived:{message}"self.wfile.write(response.encode())else:self.send_error(404,"Filenotfound")if__name__=='__main__':server_address=('',8008)print(f"serverstartathttp://127.0.0.1:{server_address[1]}")httpd=HTTPServer(server_address,MyHandler)httpd.serve_forever()POST数据到/submit,服务器就会回你一条信息。4.实际应用别闹了,这东西就是用来快速测试一些静态文件的。你要是真想建网站,还是老老实实用Django或Flask吧。5.结束了!行了,你现在知道基本的用法了。去试试吧,别问我为什么不讲得更细致,暴躁哥时间宝贵,这些够你玩儿一阵子的了!看见了吧,用Python的http.server搭建服务器,简单快捷,不需要太多复杂操作。当然,这只是适合快速测试和学习,如果你想要更专业的服务器功能,还是需要使用专业的Web框架。别废话,赶紧去试试!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 12:29 , Processed in 3.777276 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表