web server:What you get is what I put

12 篇文章 0 订阅
#!/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()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值