我很确定数据库已经创建并且我已正确执行了python manage.py syncdb
,但在尝试访问http://127.0.0.1:8000/admin/时仍遇到此错误。以下是一些细节。
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.3.1
Python Version: 2.7.1
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')
Exception Type: DatabaseError at /admin/
Exception Value: no such table: django_session
答案 0 :(得分:3)
sqlite的路径通常是问题所在。
'NAME': 'c:/path/to/sqlite.db'
答案 1 :(得分:2)
试试这个
from os.path import dirname, abspath
ROOT = dirname(abspath(__file__)).replace('\\', '/') + '/'
print "self.__name__: " + __name__
print "self.__file__: " + __file__
print "ROOT: " + ROOT
import django
print "django.__path__: "
print (django.__path__)
# Contact for error messages etc. - dont forget the ',' after the first entry
ADMINS = (('dev', 'dev@example.com'),)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ROOT + 'project.db',
'USER': '', 'PASSWORD': '',
'HOST': '', 'PORT': '',
}
}
并在操作系统的数据库名称之前检查是否需要+'/'+。
答案 2 :(得分:1)
进行迁移将解决问题。
运行以下命令:
python ./manage.py migrate
python ./manage.py makemigrations
答案 3 :(得分:0)
django.contrib.sessions.backends.db
它默认使用 django.contrib.sessions
,这让您需要:
INSTALLED_APPS
放入 settings.py
中的 SESSION_ENGINE
列表变量如果您不想这样做,只需将 django.contrib.sessions.backends.cache
放在 settings.py
中的 settings.py
。
所以,在你的 ...
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
...
中是这样的:
{{1}}
顺便说一句,如文档中所说:
<块引用>'..简单缓存更快,因为它忽略了持久性。'
你可以在这个link
答案 4 :(得分:0)
如果您在任何 models.py 文件中添加/更新了表,您可能需要在运行服务器之前迁移数据库。
在运行“python manage.py runserver”之前运行以下命令:
python manage.py migrate
python manage.py makemigrations
答案 5 :(得分:0)
当您在没有创建数据库或其中没有会话表的情况下运行服务器时会发生这种情况(以防您最近将 admin
应用程序添加到您的 INSTALLED_APPS
)。为了创建数据库或表运行此命令。
python manage.py migrate
在旧版本的 django 中是这个命令
python manage.py syncdb
答案 6 :(得分:0)
它提示您进入该错误页面,因为您的数据库甚至还没有创建,这导致缺少访问管理页面的必需表。
运行以下两个命令:
python3 manage.py migrate
python3 manage.py makemigrations
运行第一个命令实际上会创建您的数据库,其中包含必要的起始表。我遇到了同样的问题,这对我来说 100% 解决了。
解决方案来源:@satya 的回答
答案 7 :(得分:-1)
按以下顺序执行工作正常:
第一
data = pd.DataFrame({'X': [1, 2, 3, 4, 5], 'Y': [10,20,30,40,50]})
for each_line in data.index:
z = data['X'].loc[each_line] + data['Y'].loc[each_line]
for i in range(1,1001,1):
z +=10
print(z)
Output
10011
10022
10033
10044
10055
然后
python manage.py migrate
因为我们在运行服务器之前应用所有迁移。