web server:What you get is what I put

本文详细解读了使用Twisted框架实现的Python Web服务器配置,包括资源管理、请求处理和响应格式设置,重点关注文件类型识别、缓存控制以及动态内容生成。
#!/usr/bin/env python from twisted.web import server,resource from twisted.internet import reactor import twisted import time import mimetypes import os from cStringIO import StringIO class Root(resource.Resource): def __init__(self): fd = open("google.jpg" , "rb") self.jpg = fd.read() resource.Resource.__init__(self) fd.close() def getChild(self,name,request): self.filename = name #print name if name == "b": print "name:b" request.setHeader("Cache-Control", "max-age=100") return self def render_GET(self,request): content_type = "text/html" #request.setHeader("Cache-Control", "max-age=1000") request.setHeader("Cache-Control", "private") request.setHeader("Cache-Control", "no-cache") data = StringIO() print "in request 1" print "file:%s"%(self.filename) if self.filename != "": filename_len = len(self.filename) #print filename_len if filename_len > 4: #print filename_len filename_ext = self.filename[filename_len-4:filename_len] if filename_ext == ".jpg": request.setHeader("Content-Type", "image/jpeg") #print filename_ext data.write(self.jpg) else: if filename_ext == ".htm": #data.write("is htm") filename_pre = self.filename[0:filename_len-4] html = self.gen_img_request(filename_pre) data.write(html) else: if filename_len > 5: filename_ext = self.filename[filename_len-5:filename_len] if filename_ext == ".html": filename_pre = self.filename[0:filename_len-5] #print filename_pre html = self.gen_img_request(filename_pre) data.write(html) #if filename_ext == ".html": else: request.setHeader("Content-Type", content_type) data.write("test abc") else: request.setHeader("Content-Type", content_type) data.write("test abc") #print request print "in request 2" return data.getvalue() def gen_img_request(self, filename_pre): data = "" try: value = int(filename_pre) cnt = value while cnt > 0: #data += """<img src= %d.jpg height=10 weight=10 />"""%(cnt) #data += """<img src= %d.jpg height=0 weight=0 />"""%(cnt) data += """<img src= %d.jpg />"""%(cnt) data += """<h1> %d </h1>"""%(cnt) cnt -= 5 except: data = "this is a test page" return data def render_POST(self,request): return self.render_GET(request) root = Root() site = server.Site(root) reactor.listenTCP(80, site) reactor.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值