You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中如何将字典传递给模板?代码问题求助

解决Django模板渲染显示原始HTML的问题

问题原因

你调用template.render()时未正确传递**上下文(context)和请求(request)**参数,导致模板语法未被解析,最终输出原始HTML代码。另外代码里的news变量未定义,需先为它赋值。

修复方案

有两种实用的修复方式:

方式1:修正loader渲染的参数传递

调整template.render()的调用逻辑,传入context和request参数:

from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader

def home(request):
    # 先定义news变量,示例赋值
    news = ["Django入门笔记", "模板渲染实用技巧"]
    context = {
        'news': news
    }
    template = loader.get_template('home.html')
    # 传递上下文和请求对象到render方法
    return HttpResponse(template.render(context, request))

方式2:使用更简洁的render快捷函数

Django提供的render函数已封装了模板加载、上下文传递和响应返回的流程,更适合新手:

from django.shortcuts import render

def home(request):
    news = ["Django入门笔记", "模板渲染实用技巧"]
    context = {
        'news': news
    }
    # 直接传入请求、模板路径和上下文
    return render(request, 'home.html', context)

额外提示

  • 确保home.html中的模板语法正确,比如遍历news的写法:
    {% for item in news %}
        <p>{{ item }}</p>
    {% endfor %}
    
  • 必须提前定义news变量,否则会触发变量未定义的错误。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 02:59:54