python - 如何以正确的方式部署一个简单的Python网络服务器?

标签 python web-deployment web.py

我对Python还很陌生。我已经开始学习一些类(class),现在,我正在尝试部署一个基于 web.py 的简单网络服务器。有人可以帮助我回答这两个问题吗:

  1. 我将 web.py 安装在 /home/.../public_html/cgi-bin/lib/python/web 目录中。 public_html - 我的网站启动的目录。那么我应该在 top 的 python 脚本中写什么呢?

    我的意思是,如果我只写 import web ,那么脚本只能在 /public_html/cgi-bin/lib/python/ 目录中正常工作。我可以将脚本放在其他目录中吗?在这种情况下我应该在导入部分写什么?

  2. 根据 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/

相关文章:

python - 关闭pycharm容器的正确方法

azure - Web 部署包在部署时抛出 ERROR_SITE_DOES_NOT_EXIST

javascript - 如何在 React 中更新 parent 的状态?

web-deployment - 将 Ektron 网站移动到没有 eSync 的新服务器

python - celery block 不执行任务

python - 使用随机生成的整数作为tensorflow map_fn中的张量索引

python - 未定义 DISPLAY 时使用 Matplotlib

python - Web.py SQL 查询提供奇数数据

python - 在 Peewee 中,我有一个默认为 datetime.datetime.now() 的日期时间字段。但是插入时,它需要服务器启动的时间。为什么

python - 30 秒超时后,从 Heroku 流式传输大文件失败