"""/etc/python3

@File : IO_HTTP.py

@Time : 2020/7/18 下午3:26

@Author : wangyongqi

@Email : 92644827@qq.com

@SOftware : PyCharm"""

from socket import *

from select import *

importreclassWebServer:def __init__(self,host='0.0.0.0',port=8000,html=None):

self.host=host

self.port=port

self.html=html#做IO多路复用的并发模型

self.__rlist=[]

self.__wlist=[]

self.__xlist=[]

self.create_socket()

self.bind()defcreate_socket(self):

self.sock=socket()

self.sock.setblocking(False)defbind(self):

self.address=(self.host,self.port)

self.sock.bind(self.address)defstart(self):

self.sock.listen(5)print('Listen the port %d'%self.port)

self.__rlist.append(self.sock)whileTrue:

rs,ws,xs=select(self.__rlist,self.__wlist,self.__xlist)for r inrs:if r isself.sock:

connfd,addr=self.sock.accept()

connfd.setblocking(False)

self.__rlist.append(connfd)else:

self.handle(r)#处理客户请求

defhandle(self,connfd):

request=connfd.recv(1024*1024).decode('utf8')

pattern='[A-Z]+\s+(?P/\S*)'result=re.match(pattern,request)ifresult:

info=result.group('info')

self.send_requst(connfd,info)else:#断开客户端

self.__rlist.remove(connfd)

connfd.close()defsend_requst(self,connfd,info):try:

html= open(self.html+info,'rb')print(html)except:

hsstml= """/HTTP/1.1 200 ok

Content-tpe text/html

404"""connfd.send(hsstml.encode())

self.__rlist.remove(connfd)else:

html=html.read()

hsstml= "/HTTP/1.1 200 ok\r\n"hsstml+="Content-tpe text/html\r\n"hsstml+="Content-Length:%d\r\n"%len(html)

hsstml+='\r\n'hsstml=hsstml.encode()

hsstml+=html

connfd.send(hsstml)

self.__rlist.remove(connfd)

connfd.close()#html=html.read()

#url=info[1:]

#if url=='':

#hsstml = """/HTTP/1.1 200 ok

#Content-tpe text/html

# #404

#"""

#connfd.send(hsstml.encode())

#self.__rlist.remove(connfd)

# #else:

#try:

#html=open(url)

#except FileNotFoundError:

#hsstml = """/HTTP/1.1 200 ok

#Content-tpe text/html

# #404

#"""

#connfd.send(hsstml.encode())

#self.__rlist.remove(connfd)

#else:

#html=html.read()

#hsstml = f"""/HTTP/1.1 200 ok

#Content-tpe text/html

# #{html}

#"""

#connfd.send(hsstml.encode())

#self.__rlist.remove(connfd)

if __name__ == '__main__':"""1.使用流程

2.那些量需要用户决定,怎么传入

那组网页 服务端地址"""httpd=WebServer(host='0.0.0.0',port=8578,html='static')

httpd.start()

python发布_python网站发布相关推荐

  1. python发布_python如何发布模块

    一.准备发布 1.创建一个nester.py 模块,创建nester 文件夹将nester.py模块复制到这个文件夹 "# Author:guangqing" '''这是 &quo ...

  2. python抠图_python 网站自动抠图

    python 网站自动抠图 翻东西, 突然找到了以前用python写的自动下载网站图片的一个脚本 很好用, 如果修改的话, 只要将路径改成自己的即可! picdown.py #! /usr/bin/p ...

  3. 阿里辟谣:不会高薪聘请黑阿里网站的人;苹果欲用 iPhone 替代身份证和护照;Python 3.9.0b4 发布| 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...

  4. visualstudio发布网站到服务器,发布到网站 - Visual Studio (Windows) | Microsoft Docs

    使用 Visual Studio 将 Web 应用发布到网站 01/29/2019 本文内容 可以使用"发布"工具将 ASP.NET.ASP.NET Core..NET Core ...

  5. mqtt server python_使用python实现mqtt的发布和订阅

    需要安装的python库 使用python编写程序进行测试MQTT的发布和订阅功能.首先要安装:pip install paho-mqtt 测试发布(pub) 我的MQTT部署在阿里云的服务器上面,所 ...

  6. 伟创力回应扣押华为物资;谷歌更新图片界面;Python 3.8.0b3 发布 | 极客头条

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  7. Windows下python使用twine包发布模块

    本文讲解如何在Windows下,python使用twine包发布模块. 分享是美德 大Python有个模块发布功能,模板其实就是一个或多个函数打包的集合,当你写完一个函数,保存为.py文件后,可以进行 ...

  8. Python 3.11 终于发布了,性能大提升!

    来源:https://realpython.com/python311-new-features 推荐阅读:终于来了,[第三期] 彭涛Python 爬虫特训营!! 终于,Python 3.11 正式版 ...

  9. GWA2 in Python吉娃兔发布Python语言初始版本

    GWA2吉娃兔是一种跨编程语言的网络应用开发框架,在构建之初我们设想一套软件代码的组织.管理和使用方式方法,并希望这些设计思想能够使用各种常用的编程语言进行实现. 近二十年来较为流行的面向对象编程(O ...

最新文章

  1. 微信小程序用户未授权bug解决方法,微信小程序获取用户信息失败解决方法
  2. 并发编程之 源码剖析 线程池 实现原理
  3. HTTP 错误 404.3 – Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序...
  4. 机器学习实战读书笔记--k邻近算法KNN
  5. Ognl标签常用例子 只能在Struts2中使用
  6. 60、date的使用
  7. php 判断编码 错误,请教一个 PHP 代码出错的原因(一个简单的计算器)
  8. ssh服务及安全配置
  9. 深度学习基础 | 超详细逐步图解 Transformer
  10. 离线计算框架MapReduce
  11. 使用jsp:include嵌入页面的两种方式
  12. js/jquery 获取本地文件的文件路劲 获取input框中type=‘file’ 中的文件路径(转载)...
  13. js 笔记 -- 随机生成颜色值
  14. 云杰恒指:8.30恒指期货早盘资讯
  15. requests+正则表达式爬取豆瓣读书top250
  16. html表格变的能够输入法,Excel单元格怎么自动切换输入法 如何Excel中输入法的快速切换...
  17. 一个应用范德蒙行列式的例子
  18. Ubuntu16.04关机后自动重启解决方案
  19. Windows影子账户创立
  20. 写一个搜索引擎系统(Java版)

热门文章

  1. 恋与制作人 服务器错误,恋与制作人安装失败怎么办_恋与制作人安装失败解决方法_游戏吧...
  2. hadoop集群swap_hadoop集群调优-OS和文件系统部分
  3. windows7电脑删除文件特别慢怎么回事
  4. 微软协助谷歌开发ARM平台Chrome浏览器
  5. MQTT代理服务器特性对比
  6. DHCP租用信息导出方案
  7. 无尽包围html5游戏在线玩,小团体激发潜能小游戏突破自我
  8. dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化
  9. 现在学html4,HTML学习心得(4)
  10. matlab表示DFT和DTFT,【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系...