游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

如何WsgiServer。py搭建服务器

  目的:搭建最简单的服务器框架(访问本地静态和动态资源)
  一、大致思路:
  1、创建监听套件
  2、绑定本地信息(IP和port)
  3、使用listen改变监听状态
  4、等待客户端(浏览器)的链接,并创建为客户端服务的服务套接字(使用多进程调用服务方法为客户端服务)
  5、服务方法:获取客户端发送的数据使用正则表达式匹配客户端发送的信息,获得服务端需要的信息
  访问静态网页,直接本地匹配资源地址,读取并发送给客户端(浏览器)
  访问动态资源,调用框架的application方法,获取框架返回的数据,组装成相应数据,发送给客户端(浏览器)
  上代码:
  WsgiServer。pyfromsocketimportimportre,multiprocessing,timeimportminiframeclassWSGIServer(object):definit(self):1、创建监听套件self。serversocketsocket(AFINET,SOCKSTREAM)self。serversocket。setsockopt(SOLSOCKET,SOREUSEADDR,1)self。serversocket。setblocking(False)2、绑定本地IP和port信息,本地信息使用元组格式self。serversocket。bind((,8080))3、使用listen改变监听状态,设置监听容量self。serversocket。listen(128)defclientsever(self,newsocket):5、获取客户端发送的信息,并设置接收数据字节大小requestnewsocket。recv(1024)。decode(utf8)6、使用正则表达式匹配客户端发送的信息,获得服务端需要的信息,本地匹配资源地址gre。match(r〔〕(〔〕)s,request)ifg:filenameg。group(1)7、根据匹配结果,在本地进行操作打开本地资源,读取本地数据作为响应体ifnotfilename。endswith(。py):try:执行代码withopen(filename,rb)asf:responsebodyf。read()except:发生异常时执行responsebodyh1helloworld!notfoundh1。encode(utf8)finally:不管有没有异常时,都会执行代码responseheaderHTTP1。1rresponseheaderrprint(filename)组装本地数据responseresponseheader。encode(utf8)responsebody8、发送匹配后的本地资源给客户端newsocket。send(response)9、关闭客户端链接字,结束服务,等待下一个客户端链接。newsocket。close()else:调用框架的application方法,传递字典和类方法,支持wsgi协议envdict()env〔pathinfo〕filenameresponsebodyminiframe。application(env,self。startresponse)组装响应头,注意,每行数据后面必须加rresponseheaderHTTP1。1{}r。format(self。status)foriinself。hearders:responseheader{}:{}r。format(i〔0〕,i〔1〕)responseheaderrresponseresponseheaderresponsebodynewsocket。send(response。encode(utf8))9、关闭客户端链接字,结束服务,等待下一个客户端链接。newsocket。close()defstartresponse(self,status,hearders):保存框架返回的状态码和响应头,为类属性,方便后续调用self。statusstatusself。heardersheardersdefrunforever(self):whileTrue:4、接收服务端链接,创建为客户端服务的客户端套接字newsocket,clientaddrself。serversocket。accept()创建进程为客户端服务pmultiprocessing。Process(targetself。clientsever,args(newsocket,))p。start()关闭客户套接字newsocket。close()defmain():控制整体,创建一个web服务器对象,然后调用一个方法来执行wWSGIServer()w。runforever()ifnamemain:main()miniframe。pyimporttimedeflogin():return这是登录页,当前时间:{}。format(time。ctime())defindex():return这是主页,当前时间:{}。format(time。ctime())defapplication(env,startresponse):调用传递过来的方法,返回响应状态码和头部信息startresponse(200OK,〔(ContentType,texthtml;charsetUTF8)〕)ifenv〔pathinfo〕login。py:returnlogin()elifenv〔pathinfo〕index。py:returnindex()else:returnhelloworld!冬天来了的body
  如果本文对你有帮助的话,可以点赞收藏关注一波哦,感谢你的支持
  原文链接:https:blog。csdn。netm055415810articledetails121978705

QQ邮件订阅订阅中心等功能将于近期下线感谢IT之家网友桃花运的线索投递!IT之家7月16日消息QQ邮箱中的QQ邮件订阅、订阅中心以及阅读动态均将于近期下线。IT之家了解到,QQ邮件订阅是QQ邮箱的一项特……腾讯回应QQ账号被无故冻结问题已修复,深表歉意IT之家7月15日消息今日下午,腾讯就QQ账号被无故冻结一事作做出回应称,对此问题,其已经修复完毕,目前可正常使用。今天中午,出现了部分用户无法正常登录QQ的情况。对此问……滴滴公交在云南推动态巴士,可预约车辆和座位7月16日消息,滴滴公交近日在云南昆明、大理、宜良三地开通动态巴士在线预约服务,覆盖城市聚合点、大型枢纽、旅游、跨城等多种出行场景。据悉,动态巴士是由滴滴公交与线下客运服……阿里速卖通俄罗斯公司34年内上市,营业额将达100亿美元北京时间7月10日晚间消息,据国外媒体报道,全球速卖通(AliExpress)俄罗斯公司CEO德米特里谢尔盖夫(DmitrySergeev)今日表示,该公司计划在未来34年内进……QQ音乐UWP测试版4。0。1更新新增MV播放和Flac格式感谢IT之家网友肖战割割的线索投递!IT之家11月24日消息根据网友投稿,QQ音乐UWP测试版现已更新4。0。1,支持了微信登陆,新增MV播放和Flac格式下载。Q……透镜教学反思透镜是用透明物质制成的表面为球面一部分的光学元件,镜头是由几片透镜组成的,有塑胶透镜和玻璃透镜两种,玻璃透镜比塑胶贵。以下是小编整理的关于透镜教学反思,欢迎阅读参考。透镜教学反……美的燃气灶爆炸事件调查结果公布产品无质量问题,低概率事件9月8日下午消息,美的燃气灶爆炸事件有了最新进展。事件当事人微博认证为知名IT与知识产权律师赵占领在其个人微博发布了调查结果,并表明了自己对调查结果的看法。赵占领微博……体验买齐小米之家全套产品共花费69万元IT之家11月29日消息小米如今早已不是一家只生产智能手机的公司,随着其涉及的领域越来越广,小米线上商城及线下小米之家也被大家戏称为小米杂货铺,产品横跨家电、PC、IoT、配件……微信视频号治理违法违规内容今年累计处置超9509个色情低俗动IT之家3月14日消息微信安全中心本周发布了《微信视频号对违法违规内容的治理公告》。公告指出,2021年1月至今,微信安全中心对涉及各类违规的视频号内容持续进行处理,累计……硅谷版黑镜亚马逊把仓库工作游戏化能缓解工人疲劳么北京时间3月16日早间消息,据报道,为了缓解仓库工人的乏味状态,同时提高工作效率,亚马逊正在拓展FCGames项目,即将仓库工作游戏化,而工人们对此褒贬不一。在亚马逊的几……半导体巨头瑞萨火灾初步调查结果电镀设备因电流过大起火IT之家3月22日消息3月21日,半导体巨头瑞萨电子就目前因火灾而停产的那珂工厂召开新闻发布会,瑞萨指出,茨城工厂起火时间是于当地时间3月19日凌晨2点47分,起火地点则是位于……5G基站休眠风波中国5G建设过快?华为高管称是噪声日前,洛阳联通将5G基站深夜休眠以降低功耗一事引发舆论风波,甚至有网友质疑中国运营商在5G建设上节奏过快。在近日举行的华为5机峰会上,华为无线网络产品线首席营销官甘斌在接……
农田里的数学除数是两位数的除法四年级数学上册教学反思今天我讲了:除数是两位数的除法,感觉教学效果不太好,反思教学过程,感悟颇多。早就听有经验的老师说过,这堂课不太好上,学生们接受的要慢一些,今天看来确实有一定的难度,本来教……小班体育活动教案教案小猴分桃子【活动目标】1、用重叠法比较两组物体的多少。2、找出一组物体多出的部分。3、从左至右摆放物体。4、锻炼幼儿快速跑的能力。【活动准备】1、每位……友爱思想品德教学反思范文从学生日常中反映出的倾向、问题去构思和组织教学活动是新基础教育思想品德教学的一种重要表现形式,因为这样的教学能产生直接、有影响的效果而在学生脑海中留下深刻印象,有力地促进他们积……小学二年级数学教案设计【教学目标】1、结合分一分的具体情境与经验,抽象出除法算式,体会除法运算的意义。2、掌握除法算式的读法、写法,并记住除法算式各部分的名称。3、会用除法算式表示……游戏公平教学反思范文本课内容属于《概率与统计》范畴,在此之前学生学习了可能性的大小,平时生活中也经常玩一些游戏,对游戏公平有一定的感性认识。为此,教材在编写上注重了活动性和可操作性。通过游戏公平的……Unitampnbsp14ampnbspFreedomampunit14freedomfighters单元练习小练。单项填空1。youcanusinthediscussionifyou。a。join;wishto……炮兽教案【教学重点和难点】结合雨果名句探究雨果场景创作的方法及场景设置的功能。【课时安排】一课时【教学过程】课前准备1,请学生上网查询雨果及39;浪……音乐走进京剧教案走近京剧一、教学目标:通过欣赏使学生初步了解国粹京剧的基础知识,并通过对唱念做打的模仿充分体验京剧艺术的魅力,激发学生对京剧传统戏曲艺术的自豪之感和热爱之情,宏扬中……孔子拜师教案一篇课文,不同的老师会写出不同的教案,一起来看看孔子拜师的教案吧,接下来小编为大家推荐的是孔子拜师教案相关内容,欢迎阅读。孔子拜师教案一学习目标1、正确、流利、有感……小学语文从现在开始教师教学设计【教学目标】1、认读9个生字,读准字音。2、会写:学写生字,重点写好现和轮。初步学会欣赏,感受汉字的形体美。培养良好的写字习惯。3、会读:……为中华之崛起而读书教案设计教学目标:1认识8个生字,会写12个生字。正确读写帝国主义、伯父、模范、风和日丽、灯红酒绿、热闹非凡、耀武扬威、巡警、吵嚷、得意扬扬、惩处、抱负、胸怀、喝彩、振兴中华等词……抛砖引玉的典故抛砖引玉是比喻用自己不成熟的意见或作品引出别人更好的意见或好作品。你们知道抛砖引玉有什么典故吗?下面是品学网小编为大家整理了抛砖引玉的典故,希望大家喜欢。抛砖引玉的典故唐……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网