[英]Django migrating from 1.3.1 to 1.7.4 and keep getting Server Error 500
這可能是一個愚蠢的問題,但是我只是python / django的初學者。
我不斷收到“服務器錯誤(500)和未找到”頁面( 在此服務器上未找到請求的URL。 )
在我的views.py中,如果我只是測試一個字符串“ Hello,World”,那就可以了。
如果我使用index.html(位於Templates文件夾中)或諸如注冊,登錄等鏈接,則出現上述錯誤。
我可以看到沒有靜態CSS文件的admin登錄窗口。 登錄時,我還會遇到服務器錯誤500。
我猜問題是出自Django的URL系統無法正常工作嗎?
我得到的現有項目是基於Django 1.3.1構建的,我剛剛將其升級到1.7.4。 從下面可以看到,Django 1.3.1中項目的舊結構是這樣的:
django 1.3.1
server
/node/
admin.py, functions.py, models.py
/templates/
index.html
/static/
/manage.py
/settings.py
/urls.py
在1.7.4中是這樣的:
django 1.7.4
server
/server/
settings.py, urls.py, views.py
/node/
admin.py, functions.py, models.py, views.py
/templates/
index.html
/static/
/manage.py
以下是該項目的詳細信息:
functions.py
@csrf_exempt
def register(request):
@csrf_exempt
def login(request):
@csrf_exempt
def forgot_password(request):
models.py
class UserProfile(models.Model):
urls.py:
from django.conf.urls import patterns, include, url
from server import views
from node.functions import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', views.index_view),
# url(r'^index/$', views.indexView),
url(r'^admin/', include(admin.site.urls)),
url(r'^register/', register),
url(r'^login/', login),
url(r'^forgot_password/', forgot_password),
)
views.py
from django.shortcuts import render
from django.http import HttpResponse
def index_view(request):
return HttpResponse("Hello, World")
def indexView(request):
return render(request, 'index.html')
settings.py
import os
DEBUG = False
TEMPLATE_DEBUG = DEBUG
__file__ = os.getcwd()
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
ALLOWED_HOSTS = ['.example.com', '.exmaple.com.']
AUTH_PROFILE_MODULE = 'node.UserProfile'
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'db',
'USER': 'user',
'PASSWORD': 'pass',
'HOST': '',
'PORT': '',
}
}
TIME_ZONE = 'America/Chicago'
LANGUAGE_CODE = 'en-us'
SITE_ID = 1
USE_I18N = True
USE_L10N = True
MEDIA_ROOT = os.path.join(PROJECT_ROOT, "media")
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, "static")
STATIC_URL = 'http://example.com/static/'
ADMIN_MEDIA_PREFIX = '/admin/media/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
SECRET_KEY = ‘xxx'
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
ROOT_URLCONF = 'server.urls'
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'templates'),
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'node',
'django.contrib.gis',
)
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
# Templates directory
REGISTRATION_TEMPLATES_DIR = 'registration/'
AUTHENTICATION_BACKENDS = (
'node.auth_backends.CustomBackend',
)
GDAL_LIBRARY_PATH = '/usr/local/lib/libgdal.so'
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
謝謝
嘗試使用DEBUG = True!
服務器錯誤(500)是一個后端錯誤(邏輯!),DEBUG = True將說明有關該錯誤及其解決方案的更多信息。
如前所述,結構已更改,因此出現此錯誤,我建議您在虛擬環境中運行基於1.3的項目。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.