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