2011-12-21 78 views
0

我是網頁設計新手。我想創建一個在後臺運行python腳本的網頁。基於請求頁面的客戶端的IP地址的腳本將生成一些必須嵌入網頁中的URL。做這個的最好方式是什麼? 另外,如何找到客戶端的IP地址?如何創建自定義網頁?

回答

3

這是一個基本的HttpServer:

from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer 

class MyHandler(BaseHTTPRequestHandler): 
    def do_GET(self): 
     self.send_response(200) 
     self.send_header('Content-type', 'text/html') 
     self.end_headers() 
     self.wfile.write('Hello %s!' % self.client_address[0]) 
     return 


def main(): 
    try: 
     server = HTTPServer(('', 80), MyHandler) 
     print 'started http server' 
     server.serve_forever() 
    except KeyboardInterrupt: 
     print '^C received, shutting down server' 
     server.socket.close() 


if __name__ == '__main__': 
    main() 

您可以通過簡單地在瀏覽器中鍵入http://localhost/訪問該服務器。它將打印客戶端IP地址。 另外看看可用於python的web框架列表:http://wiki.python.org/moin/WebFrameworks

+0

原始的excepts是badddd – 2011-12-21 10:44:24

+1

謝謝@JakobBowyer剛剛更新了代碼 – Irfan 2011-12-21 11:43:10

3

你想看看PEP 333,Web服務器網關接口。這是通常用於Python腳本與web服務器通信的東西。你需要這個才能運行一個python webapp。

最重要的是,你可能想要使用像Django或Flask這樣的框架。 Python有許多WSGI框架,您可以選擇最適合您的需求的套件。

至於你的問題的IP部分,這取決於你使用的框架。我建議你從閱讀WSGI開始,然後開始閱讀關於WSGI框架。

+0

我只提到這個,因爲你說你是網頁設計的新手,這至少可以讓你開始玩沒有太多的學習曲線:http:/ /docs.python.org/library/cgi.html – jdi 2011-12-21 07:51:40

+0

或許更好地使用Flask而不是Werkzeug直接。 – 2011-12-21 09:05:08

+0

@GrahamDumpleton你可能是對的,將它添加到我的答案。 – Blubber 2011-12-21 09:18:13