41. 查询集两大特性?惰性执行?
1. 惰性执行
创建查询集不会访问数据库,直到调用数据时,才会访问数据库,调用数据的情况包括迭代、序列化、与if合
用
2. 缓存
使用同一个查询集,第一次使用时会发生数据库的查询,然后Django会把结果缓存下来,再次使用这个查询
集时会使用缓存的数据,减少了数据库的查询次数。
42. git 常用命令?
git clone 克隆指定仓库
git status 查看当前仓库状态
git diffff 比较版本的区别
git log 查看 git 操作日志
git reset 回溯历史版本
git add 将文件添加到暂存区
git commit 将文件提交到服务器
git checkout 切换到指定分支
git rm 删除指定文件
git merge 合并分支
43. 电商网站库存问题
一般团购,秒杀,特价之类的活动,这样会使访问量激增,很多人抢购一个商品,作为活动商品, 库存肯定是很有
限的。控制库存问题,数据库的事务功能是控制库存超卖的有效方式。
1. 在秒杀的情况下,肯定不能如此频率的去读写数据库,严重影响性能问题,必须使用缓存,将需 要秒杀的商
品放入缓存中,并使用锁来处理并发情况,先将商品数量增减(加锁、解析)后在进行其他 方面的处理,处
理失败再将数据递增(加锁、解析),否则表示交易成功。
2. 这个肯定不能直接操作数据库的,会挂的。直接读库写库对数据库压力太大了,要用到缓存。
3. 首先,多用户并发修改同一条记录时,肯定是后提交的用户将覆盖掉前者提交的结果了。这个直 接可以使用
加乐观锁的机制去解决高并发的问题。
44. HttpRequest 和 HttpResponse 是什么?干嘛用的?
HttpRequest 是 django 接受用户发送多来的请求报文后,将报文封装到 HttpRequest 对象中去。
HttpResponse 返回的是一个应答的数据报文。render 内部已经封装好了 HttpResponse 类
45. 什么是反向解析?
使用场景:模板中的超链接,视图中的重定向 使用:在定义 url 时为 include 定义 namespace 属性,为 url 定义
name 属性 在模板中使用 url 标签:{% url 'namespace_value:name_value'%} 在视图中使用 reverse 函数:
redirect(reverse('namespce_value:name_value’)) 根据正则表达式动态生成地址,减轻后期维护成本。 注意反向
解析传参数,主要是在我们的反向解析的规则后面天界了两个参数,两个参数之间使用空格隔 开:位置参数