标签: cherrypy

CherryPy Hello World错误

当我运行CherryPy Hello World时:

import cherrypy

class HelloWorld:
    def index(self):
        return "Hello world!"
    index.exposed = True

cherrypy.config.update({'server.socket_port': 8080,})
cherrypy.quickstart(HelloWorld())
Run Code Online (Sandbox Code Playgroud)

...我明白了:IOError:端口8080没有绑定'localhost'.会是什么呢?

port localhost cherrypy

13
推荐指数
2
解决办法
1万
查看次数

CherryPy是一个强大的网络服务器(即,在像Apache这样的巨大负载下它是否可靠)?

我想知道,因为据我所知,CherryPy纯粹是用Python构建的,这显然比C等慢.这是否意味着它只适用于开发/测试环境,或者我可以在NGINX后面使用它,就像我目前使用Apache和Fast CGI一样

python webserver cherrypy

13
推荐指数
1
解决办法
2460
查看次数

Python网络编程

早上好.

正如标题所示,我对使用python进行Web开发有一些疑问.

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

我上次尝试apache + mod_python + CherryPy时的主要问题是不得不重新加载webserver来查看更改.它被认为是正常的吗?出于某种原因,cherrypy的自动重载根本不起作用.

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

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

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

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

十分感谢!

python cherrypy

12
推荐指数
3
解决办法
2301
查看次数

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

POST到URL不同于获取它,删除它或将其删除.这些行为从根本上是不同的.但是,Django似乎在其调度机制中忽略了它们.基本上,一个人被迫完全忽略HTTP动词或在每个视图上执行此操作:

def my_view(request, arg1, arg2):
    if request.method == 'GET':
        return get_view(request, arg1, arg2)
    if request.method == 'POST':
        return post_view(request, arg1, arg2)
    return http.HttpResponseNotAllowed(['GET', 'POST'])
Run Code Online (Sandbox Code Playgroud)

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

CherryPy的情况似乎是一样的.我所知道的唯一正确的框架是web.py和Google App Engine.

我认为这是Web框架的一个严重的设计缺陷.有人同意吗?或者这是基于我忽略的原因/要求的故意决定?

python django rest web-frameworks cherrypy

12
推荐指数
3
解决办法
2200
查看次数

CherryPy具有用于自定义作业的其他线程

我们正在设计一个基于CherryPy的系统,除了提供Web请求外,还需要并行执行任务/作业.我们希望它是作为守护进程运行的单个进程,并为所有并行作业(如计划任务或在线收集数据)创建线程.

我一直在浏览CherryPy文档,并知道它是为所有用户请求创建线程的线程池.但是,我似乎无法找到有关如何为自定义作业创建和管理线程的文档.CherryPy是否有一个我们可以挂钩的线程处理程序,或者我们应该编写我们自己的挂钩到CherryPy的处理程序吗?

python multithreading daemon cherrypy

12
推荐指数
1
解决办法
4167
查看次数

Unittesting cherrypy webapp

我最近不得不重写我们的rest api,并从Flask切换到Cherrypy(主要是因为兼容Python 3).但现在我不得不尝试编写我的单元测试,Flask有一个非常漂亮的内置测试客户端,你可以使用它向你的应用程序发送虚假请求(无需启动服务器.)我找不到任何类似的功能对于Cherrypy,是否有这样的功能,或者我是不是在启动服务器并对它做实际请求?

python unit-testing cherrypy

12
推荐指数
1
解决办法
3141
查看次数

我应该在CherryPy中使用哪种模板技术?

我正在使用cherrypy构建Web应用程序.

你推荐我使用什么模板技术?

python templates template-engine cherrypy

11
推荐指数
2
解决办法
7668
查看次数

Cherrypy和Jinja2入门

这是我第一次深入研究python中的web开发.我唯一的另一个经验是PHP,我之前从未使用过框架,所以我发现这非常令人生畏和困惑.

我有兴趣学习CherryPy/Jinja2为我的NAS制作ZFS监视器.我已经阅读了关于CherryPy/Jinja2的文档的基础知识,但我发现样本是脱节的而且过于简单化,我真的不明白如何使这两个东西"优雅地聚集在一起".

我有一些问题:

  1. 有没有一个简单的教程显示你如何使CherryPy和Jinja2很好地协同工作?我要么发现过于简单的样本,比如CherryPy/Jinja2文档中的样本,要么是复杂的样本.(例如:https: //github.com/jovanbrakus/cherrypy-example).

  2. 是否有标准化或"预期"的方式为CherryPy创建Web应用程序?(例子:我的目录结构应该是什么样的?有没有办法声明静态的东西;它甚至是必要的吗?)

  3. 有没有人为此推荐文献或在线文档是最好的资源?

frameworks cherrypy jinja2 python-2.7

11
推荐指数
2
解决办法
8816
查看次数

在cherrypy中默认根视图

在我写的一些源代码中,我能够提出如下请求:

http://proxy.metaperl.org/index/bitgold-rw1
Run Code Online (Sandbox Code Playgroud)

并成功重定向.

但是,我想index从URL中删除并使用该index()方法使其仍然重定向.我试图重新命名index(),以 default()阅读后 调度,但它仍然没有让我有这样的网址:

http://proxy.metaperl.org/bitgold-rw1
Run Code Online (Sandbox Code Playgroud)

它试图找到一个名为bitgold-rw1而不是使用默认方法来解析请求的方法,给我一个错误:

NotFound: (404, "The path '/bitgold-rw1' was not found.")
Run Code Online (Sandbox Code Playgroud)

WSGI启动文件如下所示:

# -*- python -*-

# core
import os
import sys

# 3rd party
import cherrypy

# local
def full_path(*extra):
    return os.path.join(os.path.dirname(__file__), *extra)

sys.path.insert(0, full_path())
import config
import myapp

application = cherrypy.Application(
    myapp.Root(),
    "/",
    config.config)
Run Code Online (Sandbox Code Playgroud)

python wsgi cherrypy

11
推荐指数
1
解决办法
896
查看次数

在cherrypy server + ssl上的瓶子

我试图在Cherrypy的服务器上运行Bottle.我想获得SSL支持.

到目前为止,我试过这个:

from bottle import Bottle, route
from cherrypy import wsgiserver

app = Bottle()

@app.route("/")
def index():
  return "Hello"


server = wsgiserver.CherryPyWSGIServer(
            ('0.0.0.0', 443), app)

server.ssl_adapter.private_key = 'server.key'
server.ssl_adapter.certificate = 'server.crt'
server.start()
Run Code Online (Sandbox Code Playgroud)

但是上面抛出了一个ArgumentError,我无法在None对象(ssl_adpater)上设置属性.显然我需要将ssl_adapter属性设置为从SSLAdapter派生的某个对象,但我找不到任何示例.

我使用的是Python 2.7和Cherrypy 3.2.2

谢谢.

python ssl cherrypy

10
推荐指数
1
解决办法
6723
查看次数