首页 > 其他分享 >Django之模板层

Django之模板层

时间:2023-02-28 14:56:21浏览次数:52  
标签:调用 name 前端 Django 语法 模板 传值

目录

模板语法传值

特性:

# 1. 传值调用
* {{ xxx }}  : 主要与数据值相关
      1. 八大数据类型:都可以传值
      2. 函数: 可以传,但不支持传参数,返回到前端内容为后台函数的返回值
      3. 类名:传到前端会自动加括号,产生一个对象,返回给前端一个对象
      4. 对象:传到前端就是一个对象,对象还可以使用点的方式点它定义过的方法。
      5. 文件对象可以展示并调用方法

* {% xxx %}  : 主要用与逻辑相关,如for/if等,加载模块,加载静态文件等。
# 2. 方法调用
* 对于需要使用()符号进行调用的方法,在前台不需要加()调用,只需要点名字.xxx即可。如:
# 后台传值为:
f=open(r'xxx', 'rb')
# 前台调用:
{{ f }}
# 前台调用read方法
{{ f.read }}  # 最后不需要加括号
  • 方法一:有针对性的传值
def myFunc(request):
    name = 'jack'
    age = 18
    hobby = 'draw'
	# 使用键值对传值,键的名字自定义,值的名字为变量名
    return render(request, 'login.html', {'my_num1': name, 'my_num2': age, 'my_num3': hobby})
  • 方法二:直接传全部值
def myFunc(request):
    name = 'jack'
    age = 18
    hobby = 'draw'
	# 使用locals()直接传所有值,传到前台调用时,键就是变量名,值为变量对应的值。
    return render(request, 'login.html', locals())
  • 优缺点
  1. 方法一 优点:传值比较有针对性,需要什么传什么,有针对性,节省资源。 缺点:键值对编写繁琐,浪费时间
  2. 方法二 优点:传值比较方便,不需要挨个指定键值对。 缺点: 会传不必要的值到前端,浪费资源

模板语法注释

<!-- xxx -->   # 这种前端在查看源码时可以看到此注释
{# xxxxxx #}   # 这种注释,前端查看源码时看不到

模板语法之常用过滤器

  • 相当于python的内置函数
    语法: {{ value|filter_name:参数 }}
{{ value|default: "nothing"}}  # 如果value值没传的话就显示nothing
{{ x|add:10 }}             # 后台传入的变量x如果为数值则进行加法运算,如果为str,则进行拼接
{{ x|length }}             # 显示字符串长度
{{ x|slice:'1:4' }}        # 切片,示例中为从索引1切到索引4
{{ x|truncatechars:3 }}    # 选3个字符(实际是2个,最后未被显示的以“...”结尾,也算一个字符),主要用于摘要
{{ x|truncatewords:1 }}    # 按单词截取(其实是以空格截取)(截取1个单词,其余以"..."显示)

ctime = datetime.today()
{{ ctime|date:'Y-m-d' }}   # 显示时间
{{ ctime|date:'Y年-m月-d日 H:i:s' }}   # 显示时间,也可以自己加字符进行显示

# 文件大小
file_size=77210
{{ file_size|filesizeformat }}  # 把数据使用最佳单位进行展示,后台数字指的是字节

# 
h1 = <h1>我是一个后端</h1>
<p>{{ h1|safe }}</p>  # 这样传到前端会自动识别成h1标题

标签:调用,name,前端,Django,语法,模板,传值
From: https://www.cnblogs.com/smyz/p/17160379.html

相关文章

  • Django框架课-用户名密码登录
    Django框架课-用户名密码登录创建账号系统建立player表数据库里的表对应的是django里的class进入acapp/game/models里。models文件夹里是存放数据库表的。新建player......
  • 模板引用 ref
    虽然Vue的声明性渲染模型为你抽象了大部分对DOM的直接操作,但在某些情况下,我们仍然需要直接访问底层DOM元素。要实现这一点,我们可以使用特殊的 ref attribute:访问......
  • 元旦了,发布一个2009年的年历模板
     元旦了,发布一个2009年的年历模板。(下载地址在这里找到“2009年万年历模板”之后点击下载,下载之后的文件名为:ChineseCalendar4c_3r.png)你可以使用Photoshop或其他图像处理......
  • leetcode之——二分法模板
    classSolution:defsearch(self,nums:List[int],target:int)->int:n=len(nums)left,right=0,n-1whileleft<=right:k=(right-left)//2+left......
  • oracle的listener.ora和tnsnames.ora文件模板
    oracle经常要用到这2个文件。在这里提供下模板,方便参考。2个文件的位置在​​​$ORACLE_HOME​​​下的​​network/admin​​文件夹下。文章目录​​oracle11g版本​......
  • Django的配置文件介绍
    Django的配置文件#pathlib#3.6以后,处理文件路径的模块,原来是os,#面试题,md5是对称加密还是非对称加密 -对称加密:加密的秘钥和解密的秘钥是同一个-非对称加......
  • 路飞项目,后台日志封装,全局异常处理,封装response,luffy数据库创建,软件开发模式,user模块
    内容回顾虚拟环境两个模块virtualenv—>virtualenv.exe用来创建虚拟环境virtualenvwrapper-win—>virtualenvwrapper.bat批处理文件,命令简化命令:创建mkvirtualev......
  • Django uwsgi问题解析
    通常情况下,部署Django应用到生产环境时都会通过uwsgi部署,uwsgi一些配置项配置问题有可能会导致服务出现502状态码或者其他超时等的情况常用到的配置项如下:reload-on-as......
  • 路飞之-后台日志封装-前后端分离的rbac项目演示-全局异常处理封装-封装Response-luffy
    目录路飞之-后台日志封装-前后端分离的rbac项目演示-全局异常处理封装-封装Response-luffy数据库创建-软件开发模式-User模块用户表-django的配置文件-开启media访问今日内......
  • 17.django中的Contenttypes
     Contenttypes是一个app,将Django中的所有定义的表定义在一张表中INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.c......