zoukankan      html  css  js  c++  java
  • Day22-1-知识回顾

    1. 知识点概要

    --Session

    --CSRF

    --Model操作

    --Form验证(ModelForm)

    --中间件

    --缓存

    2.知识回顾

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

    在源码中,通过 来分割请求头和请求内容。(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

  • 相关阅读:
    【尺取】HDU Problem Killer
    【尺取或dp】codeforces C. An impassioned circulation of affection
    【搜索】codeforces C. The Tag Game
    【数学】codeforces B. The Golden Age
    【dfs+理解题意+构造】【待重做】codeforces E. Ice cream coloring
    【贪心】codeforces D. Minimum number of steps
    【数学】codeforces A. Success Rate
    【二分+交互】codeforces B. Glad to see you!
    【组合 数学】codeforces C. Do you want a date?
    JavaScript实现快速排序
  • 原文地址:https://www.cnblogs.com/momo8238/p/7698564.html
Copyright © 2011-2022 走看看