django之类视图,状态保持,中间件

一: 状态保持:

  1.cookie:保存在浏览器当中, 键值对的字符串形式; 默认过期时间是关闭浏览器时(max_age设置过期时间).基于域名安全.

  写: response.set_cookie(键,值,过期时间)

  def show(request):

      response = HttpResponse('ok)

      response.set_cookie('键','值',max_age='时间/秒')

      return response

  读: response.COOKIES.get(键)

  def cookie_get(request):

      name= request.COOKIES.get('键')

      return HttpResponse(name)

  2.session: 保存在服务器中,可以通过setting.py设置保存位置db,redis, session依赖于cookie,默认过期时间是两周.

  写: request.session['键'] = 值

  def set_session(request):

      request.session['name'] = '值'

      return HttpResponse('ok')

  读:request.session.get('键') (不存在不报错), 不存在返回none.

  def session_get(request):

      name= requset.session.get('键')

      return HttpResponse('name')

二 :类视图:

  语法: 在views.py中定义类,继承自django.views.View,   在类中定义名称是请求方法的小写

  注册路由: 类.as_view()

      url(r'^$',views.类名.as_view()),

  原理: as_view()返回 view函数, 请求时执行view函数,调用对象的dispatch函数,根据请求方式获取对象的方法, 执行方法.

  为类视图田家装饰器:

    1> @method_decorator('装饰器名称', name=dispatch)

    2> 为某个函数加装饰器@装饰器名称

三:中间件:

  语法: 与装饰器一样

  def fun(f)

    def fun1(*args,**kwargs):

      return f(*args,**kwargs)

    return fun1

  注册: session.py项MIDDLEWART  : '应用名.middleware.MyMiddleware'

  执行顺序: 以视图分界: 视图执行前由上到下; 视图执行后由下到上.

 

posted @ 2018-06-14 15:12  exchange<>  阅读(132)  评论(0编辑  收藏  举报