问题标签 [cherrypy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2809 浏览

python - 樱桃不关闭套接字

我正在使用cherrypy 作为网络服务器。它为我的应用程序提供了良好的性能,但它存在一个非常大的问题。几个小时后,cherrypy 崩溃,说明由于打开的文件太多,它无法创建套接字:

我试图弄清楚发生了什么。我的应用程序没有打开任何文件或任何套接字等。我的文件只打开了几个 berkeley dbs。我进一步调查了这个问题。我在 /proc/4536/fd/ 中看到了我的cherrypy 进程使用的文件描述符,ID 为 4536 所有套接字都处于 CLOSE_WAIT 状态。我使用以下命令获得了此信息:

CLOSE_WAIT 状态意味着远程客户端已经关闭了连接。为什么cherrypy然后不关闭套接字并释放文件描述符?我能做些什么来解决这个问题?

我尝试玩以下游戏:

我认为这会将随时打开的套接字数量限制为 10,但它根本没有效果。这是我设置的唯一配置,因此,其余配置保持其默认值。

有人可以对此有所了解吗?你认为它是cherrypy中的一个错误吗?我该如何解决?有没有办法自己关闭这些套接字?

以下是我的系统信息:

CherryPy-3.1.0

蟒蛇2.3.4

红帽企业 Linux ES 第 4 版(Nahant 更新 7)

提前致谢!

0 投票
2 回答
1101 浏览

python - Cherrypy 有什么好的“联系我们”食谱吗?

我希望用 Cherrypy 实现一个“联系我们”表单,并且想知道:是否有一个好的方法(或 BSD 许可的代码集)可以用来代替重新发明轮子?

理想情况下,这将与 Cherrpy 3.1 兼容。

0 投票
1 回答
1804 浏览

apache - 在 mod_rewrite 中转义空格

我有以下 Apache mod_rewrite 规则:

这很好用;Apache 将所有请求转发到我在同一台机器上运行的 CherryPy 服务器。

不幸的是,我在使用有空格的路径时遇到了一些问题。如果我提出请求,/Sites/some%20site/image.png那么 Apache 会向 CherryPy 发出请求,/Sites/some site/image.png这会弄乱 CherryPy。

有没有办法在我的 RewriteRule 中指定我想在将请求转发到 CherryPy 之前重新转义 URL 中的空格?

编辑:我找到了一个可能有帮助的参考,但我继续通过用下划线替换空格并让 CherryPy 在提供文件之前进行转换来解决问题。

如果有人有,我仍然想知道更好的解决方案;不幸的是,我在最后期限内,目前没有时间自己解决这个问题。稍后我可能会返回此内容,并在找到时间时发布进一步的更新。

0 投票
1 回答
1234 浏览

python - 用于虚拟主机控制面板应用程序的 CherryPy

很长一段时间以来,我一直想开始一个宠物项目,旨在及时成为一个网络托管控制面板,但主要专注于 Python 托管——这意味着我想为用户提供一种生成/启动 Django 的方法/ 面板中的其他框架项目。我似乎找到了用它来构建我的应用程序的完美工具:CherryPy。

这将允许我按照自己的方式进行操作,使用自己的 HTTP/HTTPS 服务器以及我最喜欢的编程语言构建应用程序。

但是现在出现了一个新问题:由于 CherryPy 是一个线程服务器,它是否适合这种任务?

会有很多耗时的任务,所以如果其中一个任务阻塞,其余试图访问其他页面的用户将等待并最终超时。

我想这种问题不会发生在基于分叉的服务器上。

你有什么建议?

0 投票
1 回答
400 浏览

python - 如何从 turbogears/cherrypy 应用程序浏览到外部 url?

我正在编写一个 tinyurl 克隆来学习涡轮齿轮。我想知道如何将我的浏览器从我的cherrypy/turbogears 应用程序重定向到外部网站(比如 www.yahoo.com)?

我用谷歌搜索了它,但找不到太多有用的信息。

0 投票
2 回答
1237 浏览

python - 如何将 StringTemplate 引擎集成到 CherryPy Web 服务器中

我喜欢 StringTemplate 引擎,也喜欢 CherryPy Web 服务器,而且我知道它们可以集成。

谁做过?如何?

编辑:TurboGears 框架采用 CherryPy Web 服务器并捆绑其他相关组件,例如模板引擎、数据访问工具、JavaScript 工具包等。我对 MochiKit 感兴趣,需要 CherryPy,但我不想要任何其他模板引擎StringTemplate(架构很关键——我不想要另一个损坏/坏的模板引擎)。

因此,通过解决如何将 StringTemplate 与 TurboGears 集成来回答这个问题是可以接受的。

通过解决如何在 Google App Engine 中使用 CherryPy 和 StringTemplate 来回答这个问题也是可以接受的。

谢谢。

0 投票
3 回答
3695 浏览

google-app-engine - 如何在 Google App Engine 中运行 CherryPy 网络服务器

CherryPy Web 服务器应该可以部署在 Google App Engine 中。

谁做过,体验如何?

需要什么特别的努力(配置等)?

你会推荐给其他人吗?

0 投票
1 回答
5578 浏览

python - cherrypy 可以开箱即用地接收多部分/混合 POST 吗?

我们从只为我们提供多部分/混合编码的设备接收一些 xml + 任意二进制文件(如图像和音频)的 POST 数据。

我已经为我们的接收端设置了一个cherrypy 上传/POST 处理程序。我已经设法允许它使用 multipart/form-data 执行任意数量的参数。但是,当我们尝试发送多部分混合数据时,我们没有得到任何处理。

因此,在提交 multipart/form-data 时,args 和 kwargs 定义明确。
args 是表单字段,kwargs=vars 和值的散列。当我提交 multipart/mixed 时,args 和 kwargs 是空的,我只有 cherrypy.request.rfile 作为原始 POST 信息。

我的问题是,cherrypy 是否有内置处理程序来处理 POST 的多部分/混合和分块编码?还是我需要覆盖cherrypy.tools.process_request_body 并推出我自己的解码器?

似乎带有cherrypy的内置wsgi服务器将其作为HTTP / 1.1规范的一部分处理,但我似乎无法在cherrypy中找到访问此功能的文档。


...澄清

我正在使用 Cherrypy 的最新版本 3.1.1 左右。

制作默认表单只涉及在上传函数中制作参数。

对于多部分/表单数据,我一直在调用 curl -F param1=@file1.jpg -F param2=sometext -F param3=@file3.wav http://destination:port/upload

在那个例子中,我得到:

在尝试提交多部分/混合时,我尝试查看 request.body,但无论设置正文处理如何,都继续获得 None 。

我们得到的输入是这样的:

我偷偷怀疑多部分/混合是cherrypy只给我rfile的问题。我们的目标是让cherrypy 将主体处理成各个部分,而在接收端进行最少的处理(即,让cherrypy 发挥它的魔力)。如果这要求我们在发送格式上更加严格,以成为cherrypy 喜欢的内容类型,那就这样吧。可接受的格式是什么?它只是多部分/表单数据吗?

0 投票
2 回答
493 浏览

python - 许多控制器(子视图)的一个视图(frontpage)

注意:不能使用 Javascript 或 iframe。事实上,我不能相信客户端浏览器可以做任何事情,除了超基础。

我正在将一个遗留的 PHP4 应用程序重建为一个 MVC 应用程序,我目前的大部分研究都集中在 Pylon 的框架上。

我遇到的第一个奇怪问题之一,过去我通过使用 iframe 或更好的 JavaScript 解决了一个问题,它显示了一个动态的“小部件”集合,就像典型控制器的索引视图的摘要视图。

可视化我的问题的最佳方法是查看 Google 的个性化主页。他们用 Javascript 解决了这个问题,但是对于我的场景来说,javascript 和几乎任何高于基本 XHTML 的东西都是不可能的。

我开始研究的一个想法是让我的 Frontpage 控制器为当前激活的小部件轮询数据库或其他服务,然后获取元组/字典列表,动态实例化每个控制器并构建渲染子视图的列表/字典并传递到首页视图,让它解决问题。

所以使用 peusudo 代码:

关于 subRender 的奇怪之处

  • __import__通过(当前硬编码到项目的命名空间:()动态导入控制器
  • 有可能非常昂贵(大多数小部件调用可以被缓存,但一个是用户面板)

我觉得必须有一种更好的方法,或者可能已经在 WSGI 或更好的 Pylons 中实现了一种机制来做到这一点,但到目前为止,我发现的最接近的是这个实用方法: http: //www.pylonshq.com/ docs/en/0.9.7/modules/controllers_util/#pylons.controllers.util.forwardN但在 pylons 之上构建 pylons实例只是为了获得集合视图似乎有点疯狂。

0 投票
5 回答
2341 浏览

python - Python网络编程

早上好。

正如标题所示,我有一些关于使用 python 进行 Web 开发的问题。

  • 什么是开发环境的最佳设置,更具体地说,使用什么网络服务器,如何将 python 与它绑定。最好,我希望它在 *nix 和 win 环境中都可以实现。

当我上次尝试 apache + mod_python + CherryPy 时,我主要担心的是必须重新加载网络服务器才能看到更改。算不算正常?由于某种原因,cherrypy 的自动重载根本不起作用。

  • 将工作的 Python 应用程序部署到生产环境的最佳设置是什么?为什么?我现在将 lighttpd 用于我的 PHP Web 应用程序,但是与 nginx 相比,它对 python 的作用如何?

  • 是否值得直接使用框架或自己推出一些简单的东西?我看到 Django 有很多粉丝,但我认为这对我的需求来说太过分了,所以我开始研究 CherryPy。

  • 如果我必须重新加载 httpd 才能看到更改,那么 Python 应用程序究竟如何提供服务?类似于生成子进程的永久进程,所有主要文件都包括在服务器启动时发生,然后只是延迟加载所需的资源?

  • Python 支持多线程,在开发 Web 应用程序时是否需要考虑使用它以获得好处?那会有什么好处,在什么情况下?

非常感谢!