Django3.0使用-模板变量数据传递

模板变量是Django平台用于后台(view)传递给前端(Template)的数据信息的桥梁。,当模板碰到变量的时候,通过Django所加载的模板引擎计算这个变量的值,然后将结果输出到web页面。

视图方式传递模板变量有多种方式。具体包含以下几种模式:

1、Context模式

这种模式用于模板内容通过Template形成,而不是文件的场景。这种情况下,通过设置一个Context对象用来传递模板数据信息,以HttpResponse形式返回。相关范例如下:

def templatedemo1(request):
    person = {'name': 'Mary', 'age': 40}
    t = Template('{{person.name}} is {{person.age}} years old.')
    c = Context({'person': person})
    m=t.render(c)
    return HttpResponse(m)

2、loader模式

这种模式用于模板内容以文件形式存在的场景,以HttpResponse形式返回。这种情况下,通过引入loader包的方式,首先加载模板,其次定义一个字典变量用来传递模板数据信息。其中加载方式有两种get_template 与render_to_string方式。

相关范例如下:

render_to_string方式

def templatedemo2(request):
    con={'username':'Mike','hobby':'running'} #定义变量,变量只能为字典形式
    m=loader.render_to_string('template2.html',con)
    return HttpResponse(m)

get_template 方式

def templatedemo3(request):
    t = get_template('template2.html')
    con={'username':'Mike','hobby':'running'}   
    m = t.render(con)
    return  HttpResponse(m)

3、render模式

这种模式用于模板内容以文件形式存在的场景,以render形式返回。首先定义一个字典变量,其次返回。

def templatedemo4(request):
    con={'username':'Mike','hobby':'running'}    
    return render(request,'template2.html',con)  

 

你可能感兴趣的:(Django)