前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django 中如何将字典变量传给template视图层的JS

django 中如何将字典变量传给template视图层的JS

作者头像
酒馆丁老师
发布2020-09-08 14:41:01
3.8K0
发布2020-09-08 14:41:01
举报

django中,将view.py中的数据绑定到template中的html 中,我们可以用 render 函数携带 context 参数,复杂的数据结构可以用字典来组织,字典其实就是PHP中的关联数组,java中的map。

目录

1. view.py传递参数

2. create_task.html 中JS解析参数

3. django 其他过滤器

1

view.py传递参数

view.py 中,定义了一个入口,返回某三层目录,first_level 是第一层,是个列表,second_level 是第二层,是个字典,third_level 是第三层,是个字典,要将 second_level,third_level 传递给create_task.html,需要先转化成json 数据,然后放到context 里面。

代码语言:javascript
复制
def new_task(request):
    context = {}
    #读取 目录层级结构
    root_path = 'G:\\python\\02-dart\\dart\\'
    first_level = get_file_list(root_path)
    second_level = {}
    for one in first_level:
        second_level[one] = get_file_list(root_path+one)
    third_level = {}


    for k,v in second_level.items():
        for sub in v:
            third_level[k+sub]=get_file_list(root_path+k+sub)
    context['first_level'] = first_level
    context['second_level'] = json.dumps(second_level)
    context['third_level'] = json.dumps(third_level)
    print(second_level)
    print('----')
    print(third_level)


    return render(request, 'create_task.html', context)

2

create_task.html 中JS解析参数

create_task.html 中JS 解析时,{{ second_level|safe }} 一定要加上safe过滤器,要求不对字符进行转义。

代码语言:javascript
复制
<script type="text/javascript">
 
    var second_level = {{ second_level|safe }}

    console.log(second_level)
     $('#first_level').change(function () {

    })
    
    $('#second_level').change(function () {


    })
</script>

3

django 其他过滤器

代码语言:javascript
复制
    {{ a|safe }}  于django输出前,要求不对字符进行转义。自动转义关闭时自动失效

  {{ time|date:'Y-m-d H:i:s' }}  格式化输出时间  年月日时分秒

  {{ list|join:',' }}  相当于 ‘,’.join(list)

  {{ str|truncatechars:8 }}  显示内容为5个字符与3个点号 共8个字符

  {{ str|truncatechars:8 }}  同上 显示单位为单词 按空格辨别

  {{ str|length }}  str的长度

  {{ list|slice:'0-2' }}  切片索引0-2不含2

  {{ var|default:'xxx' }}  为var设置默认值为‘xxx’

  {{ str|lower }}{{ str|upper }}  输出显示为小/大写

  {{ int|filesizeformat }}  转为内存大小单位 类似于2GB 1TB

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 丁老师的技术随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档