藉著這次工作上要寫一個update的功能,就順便學習一下 :)
首先在網路上找到下面這個: (server.py)
#!/usr/bin/env python import BaseHTTPServer import CGIHTTPServer import cgitb; cgitb.enable() ## This line enables CGI error reporting server = BaseHTTPServer.HTTPServer handler = CGIHTTPServer.CGIHTTPRequestHandler server_address = ("", 8000) handler.cgi_directories = ["/"] httpd = server(server_address, handler) httpd.serve_forever()然後,又在網路上找到下面這個: (test_cgi.py)
!/usr/bin/env python import cgi, cgitb form = cgi.FieldStorage() # Get data from fields first_name = form.getvalue('first_name') last_name = form.getvalue('last_name') print ("Content-type:text/html\r\n\r\n") print ("<html>") print ("<head>") print ("<title>Hello - Second CGI Program</title>") print ("</head>") print ("<body>") print ("<h2>Hello %s %s</h2>" % (first_name, last_name)) print ("</body>") print ("</html>")然後把這兩個東西放到你的網頁資料夾下, 以Ubuntu的apache2來說的話是在 /var/www 下。 稍為檢查一下權限,阿,不太會設,都給它755下去好了
chmod 755 server.py chmod 755 test_cgi.py
接下來就run server.py
./server.py
喔太棒了,block住了,看來應該是有在跑。
開個chrome驗證一下好了:
http://192.168.21.15:8000/test_cgi.py哦在網頁上看到
Hello None None
哈,對,最後一步來用wget來測一下吧 : )
wget --post-data "first_name=vincent&last_name=yang" http://192.168.21.15:8000/test_cgi.py
哈,得到這樣的 file
<html> <head> <title>Hello - Second CGI Program</title> </head> <body> <h2>Hello vincent yang</h2> </body> </html>
看來我們已經完成自己的 cgi ,並且可以依據client傳過來的 POST 資料給予不同的回應。
接下來怎麼變化就有很多種玩法了。
沒有留言:
張貼留言