刨析django---模板1


根据视图传进来的字典数据,可以动态显示数据的html页面
使用方式:
render(request,“template.html”,dict_data)

配置模板

方式1:
项目根目录下,创建一个templates文件夹,在其内部放入一些xxx.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
在这里插入图片描述
2. 点击计算,POST 请求/calculator ,返回计算结果
显示在calc.html页面中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值