经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
django-模板层基础2
来源:cnblogs  作者:L_lemon  时间:2018/11/14 10:03:08  对本文有异议
  1. 1、模板的导入
  2. {% include 模板名%}
  3. 首先在你的的项目中,需要很多地方用到同一个组件(相对于头部,你进行每个页面的切换,网页最上面的头部不需要改变),那么
  4. 这样我们可以把那个头部重新写在一个模板中,其他每个页面需要用到话,就直接在模板中导入头部那个模板
  5. {% include 'head.html'%}就可以了
  6.  
  7. 2、模板的继承
  8. 上面模板的导入的用处就是:被导入的模板运用到某个模板中一部分。
  9. 而模板的继承呢?
  10. 就是其他模板基于一个模板(母版),就一部分需要改变,其他不需要变化,那么就用上模板的基础了
  11. 首先:你需要自己写一个模板,并在需要随url改变的内容写
  12. {% block 名字 %}
  13. {% endblock %} #相当于在母版中占了快区域
  14. 然后:你其他模板需要基础改模板进行修改的话,你必须先要继承母版 {% extend 母版名%}
  15. 写好了,就在下面写
  16. {% block 名字 %}
  17. 中间就是一系列代码块
  18. {% endblock %}
  19.  
  20. 总结:1、我们用模板的继承,导入为的是减少代码冗余
  21. 2、母版中可以有多个{% block 名字 %}
  22. {% endblock %}
  23. 3、你也在母版中的block标签中写一些代码,为何叫继承呢?面向对象应该知道吧,我在其他母版中写{% extend 母版名%},
  24. 也就是继承了母版,block相当于基类的方法,我在子类写一个相同的方法,最终是实现子类里的方法。
  25. 所以你在母版中block写了代码,你子类block也写了代码,母版中block的代码不会执行。(前提block名是一样的)
  26.  
  27. 3、静态文件操作
  28. 静态文件的一些知识不说了,
  29. 假设:我在模板中多次引用到了静态文件的文件,我的setting里的STATIC_URL = '/static/'STATIC_URL的值发生了
  30. 改变,变成了'/static11/',那么我模板那些用到静态文件的地方,肯定是用不了,改的话还要一个一个去改,是不是很麻烦
  31.  
  32. 解决方法:哈哈,这个假设是不是熟悉,对,就是反向解析。我们也可以和解决反向解析一样的思路
  33. 方法一:
  34. 在模板中,我们先导入一个py文件 {%load static%} #这个是不是我们自定义标签那里用到过,索引这个static是文件
  35. 导入该文件之后,我们就可以使用标签了 {% static 'css/my_css.css' %} 就算不看源码,我们也应该知道大致怎么实现。
  36. 他肯定是使用了os.path.join()类似的方法对吧,路径拼接。
  37. 方法二:
  38. 和方法一一样,先导入static文件{%load static%}
  39. 然后 '{% get_static_prefix %}css/mycss.css ',这就是简单的字符串操作吧,
  40. 那么我们就应该能知道{% get_static_prefix %}这个标签的返回值应该就是settings文件里的STATIC_URL,对吧。

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号