Day22-1-知识回顾

1. 知识点概要

--Session

--CSRF

--Model操作

--Form验证(ModelForm)

--中间件

--缓存

 

2.知识回顾

 

 

2.1客户端请求及服务器端返回,都包含请求头和body两部分内容。

在源码中,通过\r\n\r\n 来分割请求头和请求内容。(2个换行符)

 

 

views:用户请求
  request.body:所有数据内容的原生值。下面4种方法实质上都是从request.body中提取数据  
   request.POST
   request.GET
   request.FILES
   request.XXXX.getlist
  
   request.Meta:请求头request headers中的相关内容
   request.method(POST,GET,PUT)
   request.path_info
   request.COOKIES
 
 把数据返回给用户:也包含响应头和响应内容(response Headers,response body)
  1.return HttpResponse("字符串/字节bytes")

    a='中国'
       response=HttpResponse(a,bytes(a))  字符串或字节都可以,内容是返回到了body里面


  2.return render
  3.return redirect

 a='中国'
        response=HttpResponse(a,bytes(a))  字符串或字节都可以,内容是返回到了body里面
     response.set_cookie() cookie是放到响应头里面去返回的。
     response['name']='Alex' 自己给响应头增加内容   
     return response

 

2.2 Django之Models操作

 

 

 

 表内容操作:  

models.TB.objects.create()  

models.TB.objects.create(**{})  

obj=models.TB(..)  obj.save()  

models.TB.objects.all()  

models.TB.objects.all()[7:10]    

models.TB.objects.update()  

models.TB.objects.filter(id__in=[1,2,3])  

models.TB.objects.filter()  

models.TB.objects.filter(XXX_id)  

models.TB.objects.delete()  

models.TB.objects.values()  

models.TB.objects.values_list  

models.TB.objects.filter().update()  

models.TB.objects.filter().first()  

models.TB.objects.filter(**{})  

models.TB.objects.filter().count()  

models.TB.objects.filter(双下划线跨表)  

models.TB.objects.filter(id__gt=1)  

models.TB.objects.filter(id__range=[1,2])  

models.TB.objects.filter(id__lt=1)  

models.TB.objects.filter(id__gte=1)  

models.TB.objects.filter(id__lte=1)  

models.TB.objects.exclude(id__lte=1)    

 

多对多  

obj.set  

obj.add(1,2,3)  

obj.add([1,2,3])  

obj.remove([1,2,3])  

obj.clear()    

 

models.TB.objects.all()  [obj,obj]

 obj.fk.name    

 

models.TB.objects.all().order_by('')     

models.TB.objects.distinct()

 

从B跨表到A用fk,从A跨表到B用 b(表名)_set  

class A:   

  name..   

  #b_set  

class B:   

  caption..   

  fk=ForignKey(A)    

通过M2M会生成第3张表  

class A:   

  name..   

  #b_set  

class B:   

  caption..   

  fk=ManyToMany(A)    

 

2.3 模板语言

A-基本操作

 def func(request):   

  return render(request,'index.html',{'val':[1,2,3]})     

  #index.html  <h1>{{val.0}}</h1>

B-继承  extends "layout.html"  

C-include  组件

D-simple_tag,filter

posted on 2017-10-20 11:24  momo8238  阅读(134)  评论(0编辑  收藏  举报