我正在使用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 = False
I ' 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']
看看这个:
-
当Django在视图中遇到运行错误时,Django返回HTTP状态码500,这是一个内部服务器错误,例如语法错误或视图没有返回Django期望的对象。与视图逻辑中的错误密切相关的是,当在视图中遇到错误,DEBUG设置为False,并且没有找到500.html模板时,Django本身会引发TemplateDoesNotExist异常。
-
从Django 1.5开始,引入了一个新的" allowed hosts "设置。当DEBUG设置为False时,它被强制执行。在settings.py文件中,找到如下内容:
ALLOWED_HOSTS = []并将其更改为包含Droplet的IP地址和/或指向您网站的域名。例如:
ALLOWED_HOSTS = ["example.com"; "111.111.111.111"]
源:
- https://docs.webfaction.com/software/django/troubleshooting.html: ~:文本= Django % 20返回% 20一个% 20的http % 20状态,一个% 20对象% 20,% 20 Django % 20的预期。
- 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_STORAGE
collectstatic
使用白噪声引擎。我评论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)
使用静态和媒体文件。