如何使用 CherryPy 配置 IP 地址?
Posted
技术标签:
【中文标题】如何使用 CherryPy 配置 IP 地址?【英文标题】:How do I configure the ip address with CherryPy? 【发布时间】:2010-09-12 01:27:30 【问题描述】:我正在使用 python 和 CherryPy 创建一个大约 2 人使用的简单内部网站。我使用带有 CherryPy.quickstart 的内置网络服务器,并且从不弄乱配置文件。我最近更换了机器,所以我安装了最新的 Python 和cherrypy,当我运行该站点时,我可以从 localhost:8080 访问它,但不能通过 IP 或 Windows 机器名称访问它。这可能是机器配置差异或 CherryPy 或 Python 的较新版本。有什么想法可以绑定到正确的 IP 地址吗?
编辑:为了清楚起见,我目前根本没有配置文件。
【问题讨论】:
【参考方案1】:import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
cherrypy.server.socket_host = '0.0.0.0' # put it here
cherrypy.quickstart(HelloWorld())
【讨论】:
【参考方案2】:server.socket_host: '0.0.0.0'
...也可以。那就是 IPv4 INADDR_ANY,意思是“监听所有接口”。
在配置文件中,语法为:
[global]
server.socket_host: '0.0.0.0'
在代码中:
cherrypy.server.socket_host = '0.0.0.0'
【讨论】:
要么。编辑上述内容以反映这一点。 你为什么需要监听all
接口?你能在这里解释一下吗?
在 docker 容器中很常见。【参考方案3】:
这取决于你如何运行cherrypy init。
如果使用cherrypy 3.1 语法,那就可以了:
cherrypy.server.socket_host = 'www.machinename.com'
cherrypy.engine.start()
cherrypy.engine.block()
当然你可以有更花哨的东西,比如继承服务器类,或者使用配置文件。 the documentation 涵盖了这些用途。
但这应该足够了。如果不只是告诉我们你在做什么和cherrypy版本,我会编辑这个答案。
【讨论】:
在调用cherrypy.quickstart之前我只需要第一行,谢谢 链接失效 关于“使用配置文件”——请注意cherrypy.quickstart(application(), config = configfile)
可以将可选配置文件作为第二个参数(例如,在cherrypy教程中它是tutconf),据我所知它将覆盖程序中设置的cherrypy.server.socket_host以上是关于如何使用 CherryPy 配置 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 CherryPy 的 POST 请求中接收 JSON?
如何从一个简单的网络应用程序中注销。在 CherryPy,Python
如何使用cherrypy tree.mount指定侦听服务器实例?