问题标签 [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 投票
2 回答
290 浏览

python - 如果输出(stdout)未重定向,Cherrypy 服务器不接受 MS Windows 上的传入 http 请求

这是一个相当奇怪的“错误”。

我写了一个基于cherrypy的服务器。如果我这样运行它:

它按预期工作。

但是,如果最后没有重定向,服务器将根本不接受任何连接。

有人有什么想法吗?

我在 Win XP 专业机器上使用 python 2.4。

0 投票
1 回答
2000 浏览

python - CherryPy 干扰了 Windows 上的 Twisted 关闭

我有一个运行 Twisted 的应用程序,它reactor.run()在启动其他一些线程(包括 CherryPy Web 服务器)后在我的主线程中启动反应器。这是一个程序,当在 Linux 上按下 Ctrl+C 而不是在 Windows 上时,它会干净地关闭:

我相信 CherryPy 是这里的罪魁祸首,因为这是我在没有 CherryPy 的情况下编写的另一个程序,当按下 Ctrl+C 时,它会在 Linux 和 Windows 上完全关闭:

有谁知道问题是什么?这是我的难题:

  • 在 Linux 上一切正常
  • 在 Windows 上,我可以reactor.callFromThread在 CherryPy 未运行时从信号处理程序调用函数
  • 当 CherryPy 运行时,我从信号处理程序调用使用reactor.callFromThread的任何函数都不会执行(我已经验证信号处理程序本身确实被调用)

我能做些什么呢?如何在运行 CherryPy 时从信号处理程序关闭 Windows 上的 Twisted?这是一个错误,还是我只是错过了这两个项目中任何一个文档的一些重要部分?

0 投票
1 回答
633 浏览

cherrypy - 帮助我更好地理解 CherryPy PageHandlers

假设我有一些代码(使用 CherryPy),如下所示:

如果我点击网址http://localhost:8080/names/,我会看到Names.index: None,这很好。这意味着 Names() 类正在被调用。

但是,如果我去http://localhost:8080/names/mark,我会得到一个 404 错误,而不是我期待的Names.index: 标记

这让我很困惑,因为根据PageHandler文档:

当一个请求被处理时,URI 被分成它的组件,并且每个组件都按顺序与树中的节点匹配。任何尾随组件都是“虚拟路径”组件,并作为位置参数传递。

现在假设我将 Names() 类更改为如下所示:

现在我可以访问http://localhost:8080/names/name/mark并看到Names.name: mark

有人可以解释这里发生了什么吗?

0 投票
4 回答
2284 浏览

python - 为什么 Django 和 CherryPy 本身不支持基于 HTTP 动词的调度?

POST 到 URL 与 GET、DELETE 或 PUT 不同。这些行动是根本不同的。然而,Django 似乎在其调度机制中忽略了它们。基本上,人们要么完全忽略 HTTP 动词,要么在每个视图上都这样做:

我在网上找到的几个解决方案(这个基于动词的调度的片段,或者这个动词要求的装饰器)不是很优雅,因为它们显然只是解决方法。

CherryPy 的情况似乎是一样的。我所知道的唯一能做到这一点的框架是 web.py 和 Google App Engine 的。

我认为这是 Web 框架的严重设计缺陷。有人同意吗?还是基于我忽略的原因/要求的深思熟虑的决定?

0 投票
2 回答
3208 浏览

python - How to execute asynchronous post-processing in CherryPy?

Context: Imagine that you have a standard CherryPy hello word app:

and you would like to do some post-processing, i.e. record request processing or just log the fact that we were called from specific IP. What you would do is probably:

However, that will add to your request processing time. (btw. And probably you will use decorators, or even some more sophisticated method if you would like to call it on every function).

Question: Is there a way of creating a global threading aware queue (buffer) to which each request can write messages (events) that needs be logged, while some magic function will grab it and post-process? Would you know a pattern for such a thing?

I bet that CherryPy supports something like that :-)

Thank you in advance...

0 投票
1 回答
1146 浏览

python - 创建 cgi.FieldStorage 对象时出现超时错误

嘿,关于我在这里遇到的超时错误的任何想法:

错误跟踪:

这是被调用的代码:

和:

0 投票
4 回答
13310 浏览

python - 部署 CherryPy(守护进程)

我遵循了基本的 CherryPy 教程(http://www.cherrypy.org/wiki/CherryPyTutorial)。没有讨论的一件事是部署。

如何将 CherryPy 应用程序作为守护程序启动并“忘记它”?如果服务器重新启动会发生什么?

有标准食谱吗?也许会创建一个服务脚本(/etc/init.d/cherrypy ...)

谢谢!

0 投票
1 回答
3845 浏览

python - 如何从内部关闭cherrypy?

我正在cherrypy上开发,我从python脚本开始。

为了更好的发展,我想知道从主进程中停止cherrypy的正确方法是什么(而不是从外部使用ctrl-c或SIGTERM)。

我假设我必须从主应用程序注册一个回调函数才能从工作线程停止cherrypy主进程。

但是我如何从内部停止主进程呢?

0 投票
1 回答
925 浏览

python - 使用 CherryPy 作为阻塞/非线程服务器以便于调试

是否可以将 CherrPy 服务器用作阻塞/非线程服务器(以便于调试?)

0 投票
7 回答
26147 浏览

python - CherryPy 与 Django

CherryPy vs Django,你会使用哪个,为什么?