【问题标题】:cherrypy and Django: Is this possible?cherrypy 和 Django:这可能吗?
【发布时间】:2013-10-08 17:06:43
【问题描述】:

我一直在努力寻找我的 Django 项目将如何通过cherrypy 提供静态文件...尝试搜索发现这么多解决方案...没有用...然后突然只使用cherrypy 的wsgiserver 和来自django 的collectstatic 一切正常....这是正确的吗?为什么每个人都会为此提出不同的解决方案?

我的服务器.py

__author__ = 'avlahop'
######################################################
#Trying to make cherrypie work with Django           #
######################################################


#needed for environ set and python path
import os
import sys

import cherrypy.wsgiserver as wsgiserver

import django.core.handlers.wsgi

from django.core.servers.basehttp import run, WSGIServerException
from django.core.handlers.wsgi import WSGIHandler

import rhombus
import rhombus.settings
#import webbrowser
import cherrypy

os.environ['DJANGO_SETTINGS_MODULE'] = 'rhombus.settings'
app_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.append(os.path.dirname(app_dir))


if __name__ == '__main__':
    print 'To exit close this window'
    app = WSGIHandler()
    server = wsgiserver.CherryPyWSGIServer(
        ('0.0.0.0', 8000),
        app,
        server_name='www.django.example',
        numthreads=20,
    )

    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()

它正常提供静态文件,但我无法访问它们。例如,如果我尝试访问

http://mysite/static/main.css 

主 css 在 static/ 文件夹中我从 django 收到一个错误,它无法在我的 urls.py 中找到它。你能向我解释一下这是正常的行为吗?

【问题讨论】:

  • 为什么需要使用两个框架?如果可能的话,我会避免这种情况
  • 我没有使用整个cherrypy框架。只是cherrypy的wsgiserver。我需要在 windows 中安装 django 项目。

标签: django static wsgi cherrypy


【解决方案1】:

您的问题中缺少信息。例如您如何配置应用程序的其余部分。

将cherrypy用作网络服务器是完全合理的,但您的解决方案实际上并未提供您的collectstatic命令发送它们的文件。您是否在“调试”模式下运行。

最后,您的目标是将其用于大容量网站的生产吗? (不是一个好主意)作为一个小型的低容量内部项目?

【讨论】:

  • 你是对的:)。它没有。但我修复了它:)。我制作了一个应用程序,它采用 django 项目的 STATIC_ROOT 并在路径 STATIC_URL 下提供所有服务。然后我使用 WSGIPathInfoDispatcher 在cherrypy wsgiserver 上调度它。像魅力一样工作。我是基于 django-wsgiserver 模块的。该项目不是内部用于生产的。但它将部署在 Windows 中。使用py2exe打包成一个exe文件,启动cherrypy服务器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多