藉著這次工作上要寫一個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 資料給予不同的回應。
接下來怎麼變化就有很多種玩法了。
沒有留言:
張貼留言