如何在Django模板中呈现变量?

2024-04-29 15:53:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是在HTML页面中动态地编写一些图片的url。URL存储在数据库中。

为此,首先我尝试在模板中呈现一个简单的varable。阅读文档和其他来源,应分三步完成:

对于配置:在settings.py中

TEMPLATES = [
{
    'OPTIONS': {
        'debug': DEBUG,
        'context_processors': [
            …
            'django.template.context_processors.request',
            'django.template.context_processors.debug',
            'django.template.context_processors.i18n',
            'django.template.context_processors.media',
            'django.template.context_processors.static',
            'django.template.context_processors.tz',
            'django.contrib.messages.context_processors.messages',            ],
    },
},

]

模板中的变量名在MyHTMLFile.html中是foo

…
<td>MyLabel</td><td><p>{{ foo }}</p></td><td>-----------</td>
…

在view.py中,其中一行

myvar1 ="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
context = {foo: myvar1,}

return render_to_response("MyHTMLFile.html", context, context_instance = RequestContext(request) )
return render(request, 'MyHTMLFile.html', {foo: myvar1})
return render_to_response("MyHTMLFile.html", context , context_instance=RequestContext(request) )
return render(request, 'MyHTMLFile.html', context)

html页面呈现得很好,但是html表中没有数据。

你有主意吗?我很想知道我误解了什么。

关于版本,我使用: Python:Python2.7.13 姜戈:1.10.5

谢谢你


Tags: djangopy模板returnfoorequesthtmlcontext
1条回答
网友
1楼 · 发布于 2024-04-29 15:53:54
context = {foo: myvar1,}

这应该给您一个NameError,除非您当然有一个名为foo的变量,在这种情况下,它可能包含也可能不包含字符串foo。简而言之,您没有向模板发送正确的数据。应该是

context = {'foo': myvar1,}

然后

return render_to_response("MyHTMLFile.html", context, context_instance = RequestContext(request) )
# Below this line code will not be executed.
return render(request, 'MyHTMLFile.html', {foo: myvar1})
return render_to_response("MyHTMLFile.html", context , context_instance=RequestContext(request) )
return render(request, 'MyHTMLFile.html', context)

注意,return关键字从函数返回。之后的代码不会被执行。

最后,render_to_响应已弃用。render是要使用的当前函数。

相关问题 更多 >