zoukankan      html  css  js  c++  java
  • cookie和session

    昨日内容:

    一对一:

    models.py: OneToOneField

    views.py:

    从母表查询子表的数据

    反向查询 res.子表表名小写.子表的字段名

    从子表查询母表的数据

    正向查询

    res.关联字段.母表的字段名

     

     

    多对多

    1. models.py:

      class Boy(models.Model):

      bname = models.CharField(max_length=32)

      class Boy(models.Model):

      bname = models.CharField(max_length=32)

      class b2g(models.Model):

      b = models.Foreignkey("boy",null=True)

      g = models.Foreignkey("girl",null=True)

    2. views.py

      添加记录有2种方法、

      bobj = models.Boy.objects.filter(bname='雷俊').first()
      gobj = models.Girl.objects.filter(gname='乔碧萝').first()

      #models.Boy2Girl.objects.create(b_id=bobj.id,g_id=gobj.id)
      models.Boy2Girl.objects.create(b=bobj,g=gobj)

    3. 查询:3种方法 3.1 自己写第三张表

      #需求 查找和雷俊约会的菇凉

      res = models.Boy.objects.filter(bname='雷俊').first()
      love_list = res.boy2girl_set.all()
      for love in love_list:
         print(love.g.gname)
         
      2.
      res = models.Boy.objects.filter(b__bname='雷俊').all()
      for love in res:
         print(love.g.gname)

      3.
      res = models.boy.objects.filter(b__bname='雷俊').values('g_gname').all()
      print(res)

      3.2 不写第三张表,使用manytomanyField

      models.py:
         class Boy(models.Model):
             bname = models.Charfield(max_length=32,null=True)
             +
             v
    4. 推荐:使用第一种,灵活性高,扩展性强,可控性强,第二种字段只能生成2个。

    数据表类型

    int

    bigint

    float

    decimanl

    text

    datetime

    参数:

    null

    defaule

    primary_key

    db_index

    unique

    db_column

    class Meta:

    #联合唯一索引

    unique_together=[

    ("b","g")

    ]

    #联合索引

    index_together

    django-admin:

    数据列类型:

    EmailField:

    Filefield:上传文件

    ip......

    参数:

    blank是否可以为空

    verbose_name

    分页

    1. 内置分页

      res = Paginator(要分页的数据列表,每页显示的数据)

      users = res.page(当前页码) # 当前页码的所有数据和属性

      缺点:

      只能将所有的页码循环展示

    2. 自定制分页

    今日内容:

    1. 模板引擎

      • 基本数据类型的渲染 -字符串,整数,小数 -列表 -字典 -列表套字典 自己多打印

      • 母版 -后台管理布局页面(layout.html)

        {% block mycontent %}

        -子版页面需要继承母版页面

      • 导入模块 include

        {% include "XX模板.html" %}

     和python不同的一点,python导入模块无论数量都是1个,但是include,导入几个就有几个
    • 内置函数

    • 自定义函数

      a.在app中创建templatetags目录

      b.在上述的目录中创建XXX.py

      c.在XXX.py中

      在XXX.py文件中的时候

      from django import template

      residter = temples.Library

      @regiseter.filter

      def my_filter(var,args):

      return val+agrs

      #不建议大家使用,

    1. session cookie(重点,重中之重)

      session将cookie的value值转为session的key值


      """
      1.将客户端回写一个{session_id:'xxxxxxxx'}
      2.将客户的隐私信息存在服务端的额数据库中,也就时session不存在数据库,默认放在django_session表中

      {"XXXXXX":{"name":'zekai',"age":12 }}
      """
      request.session['name']=username

    2. 中间件

    3. MVC和MTV

    4. csrf

  • 相关阅读:
    nodejs日志管理log4js
    js数组去重的几种方法
    Echarts同一页面多个图表自适应浏览器窗口大小——window.onresize
    Echarts自适应浏览器大小
    [原创]Nodejs 远程执行linux shell
    ssh无需密码登录linux服务器
    Nodejs mysql pool使用实例
    Activity基础知识
    最大熵模型介绍
    node-sass element-plus 安装失败
  • 原文地址:https://www.cnblogs.com/zrx19960128/p/11436624.html
Copyright © 2011-2022 走看看