Django学习日记17

1.DRF的response
解析:DRF的response是Renderer渲染器处理过的响应,需要在settings中加入配置:

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (  # 默认响应渲染类
        'rest_framework.renderers.JSONRenderer',  # json渲染器
        'rest_framework.renderers.BrowsableAPIRenderer',  # 浏览API渲染器
    )
}

2.get_object(self)
解析:返回详情视图所需的模型类数据对象。

3.perform_create
解析:

def perform_create(self, serializer):
    serializer.save()

4.get_success_headers
解析:

def get_success_headers(self, data):
    try:
        return {'Location': data[api_settings.URL_FIELD_NAME]}
    except (TypeError, KeyError):
        return {}

5.get_queryset()方法
解析:该方法可以返回一个量身定制的对象列表。

6.get_context_data()方法
解析:用于给模板传递模型以外的内容或参数。

7.get_object()方法
解析:返回一个更具体的对象。

8.PUT和PATCH区别
解析:
[1]PUT:/users/1001 # 更新用户信息[全部字段]
[2]PATCH:/users/1001 # 更新用户信息[部分字段]

9.Request对象方法和属性
解析:
[1]request.method:获取请求方法。
[2]request.GET or request.POST:获取GET or POST请求参数,字典形式。
[3]request.POST.get(‘name’,default=None):获取POST请求参数。
[4]request.GET.getlist(‘name’,default=None): 获取GET参数列表。
[5]request.META:包含当前HTTP请求的Headers头部信息,字典形式。键值KEY都是大写。比如request.META[‘REMOTE_ADDR’]可获取用户远程IP地址。
[6]request.user:获取当前访问用户的所有信息。
[7]request.path:获取当前访问路径。

10.常用request.META属性
解析:request.META是一个Python字典,包含了所有本次HTTP请求的Header信息,常用属性包括:
[1]REQUEST_METHOD:当前请求方法,GET或POST
[2]HTTP_USER_AGENT: 用户浏览器的字符串。
[3]REMOTE_ADDR:客户端IP地址。
[4]PATH_INFO: 当前路径信息,等同于request.path。

11.cookie应用场景
解析:
[1]判断用户是否已经登录
[2]记录用户登录信息[比如,用户名,上次登录时间等]
[3]记录用户搜索关键词

12.Django中设置session的值
解析:
[1]request.session[‘key’] = value
[2]request.session.set_expiry(time):设置过期时间,0表示浏览器关闭则失效

13.Django中获取session的值
解析:
[1]request.session.get(‘key’,None)

14.Django中删除session的值
解析:
[1]del request.session[‘key’]

15.Django中判断是否在session里
解析:
[1]‘fav_color’ in request.session

16.Django中获取所有session的key和value
解析:
[1]request.session.keys()
[2]request.session.values()
[3]request.session.items()

17.Django中settings.py有关session的设置
解析:
[1]SESSION_COOKIE_AGE = 60 * 30
[2]SESSION_EXPIRE_AT_BROWSER_CLOSE = True

18.Django Auth模块自带User模型所包含字段
解析:
[1]username:用户名。
[2]email:电子邮件。
[3]password:密码。
[4]first_name:名。
[5]last_name:姓。
[6]is_active:是否为活跃用户,默认是True。
[7]is_staff:是否为员工,默认是False。
[8]is_superuser:是否为管理员,默认是False。
[9]date_joined:加入日期,系统自动生成。

19.获取用户信息
解析:
[1]继承mixins.RetrieveModelMixin:获取用户信息
[2]重写get_object:获取登录的用户
[3]get_permissions:动态权限分配
[4]get_serializer_class:动态序列化分配

20.request请求对象的属性
解析:
[1]GET:查询字符串参数
[2]POST:请求体重的表单数据
[3]body:请求体中原始的bytes数据
[4]method:请求方式
[5]path:请求的url路径
[6]META:请求头
[7]COOKIES:客户端发送的cookie信息
[8]FILES:客户端上传的文件
说明:request.auth是一个rest_framework.authtoken.models.Token实例。

21.queryset
解析:指明该视图集在查询数据时使用的查询集。

22.serializer_class
解析:指明该视图在进行序列化或反序列化时使用的序列化器。

23.CORS策略
解析:CORS策略目的是浏览器为了保护用户的资源不被非法的JS脚本利用。

24.axios API
解析:
[1]axios.request(config)
[2]axios.get(url [,config])
[3]axios.delete(url [,config])
[4]axios.head(url [,config])
[5]axios.post(url [,data [,config]])
[6]axios.put(url [,data [,config]])
[7]axios.patch(url [,data [,config]])

25.REST中的POST、PUT和PATCH
解析:
[1]POST:创建一个资源。
[2]PUT:整体更新一个资源,即所有请求中必须包含完整的资源信息。
[3]PATCH:部分更新一个资源,即仅更新提供的字段。

参考文献:
[1]Django 2.0官方中文文档终于发布:https://blog.csdn.net/weixin_42134789/article/details/80276855

发布了364 篇原创文章 · 获赞 422 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/shengshengwang/article/details/103917444