【问题标题】:mod_wsgi WSGI script for non-frameworked Python web development用于非框架 Python Web 开发的 mod_wsgi WSGI 脚本
【发布时间】:2011-05-17 17:31:57
【问题描述】:

我看到的大多数用于创建用于 mod_wsgi 的 WSGI 文件的指南都为 Django 或 Pylons 设置它。但是,我想创建 wsgi 文件而不为任何特定框架设置它。我该怎么做呢。以下是 wsgi 脚本中用于 Django 的代码:

import os, sys
sys.path.append('/home/user/dev')
sys.path.append('/home/user/dev/site1')
os.environ['DJANGO_SETTINGS_MODULE'] = 'site1.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

mod_wsgi integration from google 说我需要在 WSGI 脚本中添加以下代码来覆盖 BASELINE 环境(是的,我使用的是基线和特定于应用程序的 virtualenv):

import site
site.addsitedir('/usr/local/pythonenv/PYLONS-1/lib/python2.5/site-packages')

如果我不将它用于任何特定框架,我的 WSGI 脚本会是什么样子?

编辑:这是用于 Apache 服务器

【问题讨论】:

  • 您可能希望在某些服务器上使用 mod_wsgi。您要使用哪个服务器?
  • @pyfunc:查看编辑,对于 Apache 是

标签: python django apache mod-wsgi virtualenv


【解决方案1】:

对于PEP 333中的简单wsgi应用:

def simple_app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    return ['Hello world!\n']

application = simple_app

换句话说,您根本不需要进行任何设置。您只需确保 mod_wsgi 可以在您的模块中找到符合 wsgi 的application 对象。

出于安全原因,您确实应该在 apache 发布的任何目录之外的另一个模块中定义您的应用程序,并将 wsgi 文件中的代码限制为导入该模块并将 wsgi 应用程序绑定到 @987654324 所需的最低限度@变量。

【讨论】:

  • 嗯,看看 Google 是怎么说的,我在哪里指定我想使用应用程序 virtualenv 中的 site-packages 目录来覆盖基线 virtualenv?
  • 抱歉,您最初的问题不是关于管理 python 虚拟环境。请为此打开一个单独的问题。
  • 对 virtualenv 感到抱歉。现在从您的答案中获取代码,如何修改该脚本以使其提供文件,而不仅仅是输出“Hello World”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 2016-02-11
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多