🌶⑩真的🌶🌶
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 )