免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3463 | 回复: 0
打印 上一主题 下一主题

[Web] 使用Twisted实现一个简单Web服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-08 09:31 |只看该作者 |倒序浏览
我的原文发在Python版,这里也发一个,好增加点Python版的人气。希望支持。下面是原文:

作者:梅劲松
版权:本文档为MIT授权
运行环境ython 2.3+Twisted的py-23安装版本

自己实现Web服务器的优点就不用说太多了,主要是能控制具体的实现。也能按照自己的习惯实现互动方式。
而Twisted在tcp以下是C写的,ip和udp部分应该是C和Python的混合产物,而http smtp等则是Python的,自己能很好的扩充。
下面来看个具体的例子:
首先你需要编辑一个html为结尾的文件名放到你的htm目录下。
然后在htm的上一级目录建立一个文件,文件名为web.py,内容如下:
代码:

  1. PORT = 80#这个是80,如果你的端口被占用了,换成其他的                                                                     
  2.                                                             
  3.                                                                                 
  4. from twisted.web.resource import Resource                                       
  5. from twisted.web import server                                                   
  6. from twisted.web import static                                                   
  7. from twisted.internet import reactor
  8.                                                                                                               
  9.                                                       
  10. class ReStructured( Resource ):                                                                                                                                 
  11.    def __init__( self, filename, *a ):                                         
  12.        self.rst = open( filename ).read( )                                                                                                               
  13.                                                                                 
  14.    def render( self, request ):
  15.        return self.rst               
  16.                                                                                 

  17. resource = static.File('./htm/')                                                   
  18. resource.processors = { '.html'  : ReStructured }                              
  19. resource.indexNames = [ 'index.html']                                   
  20.                                                                                 
  21. reactor.listenTCP(                                                               
  22.        PORT,                                                                  
  23.        server.Site( resource )                                                
  24.        )                                                                       
  25. reactor.run( )

复制代码

在控制台下进入目录输入 python web.py,然后打开浏览器,输入http://127.0.0.1,看到你的站点了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP