[django]模板template原理

时间:2021-11-21 02:37:42

django 中的render和render_to_response()和locals(): http://www.cnblogs.com/wangchaowei/p/6750512.html

什么是contetxt

https://www.zhihu.com/question/26387327

context可以理解为环境变量,不同的环境中意义不同

template模板渲染怎么回事?

def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
>>> python manange.py shell  # (进入该django项目的环境)
>>> from django.template import Context, Template
>>> t = Template('My name is {{ name }}.')
>>> c = Context({'name': 'Stephane'})
>>> t.render(c)
'My name is Stephane.'
# Low
for name in ('John', 'Julie', 'Pat'):
t = Template('Hello, {{ name }}')
print t.render(Context({'name': name})) # Good
t = Template('Hello, {{ name }}')
for name in ('John', 'Julie', 'Pat'):
print t.render(Context({'name': name}))
def current_time(req):

    #django模板修改的视图函数
now=datetime.datetime.now()
t=Template('<html><body>现在时刻是:<h1 style="color:red">{{current_date}}</h1></body></html>')
#t=get_template('current_datetime.html')
c=Context({'current_date':now})
html=t.render(c)
return HttpResponse(html)

https://docs.djangoproject.com/zh-hans/2.1/topics/http/shortcuts/

[django]模板template原理

调用关系

render调用HttpResponse

[django]模板template原理

[django]模板template原理

[django]模板template原理

[django]模板template原理

[django]模板template原理

[django]模板template原理

[django]模板template原理

[django]模板template原理

[django]模板template原理

template细节整理

1.
redirect:url发生改变
和render区别, render url没有发生变化.
-
2.
return render(request,"login.html",locals()) 模板
渲染原理
template
contentxt
t.render(context) render函数
arr.1
d.name
obj.name template函数:
https://docs.djangoproject.com/en/2.0/ref/templates/builtins/
{{ value|truncatechars_html:9 }}
<p>Joel i...</p> http://www.cnblogs.com/yuanchenqi/articles/6083427.html
搜索fliter. add : 给变量加上相应的值 {{ value2|add:3 }}
addslashes : 给变量中的引号前加上斜线
capfirst : 首字母大写
cut : 从字符串中移除指定的字符
date : 格式化日期字符串
default : 如果值是False,就替换成设置的默认值,否则就是用本来的值
default_if_none: 如果值是None,就替换成设置的默认值,否则就使用本来的值 1,时间
#import datetime
#value4=datetime.datetime.now()
{{ value4|date:'Y-m-d' }}<br> 2.#value5=[]
{{ value5|default:'空的' }}<br>, 结果是true
default_if_none, 结果是none 3,safe方法
# a = '<a href=''>click</a>'
# 返回给模板
{{ a|safe }} #默认字符串, 将链接解析 {% autoescape off %}
<h1>{{a}}</h1>
{% endautoescape %}