基本模板未在 Django 中加载

Posted

技术标签:

【中文标题】基本模板未在 Django 中加载【英文标题】:basic template not loading in Django 【发布时间】:2016-03-11 22:14:31 【问题描述】:

我对 Django 真的很陌生。问题是我无法加载由两个基本 html 文件组成的模板。 这是我的模板文件的位置:

/home/usman/Django 项目/django-black/luckdrum/templates/

这是我的视图函数:

from django.shortcuts import render
from django.http import HttpResponse
from django.template.loader import get_template
from django.template import Context
def hello_template(request):
    t=get_template('signup.html')

    return HttpResponse(t) 

这里是 url.py 文件:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/','blog.views.hello'),
    url(r'^signup.html/','blog.views.hello_template'),

]

我还在我的 settings.py 中添加了路径作为 TEMPLATE_DIRS。 服务器显示错误模板不存在。请帮帮我!

【问题讨论】:

【参考方案1】:

将您的模板放入templates/<app_name>/<app_name>/templates/<app_name>/。 Django 会自动找到它们。

Django 将在主模板文件夹templates/<app_name>/<app_name>/templates/<app_name>/ 之后查找。

然后在你看来:

from django.shortcuts import render

def hello_template(request):
    return render(request, '<app_name>/signup.html')

这是您的 Django 项目的外观(Django 建议编写可重用的应用程序):

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    polls/
        __init__.py
        admin.py
        migrations/
            __init__.py
            0001_initial.py
        models.py
        static/
            polls/
                images/
                    background.gif
                style.css
        templates/
            polls/
                detail.html
                index.html
                results.html
        tests.py
        urls.py
        views.py
    templates/
        admin/
            base_site.html

阅读 django 文档:Organise templates 和 How to write reusable apps

【讨论】:

我已将我的模板文件夹移动到我的应用程序目录 ieblog 并使我的视图类似于 "t=get_template('/signup.html') 。它仍然给我同样的错误跨度> 我更新了我的答案,使用 dajngo.shortcut 中的 render 而不是 get_template @Lois 它有效,但如果我在 vews.py 中删除应用程序名称 如你所述,它将完美运行。 请添加相关项目结构 是的,它有效,但如果我给您的解决方案不起作用,那么您似乎没有按照 Django 的建议组织您的应用程序。我更新了我的答案,阅读它:)

以上是关于基本模板未在 Django 中加载的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS ng-include 模板未在 Phonegap 应用程序中加载

无法在我的 django 模板中加载图像

我无法从 JQuery ajax 调用中加载部分 Django 模板

Favicon 未在 Django 中加载

CSS静态文件未在Django中加载

自定义静态文件未在 django 项目中加载