目录
1.什么是序列化,截止目前为止你所接触过的序列化有哪些
2.批量插入数据需要注意什么,orm批量插入数据的语法?
3.当需要展示的数据量特别多的情况下,会采取什么优化措施,你能否简要描述一下该措施的实施思路,以及该措施具体应用下的操作步骤
4.简述面相对象的三大特性及特点,其中你认为哪个特性使用频率最高,为什么
5.什么是反射,请写出反射对应的四个方法,列举出类中可以使用的装饰器及作用,再列举出类中双下开头双下结尾的方法及自动触发的应用场景
? ?双下方法及应用场景? ? ?
1.什么是序列化,截止目前为止你所接触过的序列化有哪些
序列化就是将其他类型的数据格式化成json格式{键值对格式}. 目前接触到的序列化类型有JSON, PICKLE, JSONSERIZLIZER.
2.批量插入数据需要注意什么,orm批量插入数据的语法?
? ? ?批量数据创建>>>:bulk_create()? ?? ?批量数据修改>>>:bulk_update()
3.当需要展示的数据量特别多的情况下,会采取什么优化措施,你能否简要描述一下该措施的实施思路,以及该措施具体应用下的操作步骤
当需要展示的数量特别多的时候, 需要使用分页器进行数据的批量展示以减轻服务器压力, 避免宕机.?
首先django会有一个机制, 来限制展示的数据量, 默认为21条.?
若是自定义的分页器, 则需要知道总数据量的条数, 利用divmode内置函数进行分页>>> 比如每次展示十页,每页展示十条数据.多余的几条多开一页展示.? 由于前端模板语法不支持range方法, 但是后端支持, 我们可以在后端创建好html标签, 然后传递给html页面使用.
django也自带有分页器组件,?
from app01.plugins import mypage
book_query = models.Book.objects.all()
page_obj = mypage.Pagination(current_page=request.GET.get('page'),
all_count=book_query.count()
)
page_query = book_query[page_obj.start:page_obj.end]
return render(request, 'bookList.html', locals())
{% for book_obj in page_query %}
<p class="text-center">{{ book_obj.title }}</p>
{% endfor %}
{{ page_obj.page_html|safe }}
4.简述面相对象的三大特性及特点,其中你认为哪个特性使用频率最高,为什么
三大特征: 继承, 封装, 多态. 其中继承的使用频率最高..
优点: 1. 减少代码的编写
? ? ? ? 2. 可以使用super()方法使得子类重写父类, 提升了子类的扩展性
5.什么是反射,请写出反射对应的四个方法,列举出类中可以使用的装饰器及作用,再列举出类中双下开头双下结尾的方法及自动触发的应用场景
反射的本质就是通过字符串来操作对象的数据或方法.?
其有四个重要的内置函数 getattr, hasattr, setattr, delattr? 都是基于字符串实现反射机制的,?
? ? hasattr():判断对象是否含有某个字符串对应的属性 ?? ?getattr():获取对象字符串对应的属性 ??? setattr():根据字符串给对象设置属性 ?? ?delattr():根据字符串给对象删除属性
? ?双下方法及应用场景? ? ?
1.__str__
? ? 对象被执行打印(print、前端展示)操作的时候自动触发 ? ? ?该方法必须返回字符串类型的数据 ? 很多时候用来更加精准的描述对象
2.__del__ ? ? 对象被执行(被动、主动)删除操作之后自动执行
3.__getattr__ ? 对象查找不存在名字的时候自动触发
4.__setattr__ ? ? 对象在执行添加属性操作的时候自动触发 ? ?>>> ? ?obj.变量名=变量值 ? 5.__call__ ? ? 对象被加括号调用的时候自动触发
6.__enter__ ? ? 对象被执行with上下文管理语法开始自动触发? ? ? ? 该方法返回什么as后面的变量名就会得到什么 ?? 7.__exit__ ? ? 对象被执行with上下文管理语法结束之后自动触发
8.__getattribute__ ? ? 只要对象查找名字无论名字是否存在都会执行该方法 ? 如果类中有__getattribute__方法 那么就不会去执行__getattr__方法
9.__new__ ? ? 产生空对象 ? 类是先通过__new__去调用,再通过__init__执行. ?
|