最近我问了question关于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 dbshell 并且脚本回复:
错误:您似乎没有安装'sqlite3'程序或在您的路径上。
但仍然是Django runserver完美地运行应用程序。我没有看到环境发生了什么变化,以至于如此努力地搞乱了网络应用程序。请帮忙!
答案 0 :(得分:6)
您没有数据库。目前尚不清楚为什么你没有sqlite3驱动程序。但是,您没有sqlite3,并且您没有数据库。
运行manage.py syncdb构建数据库。
请务必使用与生产实例相同的settings.py
。
确保您的settings.py
具有正确的驱动程序。您正在使用SQLite3,请确保使用绝对路径名。
请务必使用与生产相同的PYTHONPATH
和工作目录,以确保实际找到所有模块
运行普通SQL以查看您实际构建了数据库。
运行Django /admin
应用程序以查看数据库中的内容。
SQLite3包含在Python中。为了丢失它,您的Python安装必须损坏或不完整。从头开始重新安装。
答案 1 :(得分:1)
我解决了将sqlite3二进制目录添加到PYTHONPATH环境变量的问题。
答案 2 :(得分:0)
尝试 manage.py syncdb 以确保django可以连接到数据库并且所有表都已创建。
答案 3 :(得分:0)
刚刚解决了类似的问题。我认为您必须将您的应用名称添加到settings.py中的INSTALLED_APPS列表。
答案 4 :(得分:0)
当我尝试运行manage.py dbshell时,这些都不适合我,但是那时它是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创建新文件,并插入:
export PATH = $ PATH:/usr/local/mysql-5.5.16-osx10.6-x86_64/bin
我在这里给出了很多细节,对于那些不了解所有这些问题的人,就像我一样。下次登录时,将自动设置您的路径。要立即从.profile文件设置它,只需执行:
。 ./。配置文件
要验证新的PATH变量,请执行以下操作:
echo $ PATH