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

原文地址:https://www.cnblogs.com/zrx19960128/p/11436624.html