加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

python的Web框架,Django模板变量,过滤器和静态文件引入

发布时间:2020-12-15 17:16:19 所属栏目:大数据 来源:网络整理
导读: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( ))) TEMPLATES = : :[os.path.join(BASE_DI

<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()))
TEMPLATES = : :[os.path.join(BASE_DIR, ]

<p data-source-line="35">如果APP_DIRS为True,则会在'DIRS'找完之后,在'INSALLSE_APPS'的列表目录下寻找


<div class="cnblogs_code">

 INSTALLED_APPS =     
     
          
                               ]

<p data-source-line="50">只要找到了符合的模板就返回,不再向下继续找了,所以优先级和路径很重要


context={例: </span><span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt;view文件内配置传送:</span> <span style="color: #0000ff;"&gt;def</span><span style="color: #000000;"&gt; index(request): now </span>=<span style="color: #000000;"&gt; datetime.now() </span><span style="color: #0000ff;"&gt;return</span> render(request,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;index.html</span><span style="color: #800000;"&gt;'</span>,context=<span style="color: #000000;"&gt;{ </span><span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;nows</span><span style="color: #800000;"&gt;'</span><span style="color: #000000;"&gt;:now </span><span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt;此处对应的字典传送给index.html</span>

<span style="color: #000000;"> })

</span><span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; index模板文件内配置接受:</span>
 <body>
    <h2>当前时间为:{{nows}}</h2>
    <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt;此处的nows是对应的view文件中的key</span>
 </body></pre>

<p data-source-line="82">时间格式设置,设置的时间格式并不是我们想要的时区时间,就需要修改时间的参数。


<pre data-source-line="83"><code class="hljs"> setting<span class="zh-hans">中设置:
<div class="cnblogs_code">

 TIME_ZONE = 

<p data-source-line="88">模板变量各种方法:


<p data-source-line="91">html接受的语法及输出的结果:下列的列表、字典、函数等需要再views文件中配置才可以接受


<div class="cnblogs_code">

 
     列表: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 **渲染失败返回空**

传递的参数例子,为一下内容提供参数例子

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:}}


   当前时间11时53分11秒

<p data-source-line="158">date和time过滤器格式


<div class="cnblogs_code">

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">输出结果


<div class="cnblogs_code">

     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">输出结果


<div class="cnblogs_code">

     首字母的大小写方法:ABc

<h5 id="default如果变量解析失败则返回给定的默认值当value是空字符串也会输出默认值" data-source-line="203">default:如果变量解析失败,则返回给定的默认值,当value是''空字符串,也会输出默认值。
<div class="cnblogs_code">

        
       
       
 
 解析失败则返回默认值:{{ func|default:"nothing" }}

输出结果

解析失败则返回默认值:nothing

<h5 id="firstlast第一个元素和最后一个元素" data-source-line="208">first,last:第一个元素和最后一个元素
<div class="cnblogs_code">

     

列表的第一个元素:{{ lt|first }}

列表的最后一个元素:{{lt|last}}

<p data-source-line="213">输出结果


<div class="cnblogs_code">

     列表的第一个元素:1
     列表的最后一个元素:3

<h5 id="slice切片" data-source-line="219">slice:切片
<div class="cnblogs_code">

     

我是列表的倒序:{{ lt|slice:}}

<p data-source-line="223">输出结果:


<div class="cnblogs_code">

     我是列表的倒序:[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">输出结果


<div class="cnblogs_code">

     把字典的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">输出结果


<div class="cnblogs_code">

     列表的长度是: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">输出结果


<div class="cnblogs_code">

      字符都变大写:ABC

<h5 id="title标题化首字母大写" data-source-line="266">title:标题化,首字母大写
<div class="cnblogs_code">

     

title标题化:{{ dt.text|title }}

<p data-source-line="270">输出结果:


<div class="cnblogs_code">

     title标题化:I Am Hua

<p data-source-line="275">过滤器可以用链式的方式:


<div class="cnblogs_code">

|default:|add:}}

<h5 id="safe关闭变量的自动转义使html标签生效xss跨域脚本攻击" data-source-line="281">safe:关闭变量的自动转义,使html标签生效,xss跨域脚本攻击
<p data-source-line="282">反射型和存储型,因为浏览器会解析css和js,所以django帮我们管理这方面的问题。


<div class="cnblogs_code">

    js = alert("1")= 我是安全的,需要渲染成html
<p>{{ html|safe }}</p><span style="color: #000000;"&gt;

添加了safe后,才会执行这段代码,而不是转义成文本格式。</span></pre>



STATIC_URL =


STATICFILES_DIRS = [os.path.join(BASE_DIR,)]

<p data-source-line="307">静态文件的引入


<p data-source-line="309">-硬编码


<pre data-source-line="310"><code class="hljs"> <span class="zh-hans">在css<span class="zh-hans">文件夹下创建了同名的css<span class="zh-hans">文件。然后在html<span class="zh-hans">中的head<span class="zh-hans">内引入文件
<div class="cnblogs_code">

href=>

<p data-source-line="318">-模板标签,动态解析


<div class="cnblogs_code">

{% load static % href=>

                        

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读