繁体   English   中英

在Apache / mod_wsgi上运行的Django中的错误

[英]Error in Django running on Apache/mod_wsgi

最近我问了一个有关apache / mod_wsgi识别python脚本目录中的错误的问题 社区友善地回答了该问题,并成功完成了安装。 现在我有一个不同的错误,服务器守护进程(从技术上讲是Windows服务,我说是番茄……)找不到任何模型,这是完整的追溯:

环境:

Request Method: GET
Request URL: `http://localhost/polls/`
Django Version: 1.0.2 final
Python Version: 2.6.2
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.admin',
 'mysite.polls']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')

模板错误:在模板c:\\ users \\ marcos \\ documents \\ djangotemplates \\ polls \\ poll _ list.html中,第1行错误渲染时捕获异常:无此类表:polls_poll

1 :  {% if object_list %}   
       2 :     <ul>  
       3 :     {% for poll in object_list %}  
       4 :          <li> <a href="{{poll.id}}/">{{ poll.question }} </a> </li>  
       5 :     {% endfor %}  
       6 :     </ul>  
       7 : {% else %}  
       8 :     <p>No polls are available.</p>  
       9 : {% endif %}  
       10 :

追溯:

File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response
      86.                 response = callback(request, *callback_args, **callback_kwargs)
    File "C:\Python26\lib\site-packages\django\views\generic\list_detail.py" in object_list
          101.     return HttpResponse(t.render(c), mimetype=mimetype)
    File "C:\Python26\lib\site-packages\django\template\__init__.py" in render
          176.         return self.nodelist.render(context)
    File "C:\Python26\lib\site-packages\django\template\__init__.py" in render
          768.                 bits.append(self.render_node(node, context))
    File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node
          81.             raise wrapped
Exception Type: TemplateSyntaxError at /polls/
Exception Value: Caught an exception while rendering: no such table: polls_poll

某处有人建议我使用manage.py dbshel​​l ,脚本响应:
错误:您似乎未安装“ sqlite3”程序或在路径上。

但是Django runserver仍然可以完美运行该应用程序。 我看不出环境中发生了什么变化以至于很难将Web应用程序拧紧。 请帮忙!

您没有数据库。 目前尚不清楚为什么没有sqlite3驱动程序。 但是,您没有sqlite3,也没有数据库。

  1. 运行manage.py syncdb构建数据库。

    • 确保使用与生产实例相同的settings.py

    • 确保您的settings.py具有正确的驱动程序。 您正在使用SQLite3,请确保使用绝对路径名。

    • 确保使用与生产相同的PYTHONPATH和工作目录,以确保实际找到所有模块

  2. 运行普通的SQL以查看您实际上是在构建数据库。

  3. 运行Django /admin应用程序以查看数据库中的内容。

SQLite3包含在Python中。 为了使它丢失,您的Python安装必须已损坏或不完整。 从头开始重新安装。

我解决了将sqlite3 Binaries目录添加到PYTHONPATH环境变量的问题。

尝试manage.py syncdb以确保django可以连接到数据库并创建所有表。

刚刚解决了类似的问题。 我认为您必须将您的应用程序名称添加到settings.py中的INSTALLED_APPS列表中。

当我尝试运行manage.py dbshel​​l时,这些都不适合我,但是3年后,我的操作系统是10.7。 我将mysql路径添加到PATH变量中,如下所示:

PATH = $ PATH:/usr/local/mysql-5.5.16-osx10.6-x86_64/bin

实际上,最好将其放入您的.profile文件中。 如果您尚未使用Mac OS 10.7,则可能必须创建其中之一。 在“终端”窗口中,只需输入cd,然后按回车键即可回到您的主目录,然后执行vi .profile制作新文件,并插入:

导出PATH = $ PATH:/usr/local/mysql-5.5.16-osx10.6-x86_64/bin

我在这里为像我一样不了解所有这些内容的人提供了很多细节。 下次登录时,将自动设置路径。 要现在从.profile文件中进行设置,只需执行以下操作:

。/。轮廓

要验证新的PATH变量,请执行以下操作:

回声$ PATH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM