• django的小操作,查询效率up, 引用art-template模板+djangorestframework


    Part1: 提高查询效率
    newses = News.objects.select_related('category', 'author').get(id=1) # category和author字段为News表的外键, 使用select_related查询,会等待前端请求完毕后一次性查询出所有的数据

    前端:
    {% for news in newses %}
      {{ news.category.name }}
      {{ news.author.username }} # 这两个字段为外键
    {% endfor %}

    这样能减少查询的次数,提高效率

    Part2:
    后端通过djangorestframework传送art-tenplate模板需要的数据
    详情下一篇 。。https://www.cnblogs.com/tangpg/p/9300256.html

    art-template模板
    引入template-web.js文件,官网Github中lib文件夹中,can copy after Raw
    并声明django不解析该模板,
    each模块的使用,
    {*
        用一个type="text/html"的script标签存放模板:
        HTML代码
    *}
    {% verbatim %} 向django声明不解析该模板
    <script id="test" type="text/html"> <h1>{{title}}</h1> <ul> {{each list as value i}} <li>索引 {{i + 1}} :{{value}}</li> {{/each}} </ul> </script>
    {% endverbatim %} // 渲染模板 js代码 var data = { title: '标签', list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他'] }; var html = template('test', data); // document.getElementById('content').innerHTML = html;

    // 指定添加到box这个地方
    var box = $('#box-for-art-template-model');
    box.append(html)

    django 的 model的pk属性代表model的primary key

     New.pk = New.id

    class New(models.Model):
         
        id = models.IntegerField(primary_key=True)
        name = models.CharField(max_length=100)
  • 相关阅读:
    python 网络编程 socket模块中的常用方法
    python 网络编程 主要是黏包 三种解决方案
    python 网络编程 tcp/dcp 通信 和 时间同步机制
    python 网络编程 计算机部分基础 和初识tcp和udp
    python 包和模块
    python 包和模块 有固定的包格式自己注意
    Jquery常用的一些事件 keyup focus
    常规的页面布局
    校验输入正整数
    遍历input文本框
  • 原文地址:https://www.cnblogs.com/tangpg/p/9299415.html
Copyright © 2020-2023  润新知