day68日考

day68日考题

日考

"""
今日考题
1.默写ajax基本语法,及提交json数据和文件都需要添加哪些额外参数
2.什么是序列化,截止目前为止你所接触过的序列化有哪些
3.批量插入数据需要注意什么,orm批量插入数据的语法?
4.当需要展示的数据量特别多的情况下,会采取什么优化措施,你能否简要描述一下该措施的实施思路,以及该措施具体应用下的操作步骤
5.简述面相对象的三大特性及特点,其中你认为哪个特性使用频率最高,为什么
"""

1.默写ajax基本语法,及提交json数据和文件都需要添加哪些额外参数

ajax基本语法(jquery版):

$.ajax({
    url:'',#不写默认朝当前页面提交
    type:'post',#不写默认提交方式为get
    data:{},提交数据
    dataType:'json',
    success:function(args){ #异步回调函数机制
        alert(args);
    }
})

ajax请求的数据默认编码格式是urlencoded

提交json格式数据
需要添加参数
data:JSON.stringify({'name':'jason','age':18})
contentType:'application/json' //指定编码格式

    
    
提交文件需要添加参数
contentType:false,// 不需使用任何编码 django后端能够自动识别formdata对象
processData:false,// 告诉你的浏览器不要对你的数据进行任何处理

2.什么是序列化,截止目前为止你所接触过的序列化有哪些。

序列化主要是将数据转成一种标准的格式,便于不同编程语言之间的数据交互,比如前后端分离开发,数据交互需要使用json序列化。

后端普通序列化                                前端序列化
json.dumps(data_dic)                       JSON.stringify(data_dic)
json.loads(data_str)                       JSON.parse(data_str)

django后端
from django.http import JsonResponse
return JsonReponse(info_list,safe=false,json_dumps_params={'ensure_ascii':false})

django自带的序列化组件
from django.core import serializers
user_queryset = models.User.objects.all()
res = serializers.serialize('json', user_queryset) //前面一个参数为数据格式,后面的参数必须为一个queryset对象

3.批量插入数据需要注意什么,orm批量插入数据的语法?

orm批量插入数据的语法bulk_create()语法:
book_list=[]
for i in range(10000):
    book_obj=models.Book(title='第%s本书' % (i,))
    book_list.append(book_obj)
models.Book.objects.bulk_create(book_list)


4.当需要展示的数据量特别多的情况下,会采取什么优化措施,你能否简要描述一下该措施的实施思路,以及该措施具体应用下的操作步骤

采取分页措施
(1)get请求可以携带数据   url?page=1
(2)queryset对象支持索引切片操作  book[page_obj.start:page_obj.end]

5.简述面相对象的三大特性及特点,其中你认为哪个特性使用频率最高,为什么。

封装,继承,多态
封装用的比较频繁,因为python中一切皆对象,我们无时不刻不在使用封装的后的结果,比如一些方法。
原文地址:https://www.cnblogs.com/surpass123/p/13041428.html