第一首先我们来一张架构以及运行过程的流程图
简单来说就是web服务器一直监听是否有来自用户的请求
1. 如果有请求判断请求得html文件是否存在
2. 存在就返回html文件给用户
3. 不存在就返回一个404的错误给用户
在这里还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴
效果
下面贴上这次实现的代码
#-*- coding:utf-8 -*-from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServerclass MyHandler(BaseHTTPRequestHandler): #继承BaseHTTPRequestHandler类里面所有的方法 def do_GET(self): try: #当服务器接收到GET请求后调用此方法并尝试打开客户端传来的路径('移除前导"/"') 如果一切正常就会return一个ok #比如我的url是 127.0.0.1/cehsi.html (第八行)会读取当前路径下面的ceshi.html files = open(self.path[1:],'r') self.send_response(200) #如果找到了就返回一个200 self.send_header('Content-type', 'text/html') #这个是数据的头部文件 self.wfile.write(files.read()) #读取html文件并返回给用户 files.close() #释放文件占用的系统资源 except: self.send_error(404, 'File not found: %s '% self.path) #如果报错就提示404 没有找到文件def main(): try: server = HTTPServer(('', 8088), MyHandler) #实例化对象server调用HTTPServer类 并传进去一个8088(socket服务监听的端口) 并把我们自己写的类传进去 print 'welcome to the machine...' #打印欢迎信息 print 'ctrl+c quit' #退出方法 server.serve_forever() #调用serve_forver方法让程序一直监听8088端口并循环等待用户请求 except KeyboardInterrupt: print 'ctrl+c received, shuttingdow server' #如果监听到键盘输入crtl+c就停止程序 server.socket.close()if __name__ == '__main__': main()
Html代码 ceshi.html
Title
网友评论