Django模板1

254 阅读1分钟

配置模板

方式1: 在项目根目录下,创建一个templates文件夹,在其内部放入一些定义好的xxx.html,
这些页面只是一些简单的框架,在实际渲染的时候,可以根据需要传入数据,返回给前端浏览器。这些html文件就是模板页面。
/templates/index.html /templates/app1/index.html
然后,进入settings.py 进行配置

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,"templates")],
        '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',
            ],
        },
    },
]

DIRS,根目录下的模板路径,添加[os.path.join(BASE_DIR,"templates")]

APP_DIRS,是否到应用下的templates下搜索模板,默认True

方式2: 不处理settings.py 配置文件,直接在app目录下创建templates/appname/index.html

加载模板

方式1:

from django.template import loader
from django.http import HttpResponse
def view_func(request):
	t = loader.get_template("index.html") #或者appname/index.html
	html = t.render(dict_data) #html str
	return HttpResponse(html)

方式2:

from django.shortcuts import render
def view_func(request):
	return render(request,"index.html",dict_data)

模板变量

在模板内部,直接使用dict_data 的key,获取对应的value {{ key }}

value的数据类型: str, int, list/tuple/dict/obj/func

#在视图中实现
class Test():
	def __init__(self):
		self.name = "this is an obj"
	def run(self):
		print("python obj running...")
		return "python obj runned"
dict_data = {
	"name":"jack", #str
	"age":23,    #int
	"friends":["jack","tom","lucy"], #list
	"sex":("female","male"), #tuple
	"data":{"k1":"v1","k2":"v2"}, #dict
	"obj":Test(),#obj
}

图片描述
对象调用函数,直接obj.func 返回值显示在页面

模板标签

{% for i in klist %} 将一些功能嵌入到模板中

#index.html
{% for friend in friends %}
<div>{{friend}}</div>
{% empty %}
<div>friends is_ empty</div>
{% endfor %}

#条件判断
{% if name %}
<div>{{name}}</div>
{% elif age %}
<div>{{age}}</div>
{% else %}
<div>xxxx</div>

{% endif %}

练习

1.GET 请求 /calculator 返回calc.html
![需求图片](img-blog.csdnimg.cn/20210407233… =500x) 2. 点击计算,POST 请求/calculator ,返回计算结果 显示在calc.html页面中

上一篇:请求与响应
下一篇:Django模板2