Django Framework得到Server Error 500当DEBUG为False



我正在使用Django框架的项目。我正在渲染HTML模板

def index(request):
print(" --- check fine?")            # for print debug
trees = Tree.objects.all()
print(trees)
return render(request, "index.html", {'trees': trees})
--- check fine?
<QuerySet [<Tree: Tree object (8)>, <Tree: Tree object (10)>, <Tree: Tree object (11)>, <Tree: Tree object (12)>]>
[06/Feb/2021 17:28:44] "GET / HTTP/1.1" 500 145

这些是我的网址。


urlpatterns = [
path("", views.index, name="index"),
path('about/', views.about , name='about'),
path('contact/', views.contact , name='contact'),
path('upload/', views.upload_file , name='upload'),
]

DEBUG = FalseI ' m getting above error.

,当我设置DEBUG = True每件事都很好意味着显示index.html,甚至显示数据。

设置DEBUG = False使查找错误困难。

index.html包含以下代码,用于获取数据。

{% for tree in trees %}
<article class="col-lg-3 col-md-4 col-sm-6 col-12 tm-gallery-item">
<figure>
<img src="{{tree.image.url}}" alt="Image" class="img-fluid tm-gallery-img" />
<figcaption>
<h4 class="tm-gallery-title">{{tree.name}}</h4>
<p class="tm-gallery-description">{{tree.desc}}</p>
<!-- <p class="tm-gallery-price"></p> -->
</figcaption>
</figure>
</article>
{% endfor %}

和允许的主机是。

ALLOWED_HOSTS = ['*','127.0.0.1','localhost']

看看这个:

  1. 当Django在视图中遇到运行错误时,Django返回HTTP状态码500,这是一个内部服务器错误,例如语法错误或视图没有返回Django期望的对象。与视图逻辑中的错误密切相关的是,当在视图中遇到错误,DEBUG设置为False,并且没有找到500.html模板时,Django本身会引发TemplateDoesNotExist异常。

  2. 从Django 1.5开始,引入了一个新的" allowed hosts "设置。当DEBUG设置为False时,它被强制执行。在settings.py文件中,找到如下内容:

ALLOWED_HOSTS = []并将其更改为包含Droplet的IP地址和/或指向您网站的域名。例如:

ALLOWED_HOSTS = ["example.com"; "111.111.111.111"]

源:

  1. https://docs.webfaction.com/software/django/troubleshooting.html: ~:文本= Django % 20返回% 20一个% 20的http % 20状态,一个% 20对象% 20,% 20 Django % 20的预期。
  2. https://www.digitalocean.com/community/questions/server django -数字海洋的错误- 500

这是settings.py中的变量

STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),

]
MEDIA_ROOT  = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
# STATICFILES_STORAGE = "whitenoise.storage.CompressedStaticFilesStorage"

由于STATICFILES_STORAGEcollectstatic使用白噪声引擎。我评论STATICFILES_STORAGE。我建议删除上述case/staticfiles文件夹下的所有STATIC_ROOT目录。

和使用python manage.py collectstatic收集文件

并在url

中使用
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('', include('ourhouse.urls')),
path('admin/', admin.site.urls),
# path('accounts/',include('accounts.urls'))
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

使用静态和媒体文件。

相关内容

  • 没有找到相关文章

最新更新