<h3 id="html模板的路径查找" data-source-line="2">HTML模板的路径查找
<p data-source-line="4">在setting中设置查找路径:
<div class="cnblogs_code">
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath()))
<h3 id="html模板的路径查找" data-source-line="2">HTML模板的路径查找
<p data-source-line="4">在setting中设置查找路径:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath()))
<p data-source-line="35">如果APP_DIRS为True,则会在'DIRS'找完之后,在'INSALLSE_APPS'的列表目录下寻找
INSTALLED_APPS =
]
<p data-source-line="50">只要找到了符合的模板就返回,不再向下继续找了,所以优先级和路径很重要
<h3 data-source-line="56">
<h3 id="静态页面动态页面" data-source-line="56">静态页面,动态页面
<p data-source-line="57">静态页面是没有改变,获取到网页后,是固定样式的; 动态页面是和服务器有交互的页面,在与服务器交互后,返回的页面会有不同的页面返回给浏览器
context={例:
</span><span style="color: #008000;">#</span><span style="color: #008000;">view文件内配置传送:</span>
<span style="color: #0000ff;">def</span><span style="color: #000000;"> index(request):
now </span>=<span style="color: #000000;"> datetime.now()
</span><span style="color: #0000ff;">return</span> render(request,<span style="color: #800000;">'</span><span style="color: #800000;">index.html</span><span style="color: #800000;">'</span>,context=<span style="color: #000000;">{
</span><span style="color: #800000;">'</span><span style="color: #800000;">nows</span><span style="color: #800000;">'</span><span style="color: #000000;">:now
</span><span style="color: #008000;">#</span><span style="color: #008000;">此处对应的字典传送给index.html</span>
<span style="color: #000000;"> })
</span><span style="color: #008000;">#</span><span style="color: #008000;"> index模板文件内配置接受:</span>
<body>
<h2>当前时间为:{{nows}}</h2>
<span style="color: #008000;">#</span><span style="color: #008000;">此处的nows是对应的view文件中的key</span>
</body></pre>
<p data-source-line="82">时间格式设置,设置的时间格式并不是我们想要的时区时间,就需要修改时间的参数。
TIME_ZONE =
<p data-source-line="88">模板变量各种方法:
列表:lt = [1,2,3 我是一个列表:{{lt}}
输出:[1,3 我是列表中的第二个值:{{lt.2}}
输出:2
我是一个函数:{{func}}
字典:dt = {:,:18,: 我是一个字典:{{dt}}
输出:{:,:18 我是字典的一个值:{{dt.name}}
调用字典的一个方法{{dt.items}}
输出:abc; 如果字典中没有 1
1 2 -1 -2 -3 3
**渲染失败返回空**
<h4 id="模板过滤器" data-source-line="132">模板过滤器
<p data-source-line="135">传递的参数例子,为一下内容提供参数例子
now =
lt = [1,3
dt = {:,:,:
<h5 id="日期时间的格式化datetime" data-source-line="146">日期,时间的格式化date,time
<pre data-source-line="147"><code class="hljs"><span class="xml"><span class="zh-hans">以上列代码传送的参数 <span class="zh-hans">时间now<span class="zh-hans">为例:
<div class="cnblogs_code">
当前日期时间{{now|date:}}
当前时间{{now|time:}}
<p data-source-line="158">date和time过滤器格式
Y:四位数的年。如:19999901,091,9,1201, 09, 311, 9, 121, 9 ,128 ,2301, 09, 1201, 13, 24-59-59
<h5 id="add将参数与值相加首先尝试转换成整数相加如果失败则尝试其他多有可能valueaddvalue" data-source-line="174">add:将参数与值相加,首先尝试转换成整数相加,如果失败,则尝试其他多有可能,{{value|add:'value'}}
<div class="cnblogs_code">
1列表值的相加:{{ lt.1|add: }}
2列表值的相加:{{ lt.1|add: }}
2列表值的相加:{{ lt.1|add:3.5 }}
函数的值为{{ func|add: }}
<p data-source-line="183">输出结果
1列表值的相加:5
2列表值的相加:5
3函数的值为:我是一个函数haha
<h5 id="capfirst首字母大写" data-source-line="194">capfirst:首字母大写
<div class="cnblogs_code">
首字母的大小写方法:{{ dt.items|capfirst }}
<p data-source-line="198">输出结果
首字母的大小写方法:ABc
<h5 id="default如果变量解析失败则返回给定的默认值当value是空字符串也会输出默认值" data-source-line="203">default:如果变量解析失败,则返回给定的默认值,当value是''空字符串,也会输出默认值。
<div class="cnblogs_code">
解析失败则返回默认值:{{ func|default:"nothing" }}
输出结果
<h5 id="firstlast第一个元素和最后一个元素" data-source-line="208">first,last:第一个元素和最后一个元素
<div class="cnblogs_code">
列表的第一个元素:{{ lt|first }}
列表的最后一个元素:{{lt|last}}
<p data-source-line="213">输出结果
列表的第一个元素:1
列表的最后一个元素:3
<h5 id="slice切片" data-source-line="219">slice:切片
<div class="cnblogs_code">
我是列表的倒序:{{ lt|slice:}}
<p data-source-line="223">输出结果:
我是列表的倒序:[3,1]
<h5 id="join连接字符串列表与strjoinlist一样" data-source-line="228">join:连接字符串列表,与str.join(list)一样
<div class="cnblogs_code">
把字典的value连接起来:{{ dt.name|join:}}
<p data-source-line="232">输出结果
把字典的value连接起来:张xxx三
<h5 id="floatformat浮点数格式化不指定小数位参数默认保留一位" data-source-line="237">floatformat:浮点数格式化,不指定小数位参数,默认保留一位
<div class="cnblogs_code">
34.23234 {{ value|floatformat}} 34.2
34.23234 {{ value|floatformat:3}} 34.232
<h5 id="lengthlength_is返回字符串或列表的长度" data-source-line="244">length,length_is:返回字符串或列表的长度
<div class="cnblogs_code">
列表的长度是:{{ lt|length}}
列表的长度是{{ le|length }}?:{{ lt|length_is:3 }}
<p data-source-line="249">输出结果
列表的长度是:3
列表的长度是3吗?:True
<h5 id="lower-upper-字符串中的字符都变小写和大写" data-source-line="255">lower,upper :字符串中的字符都变小写和大写
<div class="cnblogs_code">
字符都变小写:{{ dt.items|lower }}
字符都变大写:{{ dt.items|upper }}
<p data-source-line="260">输出结果
字符都变大写:ABC
<h5 id="title标题化首字母大写" data-source-line="266">title:标题化,首字母大写
<div class="cnblogs_code">
title标题化:{{ dt.text|title }}
<p data-source-line="270">输出结果:
title标题化:I Am Hua
<p data-source-line="275">过滤器可以用链式的方式:
|default:|add:}}
<h5 id="safe关闭变量的自动转义使html标签生效xss跨域脚本攻击" data-source-line="281">safe:关闭变量的自动转义,使html标签生效,xss跨域脚本攻击
<p data-source-line="282">反射型和存储型,因为浏览器会解析css和js,所以django帮我们管理这方面的问题。
js = alert("1")= 我是安全的,需要渲染成html
<p>{{ html|safe }}</p><span style="color: #000000;">
添加了safe后,才会执行这段代码,而不是转义成文本格式。</span></pre>
<h3 id="静态文件" data-source-line="296">静态文件
<p data-source-line="298">settings文件中设置静态文件路径的配置
<pre data-source-line="299"><code class="hljs"> <span class="zh-hans">默认是<span class="hljs-keyword">static<span class="zh-hans">,但也可以更改为其他
STATIC_URL =
<p data-source-line="307">静态文件的引入
<p data-source-line="318">-模板标签,动态解析
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。