BaseHTTPServer serving Gziped content

BaseHTTPServer 使用 gzip 压缩处理 html/xml 文档。

import cStringIO, gzip
zbuf = cStringIO.StringIO()
zfile = gzip.GzipFile(mode='wb', compresslevel=6, fileobj=zbuf)
zfile.write(xmlstring)
zfile.close()

compressed_content = zbuf.getvalue()

self.send_response(200)
self.send_header("Content-Type", "text/xml")
self.send_header("Content-Length", str(len(compressed_content)))
self.send_header("Content-Encoding","gzip")
self.end_headers()
self.wfile.write(compressed_content)
self.wfile.flush()

妈,生日快乐;妹,生日快乐

太失败了,居然忘掉了妈和妹妹的生日,忘的一干二净,过了十天才想起来。

早上给家里打电话,爸说忘了就忘了呗,泪水一下子出来。

妈,生日快乐,身体健康!

妹,生日快乐,开开心心每一天!

想家了,想你们了。

Get parameters from BaseHTTPServer http POST request

Get parameters from BaseHTTPServer http POST request. 获取 BaseHTTPServer.BaseHTTPRequestHandler POST 请求参数。

def do_POST(self):
    params = cgi.parse_qs(self.rfile.read(int(self.headers.getheader('Content-Length'))))

Happy Birthday to My Girl!

妞妞生日快乐!

爱你乖~

到底是怎么了?

为什么面试的时候不会就说不会不懂就是不懂实话实说的人频频被人鄙视,而不会装会不懂装懂满嘴跑火车吹的天花乱坠好像自己有多牛逼不要我就是你公司一大损失的人却能受面试官喜欢呢?是我们太老实还是太傻?

有感于丫头面试。

The _imaging C module is not installed

Download jpeglib.

cd jpeg-7
sudo make clean
sudo CC="gcc -arch i386" ./configure --enable-shared --enable-static
sudo make
sudo make install

Download PIL.

sudo rm -Rf build
//Edit JPEG_ROOT = libinclude("/usr/local") in setup.py
sudo python setup.py build
sudo python setup.py install

Get the server IP of BaseHTTPServer.BaseHTTPRequestHandler

获取 BaseHTTPServer.BaseHTTPRequestHandler 请求服务器的 IP。

serveradress = re.findall('Host: (.*?)\r\n',str(self.headers))

Show PIL image object in browser

在浏览器显示 PIL 处理过的图片对象。

Using PIL module, you can resize or crop an image and return an image object. After that, I want to show the resized-image-object in browser. Here it is.

pic = thumbPicture()
f = StringIO()
pic.save(f,'JPEG')
f.seek(0)
shutil.copyfileobj(f,self.wfile)
self.sendHeader(contenttype = 'image/jpeg',contentlength = f.tell())
f.close()

Get parameters from BaseHTTPServer http GET request

BaseHTTPHandler from the BaseHTTPServer module doesn’t seem to provide any convenient way to access http request parameters. What is the best way to parse the GET parameters from the path, and the POST parameters from the request body?

Right now, I’m using this for GET:

parsed_path = urlparse.urlparse(self.path)
try:
    params = dict([p.split('=') for p in parsed_path[4].split('&')])
except:
    params = {}

还有很长的路要走

自己现在的技术掌握太糙了。

整体上,难以把握整体结构设计,各个模块功能设计,各模块间通信传输等等。

细节上,Python 如此简洁优美的语法让我写的是惨不忍睹,Python 自带的模块、函数还很不熟悉。

我才刚刚上路。