django数据无法传到html?

如题,我根据网上的代码从django传数据给html,用Python运行项目后index.html显示的是空白页面,没有报错,请问是什么原因?谢谢。
代码如下:
search.py:

# -*-coding: utf-8 -*-
from django.shortcuts import render
#from backend.models import articles

def searchArti(request):
    data = [1,2,3,4]
    return render(request, 'index.html', {'data': data})

index.html:

<div id="app">
    {{ data }}</div>

setting.py:

...
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'backend'
]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['frontend/'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
...

文件目录:
图片描述

阅读 5.5k
5 个回答

用绝对路径试试,'DIRS': [os.path.join(BASE_DIR, 'frontend')]

我个人喜欢用 TemplateView (class based view, CBV)

模板值用 get_context_data 方法

clipboard.png

模板路径配置的问题!
改用'DIRS': [os.path.join(BASE_DIR, 'frontend')]

urls.py配置了吗,参考
urlpatterns = [

url(r'^admin/', admin.site.urls),
url(r'^index/', index)

]
然后要运行django服务。浏览器输http://127.0.0.1:8000/index/就可以了。

楼上使用绝对路径是正解,
你这个search.py在vpProject里面呀。
vpProject里面应该是配置文件才对。
而且视图函数一般是写在app里面的views.py才对把。你要自定义视图函数应该还要修改其他参数。
我建议。
你这边的已经注册的app是backend,
你不如直接在backend里面创建一个templates文件夹(app里面的static文件夹和templates文件夹是默认的静态文件夹和网页文件夹),然后把index.html放到里面去。再把里的search.py里面的东西复制到views里面。再在vpProject的urls.py设置路由路径就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题