2013-07-23 44 views
0

我想在python中構建簡單的http服務器,該服務器監聽TCP端口,並在Web瀏覽器(通過HTTP GET請求)訪問時顯示一些html頁面表單。用戶可以通過HTTP POST在表單上放置一些數據。如何在Eclipse中爲HTTP服務器使用Python的Web模塊

我使用Eclipse和Pydev。 我試圖使用Web模塊

import SimpleHTTPServer 
import web 

urls = (
    '/', 'Index' 
) 
pytest = web.application(urls, globals()) 

render = web.template.render('templates/') 

class Index(object): 
    def GET(self): 
     return render.index() 

    def POST(self): 
     form = web.input(name="Nobody", greet="Hello") 
     greeting = "%s, %s" % (form.greet, form.name) 
     return render.index(greeting = greeting) 

if __name__ == "__main__": 
    app.run() 

錯誤消息是 應用程式= web.application(網址,全局()) AttributeError的: '模塊' 對象沒有屬性 '應用'

我並欣賞如果還有其他技術可以這樣做的話。

+0

什麼是您導入的「網絡」模塊 - 它是從哪裏來的? –

回答

0

我假設你正在使用http://webpy.org

我試圖運行你的應用程序:

$ pip install web.py 
Downloading/unpacking web.py 
    Downloading web.py-0.37.tar.gz (90kB): 90kB downloaded 
    Running setup.py egg_info for package web.py 

Installing collected packages: web.py 
    Running setup.py install for web.py 

Successfully installed web.py 
Cleaning up... 

運行侑代碼說明了一個問題:

$ python test.py 
Traceback (most recent call last): 
    File "test.py", line 21, in <module> 
    app.run() 
NameError: name 'app' is not defined 

當我與pytest.run()

更換 app.run()
if __name__ == "__main__": 
    pytest.run() 

一切正常:

$ python test.py 
http://0.0.0.0:8080/ 

如果你運行Eclipse內的這種形式和你正在使用的virtualenv, 他們確保你的virtualenv(斌/ Python)的添加到

Preferences...>PyDev->Interpreter - Python 

並且在您的啓動配置中,使用這個envirtonment。

+0

非常感謝Michael ..這讓我非常高興! – John

相關問題