django知识分支
1.Cookie工作流程:
浏览器向服务器发出请求,服务器接收到浏览器的请求进行处理,服务器设置一个cookie发送给浏览器,浏览器将cookie保存,当需要再次登录的时候,浏览器将本地的cookie发送给服务器,进行数据交互
Session工作流程:
浏览器向服务器发送请求,服务器接收到浏览器的请求进行处理,服务器设置一个session的key值发送给浏览器,浏览器接收到服务器发送的key,保存在cookie中,当需要再次访问服务器的时候,给服务器发送session的key,进行数据交互
区别:
安全性-cookie直接保存的数据不安全,因为每次发送请求,都会把request中的信息全部发送出去,而session保存的是一个key值,这就充分的保证了数据的安全性
性能:将数据保存在cookie可以降低资源的占用,如果将数据保存在session中将会占用大量的资源,造成资源浪费
2.编写代码完成 一个代码时间消耗装饰器
exp: 有方法a,与方法b, 编写装饰器能够实现方法a,方法b的时间开销
提交代码
import time
def x(z):
def c():
time.clock()
z()
print(time.clock())
return c
@x
def fun1():
s=0
for i in range(1,1000):
return print("/xxx")
@x
def fun2():
s=0
for i in range(1,1000):
return print("xqqx")
fun1()
fun2()
3.查看Django源码 说明 HttpResponse,HttpResponseRedirect,JsonResponse 类之间的关系
HttpResponse:是django的方法,返回格式为HttpResponse(content=响应体,content_type=响应体类型,status=状态码),可以修改返回的数据类型
HttpResponseRedirect:当post提交数据之后,可以使用HttpResponseRedirect跳转到另一个页面,而不是使用HttpResponse跳转
JsonResponse:是httpResponse的子类,适用于处理json格式的数据,但是不能返回模板
4.说明django.shortcuts中简写函数的使用如render,至少5个
render:快速调用模板
eg:render(request, 'poll/deatil.html', {"testtitle": testtitle})
render_to_response:第一个参数必须是要使用的模板名称。如果要给定第二个参数,那么该参数必须是为该模板创建 Context 时所使用的字典。如果不提供第二个参数,render_to_response() 使用一个空字典
eg:reder_to_response(“模板名字”,{})
redirect:快速重定向
eg: redirect(reverse(‘polls:result’, args = (id,) ))
get_object_or_404:查找对象 如果出异常就返回404页面
eg:get_object_or_404(模型类名,查找条件)
get_list_or_404:查找列表 如果出异常就返回404页面
eg:get_list_or_404(模型类名,查找条件)
resolve_url:函数resolve,path表示url,作用:从url得到相互映射的url_name
eg:resolve(to,*args,**kwargs)
_get_queryset:该方法可以返回一个量身定制的对象列表
5.编写代码实现通用视图函数View的get与post接口
一个简单的通用视图函数类
from django.views. generic import View
from django.shortcuts import render
class Index(View):
def get(self,request,id):
print(id)
return render(request, 'polls/index.html', {})
def post(self,request,id):
print(id)
return render(request, 'polls/index.html', {})