0

我刚开始摆弄django。首先,我在我的 windows 机器上制作了一个小应用程序并验证它运行良好然后,我压缩了整个项目,并在 linux 机器上打开了 zip。linux 机器安装了 mod_wsgi 和 django 1.1.1,当然。

我创建了以下目录:

  • /usr/local/bin/ROOT- 仅包含一个文件,django.wsgi
  • /usr/local/bin/ROOT/myapp- django 应用程序的根目录

根据此处的说明,我添加到httpd.conf

<VirtualHost *:80>

    ServerName server
    ServerAlias server
    ServerAdmin webmaster@example.com


    WSGIScriptAlias /myapp /usr/local/bin/ROOT/django.wsgi

    <Directory /usr/local/bin/ROOT/>
    Order allow,deny
    Allow from all
    </Directory>

</VirtualHost>

现在按照我在这里/usr/local/bin/ROOT/django.wsgi输入的说明:

import os
import sys
path = '/usr/local/bin/ROOT'
if path not in sys.path:
    sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'

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

如果它很重要:在应用程序启动之前 PYTHOHPATH 上没有设置任何内容。

之后,我对 apache 进行了优雅的重启,然后进入了 server/myapp。我收到 500 错误。查看我看到的日志:

[Sun Dec 05 12:24:17 2010] [error] [client XXXX] ImproperlyConfigured: Error importing middleware django.middleware.csrf: "No module named csrf"

我究竟做错了什么?我发现的所有其他线程总是得出一个结论,即它是 django 的旧版本(但我的是 1.1.1),或者有几个应用程序正在运行,但我只有一个......

帮助?

4

2 回答 2

1

1.1.1Django 的旧版本(当前版本是 1.2.3),这几乎肯定是您的问题的原因。1.1.1中没有django.middleware.csrf

于 2010-12-05T19:14:55.513 回答
1

“django.middleware.csrf”是 Django 1.2.x 中的包

对于 Django 1.1.x CSRF 设置,请在此处阅读相应的文档

1.1.x 中的包是“django.contrib.csrf.middleware.CsrfMiddleware”

于 2010-12-05T19:13:50.490 回答