🌶⑩真的🌶🌶

Posted jimgraymane

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了🌶⑩真的🌶🌶相关的知识,希望对你有一定的参考价值。

本周内容

? 今日内容

? ajax结合sweetalert实现删除按钮动态效果

? bulk_create批量插入数据

? 自定义分页器

? 多对多三种创建方式

? 明日内容

? forms组件

? cookies与session操作

? django中间件

? 跨站请求伪造csrf

? auth模块

? BBS小作业

? FBV

上周内容回顾

? orm查询优化

? only与defer

? only方法返回的是一个queryset对象,本质就是列表套数据对象

? 该对象内只含有only括号内锁指定的属性(其他属性也可以获取但是要重新走数据库)

? defer与之相反

? select_related与prefetch_related

? select_related

? 括号内只能放外键字段,而且外键字段只能是一堆一,一对多

? 内部是联表操作,会将外键关联的表与当前表直接拼接起来,然后再执行查询操作,返回的也是一个queryset,该数据对象获取当前表中的数据或者关联表中的数据 都不会再走数据库

? prefetch_related

? 括号内外键字段 类型全部支持,内部是子查询 但是给用户的感觉象是联表操作,返回的结果也是一个queryset 该数据对象获取当前表中的数据或者关联表中的数据 都不会再走数据库

? 第一个方法耗时再联表操作

? 第二个方法耗时再查询次数

? choices参数

? 主要用在一些可以明确给出所有可能性的地方

? 如 性别,学历,婚否等

? 先提前定义好对应关系

? 再通过字段的choices参数来指定关系

? MTV与MVC模型

? models templates views

? models views controller

? django自称是mtv实际上还是mvc

? ajax

? 异步提交

? 局部刷新

? ajax基本语法结构

? 我们学的是基于jquery封装好的ajax

? 所以使用的时候一定要确保jquery正常导入

? $.ajax({

? url:‘‘,

? type:‘‘,

? data:{‘‘},

? success:function(data){}

? })

? 前后端数据编码格式

? urlencoded

? 数据格式username=jason&password=123

? django针对符合urlencoded编码格式的数据,并会自动解析饼帮你放到request.POST总

? formdata

? form表单发送文件必须要指定的编码模式

? 该变啊格式既可以发文件也可以发普通键值对

? django会自动识别,讲内部符合urlencoded编码格式的数据自动解析,并放大到request.POST中

? 讲文件类型的数据,自动解析放到request.FILES中

        application/json

? 目前只有ajax可以发送json格式的数据 form表单是不支持的

? ajax如何发送json格式的数据

? 1.需要新建一个参数

? contentType:‘application/json‘

? 2.需要讲数据序列化成json格式的字符串

? JSON.stringify({})

? ajax发送文件(不单单可以发送文件也可以发普通键值对)

? 1.先要生成一个内置对象

? var myFormData =new FormData();

? 2.你可以不停添加数据

? myformdata.append(‘name‘,‘value‘)

? 如歌获取inout文件标签内的文件数据

? var myfileObj=$(‘input[type=‘file‘]‘)[0].file[0];

? MyFormData.appendd(‘name2‘,myfileObj)

3.需要额外两个指定的参数

? contentType:false, #不指定任何编码 对象自带编码 django能够识别

? processData:false #浏览器不要对数据进行任何处理

django可以识别对象中的普通键值对和文件对象,然后分别放到不同的方法POST和FILES中

ajax与sweetalert参考代码即可

? CV打法结合二次开发

bulk_create批量插入数据

? for i in range (1000):

? models.book.object.create(title=‘第%本书‘%i)

? (这里不复刻了,就是说这条指令运行很慢,花了六百多毫秒)

? book_list=[]

? for i in rage(10000):

? book_list.append(models.book(title=‘第%本书‘%i))

? models.Book.object.bulk_create(book_list)

? """两者差距很大"""

自定义分页器

? 代码不需要掌握,只需要掌握推倒思路

要求你掌握的是自定义分页器的使用方法

后端

? 自定义分页器的使用

book_queryset=models.book.objects.all()#你想要分页展示的数据

current_page=request.GET.get(‘page‘,1)#获取当前页

all_count=book_queryset.count()#看一共有多少条数据

page_queryset=book_queryset[page_obj.start:page_obj.end]

return render (request.‘index.html‘,locals())

前端

? {% for book in page_queryset %} 讲页面上原本的queryset全部还成切片之后的queryset即可

? <p>{{book}}</p>

{% endfor %}

{{page_obj.page_html|safe}}告诉这是安全的可以读取

以上是关于🌶⑩真的🌶🌶的主要内容,如果未能解决你的问题,请参考以下文章

数据库管理⑩数据字典

『Linux从入门到精通』第 ⑩ 期 - Linux 如何使用 git | 新建仓库 | git 三板斧

Android Gradle 插件Gradle 依赖管理 ⑩ ( dependencies 依赖配置项 configurations )

Android Gradle 插件Gradle 依赖管理 ⑩ ( dependencies 依赖配置项 configurations )

⑩.linux查看各进程占用cpu/内存情况

IPv6技术系列⑩——IPv6 手工隧道