python默认自带了几个和web相关的模块。原来只知道SimpleHTTPServer 这个模块,后来又知道了 CGIHTTPServer 这个模块

  • SimpleHTTPServer 
  • 1 python -m  SimpleHTTPServer 80 

    在命令行里键入上面的命令就有了一个简单的HTTP服务器了,服务器的端口是 80 (也可以是别的,如果80端口被占用了)

   -m 的意思就是 module,web的根目录是命令行的当前目录  (win7 下 在一个文件夹空白的地方 shift+鼠标右键  会出现在此处打开命令行,再输入上面的例子就可以把当前目录作为web的根目录)

    打开浏览器,输入 http://localhost:80 即可看到文件夹下的目录和文件。

  1.     在忘记带u盘时,可以简单的做一个文件共享。
  2.            多看系统的wifi传书应该也是这个原理。
  3.            还可以简单的测试一下网页是否正常
  4.            如果文件夹下有index.html 就会自动打开作为首页
  • CGIHTTPServer
  • 1 python -m CGIHTTPServer 80 

    命令的解释和上面差不多,这次启动的是CGI (Common Gateway Interface)服务器,CGI 程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行。

       python cgi 编程

          用上面的命令启动的 CGI服务器,web的根目录还是命令行的当前目录。但是如果直接把cgi的脚本放在当前目录下面是不能执行的,必须新建一个文件夹叫做cgi-bin,把脚本都放在这个目录下才能执行

    通俗的来说就是通过web去调用一个本地的程序,然后再把结果输出到web,就是这样一个交互的过程。有关python的CGI编程可以参考这个网站:http://www.w3cschool.cc/python/python-cgi.html上面的代码有好多是不能直接运行的,需要修改

     下面给出一个例子:

   起源:亚马逊的商品的图片的大小、旋转都是url query里面的参数控制的  可以看这个网址http://aaugh.com/imageabuse.html

   现在我们要模拟下那个大小的参数

  

 1 #coding:utf-8
 2 import cv,cv2
 3 import cgi,cgitb
 4 
 5 form = cgi.FieldStorage()
 6 size = form.getvalue('s')
 7 
 8 print "Content-Type:image/jpeg\r\n",
 9 print    #必须有  header的格式
10 
11 if size in ['big','small']:
12     img = cv2.imread('cgi-bin/1.jpg')
13     if size == 'big':
14         resized = cv2.resize(img,(img.shape[1]*2,img.shape[0]*2))
15     elif size == 'small':
16         resized = cv2.resize(img,(img.shape[1]/2,img.shape[0]/2))        
17     cv2.imwrite("cgi-bin/resized.jpg",resized)
18     f = open('cgi-bin/resized.jpg','rb')
19     print f.read(-1)
20     f.close()
21 else:
22     f = open('cgi-bin/1.jpg','rb')
23     print f.read(-1)
24     f.close()
View Code

相关文章: