我对Python还很陌生。我已经开始学习一些类(class),现在,我正在尝试部署一个基于 web.py 的简单网络服务器。有人可以帮助我回答这两个问题吗:
我将 web.py 安装在
/home/.../public_html/cgi-bin/lib/python/web
目录中。public_html
- 我的网站启动的目录。那么我应该在 top 的 python 脚本中写什么呢?我的意思是,如果我只写
import web
,那么脚本只能在/public_html/cgi-bin/lib/python/
目录中正常工作。我可以将脚本放在其他目录中吗?在这种情况下我应该在导入部分写什么?根据 webpy.org,一个简单的“Hello world”网络应用程序如下所示:
import web urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals()) class hello: def GET(self, name): if not name: name = 'World' return 'Hello, ' + name + '!' if __name__ == "__main__": app.run()
当我运行它时,网络服务器将默认端口设置为8080
。如何将其更改为标准 80,以便通过 url http://website.com
访问我的网站?
附注在我看来,格式化在 stackoverflow 上效果不佳。对此感到抱歉。
最佳答案
对于你的第二个问题:尝试覆盖运行。
import web
class MyApplication(web.application):
def run(self, port=8080, *middleware):
func = self.wsgifunc(*middleware)
return web.httpserver.runsimple(func, ('0.0.0.0', port))
urls = (
'/(.*)', 'hello'
)
class hello:
def GET(self, name):
if not name:
name = 'World'
return 'Hello, ' + name + '!'
if __name__ == "__main__":
app = MyApplication(urls, globals())
app.run(port=8888)
关于python - 如何以正确的方式部署一个简单的Python网络服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12274786/