2

最近我问了一个关于 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 : {% 其他 %}  
       8 : <p>没有可用的民意调查。</p>  
       9 : {% endif %}  
       10:   

追溯:

    get_response 中的文件“C:\Python26\lib\site-packages\django\core\handlers\base.py”
      86. 响应 = 回调(请求,*callback_args,**callback_kwargs)
    object_list 中的文件“C:\Python26\lib\site-packages\django\views\generic\list_detail.py”
          101. 返回 HttpResponse(t.render(c), mimetype=mimetype)
    渲染中的文件“C:\Python26\lib\site-packages\django\template\__init__.py”
          176.返回self.nodelist.render(上下文)
    渲染中的文件“C:\Python26\lib\site-packages\django\template\__init__.py”
          768. bits.append(self.render_node(节点,上下文))
    render_node 中的文件“C:\Python26\lib\site-packages\django\template\debug.py”
          81.提高包裹
Exception Type: TemplateSyntaxError at /polls/
Exception Value: Caught an exception while rendering: no such table: polls_poll

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

但是 Django 运行服务器仍然可以完美地运行应用程序。我看不出环境发生了什么变化,从而使网络应用程序变得如此困难。请帮忙!

4

5 回答 5

6

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

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

    • 请务必使用与settings.py您的生产实例相同的内容。

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

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

  2. 运行普通的 SQL 来查看您是否实际构建了数据库。

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

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

于 2009-07-30T00:19:08.227 回答
1

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

于 2009-07-30T02:18:25.513 回答
0

Try manage.py syncdb to make sure that django can connect to the database and that all the tables are created.

于 2009-07-29T22:34:18.653 回答
0

刚刚修复了一个类似的问题。我认为您必须将您的应用名称添加到 settings.py 中的 INSTALLED_APPS 列表中。

于 2009-10-02T22:19:33.880 回答
0

当我尝试运行 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

于 2012-01-14T23:36:55.570 回答