1月27日学习内容整理:stark组件之分页,页码切换可以保存当前URL的数据状态(Querydict类型,深拷贝)

1、request.GET是一个Querydict类型

request.GET.urlencode()     就会把GET中字典形式的数据整合成a=1&b=2&c=3这样的形式带,是字符串类型,也就是GET数据在URL地址中的表现形式

 

2、自己创建一个Querydict类型

from   django.http   import    QueryDict

d = QueryDict()     这就得到了一个为空的Querydict字典,默认是不可更改的,不能d[key] = value这样添加键值对

要想变为可变的,可以添加键值对,要设置一个参数

d._mutable  =  True   这样就可以添加键值对了

 

3、深拷贝

import   copy

copy.deepcopy(xxx)    这就是深拷贝

 

 

利用自定义的分页组件完成分页

并且分页组件要添加一个属性,就是URL的GET数据,内部再深拷贝这个数据,在生成页码标签时不要写成固定的数据状态,而是保持当前的URL数据状态不变,只有其中对应的页码数变化就可以,这个地方就用到了urlencode方法

编辑功能完成后我们也要返回编辑前的页面,这个时候也要用到urlencode方法,但是要注意编辑前页面的GET数据和编辑后的GET数据可能有重复的字段,所以我们必须把编辑前的GET请求数据先用urlencode打包作为值赋值给一个键,这个键的名字为了避免再次重复可以生僻一点,最后把这个键值对在用urlencode方法打包赋给一个我们自己创建的querydict类型,编辑完成后返回编辑前的页面我们就可以直接用GET.get方法取出我们之前设置的键对应的值,这个值就是编辑前页面的GET请求数据,这时候就可以完全的返回到编辑前的页面了

posted @ 2018-01-27 19:32  九二零  阅读(101)  评论(0编辑  收藏  举报