我想在django的模板中使用名为“files”的变量的内容。我的views.py看起来像这样:
from django.shortcuts import render
import os
def index(request):
os.chdir("/home/ubuntu/newproject/static")
for files in os.listdir("."):
return render(request, 'sslcert/index.html','files')
我的名为“index.html”的模板如下所示:
<head>
{% block title %}
<h3>
Following directories are in this folder:
</h3>
{% endblock %}
</head>
<body>
<<(HERE SHOULD BE THE OUTCOME OF THE VARIABLE LIST)>>
</body>
帮助也会非常酷和解释:/我是django的真正初学者,我想知道这个模板和视图的内容是如何连接的:)请不要讨厌我,如果这个问题真的很愚蠢:(< / p>
答案 0 :(得分:3)
您可以将变量传递给模板,如下所示:
from django.shortcuts import render_to_response
def index(request):
os.chdir("/home/ubuntu/newproject/static")
for file in os.listdir("."):
files.append(file)
return render_to_response('sslcert/index.html', {'files':files})
在模板中,您可以使用它:
{{files}}
如果你想使用整个字段,或者你可以遍历它们
{% for file in files %}
# do something with file here
{% endfor %}
答案 1 :(得分:2)
做类似的事情:
from django.shortcuts import render
import os
def index(request):
os.chdir("/home/ubuntu/newproject/static")
files = []
for file in os.listdir("."):
files.append(file)
context = {'files':files}
return render(request, 'sslcert/index.html', context)
然后是模板:
<head>
{% block title %}
<h3>
Following directories are in this folder:
</h3>
{% endblock %}
</head>
<body>
{{ files }}
</body>
答案 2 :(得分:0)
渲染函数您正在使用的示例中获得了字典参数,可以扩展传递给模板的上下文
render(request,template_name [,dictionary] [,context_instance] [,content_type] [,status] [,current_app] [,dirs])
字典 要添加到模板上下文的值的字典。默认情况下,这是一个空字典。如果字典中的值是可调用的,则视图将在呈现模板之前调用它。
因此您可以将任何数据作为字典传递到模板中,哪些键在模板中可用作变量
from django.shortcuts import render
def index(request):
dir = "/home/ubuntu/newproject/static"
return render('sslcert/index.html', {'files': os.listdir(dir)})