摘要: JWT简介 # Json web token (JWT) 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制。 Json web token (JWT), 是为了在网络应用环 阅读全文
posted @ 2021-06-11 17:21 Palpitate~ 阅读(48) 评论(0) 推荐(0) 编辑
摘要: # 1 安装 pip install coreapi # 2 在路由中配置 from rest_framework.documentation import include_docs_urls urlpatterns = [ ... path('docs/', include_docs_urls(t 阅读全文
posted @ 2021-06-11 17:16 Palpitate~ 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 过滤 # 1 安装 pip install django-filter # 2 注册,在app中注册 # 3 全局配,或者全局配 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',), # 阅读全文
posted @ 2021-06-11 17:15 Palpitate~ 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 内置的频率限制(限制未登录用户) # 全局使用 限制未登录用户一分钟访问5次 REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'rest_framework.throttling.AnonRateThrottle', ), 'DEFAULT_THRO 阅读全文
posted @ 2021-06-11 17:13 Palpitate~ 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 权限的源码 # APIView >dispatch > initial > self.perform_authentication(request)(APIView的对象方法) def check_permissions(self, request): """ Check if the reques 阅读全文
posted @ 2021-06-11 17:11 Palpitate~ 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 认证的写法 # 认证的实现 1 写一个类,继承BaseAuthentication,重写authenticate,认证的逻辑写在里面, 认证通过,返回两个值,一个最终给了Request对象的user, 认证失败,抛异常:AuthenticationFailed或者APIException 2 全局使 阅读全文
posted @ 2021-06-11 17:10 Palpitate~ 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 路由 # 1 在url.py中配置 path('books4/', views.Book4View.as_view()), re_path('books4/(?P<pk>\d+)', views.Book4DetailView.as_view()), # 2 一旦视图类,继承了ViewSetMixi 阅读全文
posted @ 2021-06-11 17:07 Palpitate~ 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 基于APIView写接口 # views.py # 基于APIView写的 # class BookView(APIView): # def get(self, request): # book_list = Book.objects.all() # book_ser = BookSerialize 阅读全文
posted @ 2021-06-11 17:05 Palpitate~ 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 请求 # 请求对象 # from rest_framework.request import Request def __init__(self, request, parsers=None, authenticators=None, negotiator=None, parser_context= 阅读全文
posted @ 2021-06-11 17:02 Palpitate~ 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 序列化组件介绍 1. 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 2. 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型 3. 反序列化,完成数据校验功能 序列化组件的使用 1、写一个序列化的类,继承Serializ 阅读全文
posted @ 2021-06-11 17:00 Palpitate~ 阅读(38) 评论(0) 推荐(0) 编辑
摘要: # from rest_framework.views import APIView # urls.py path('booksapiview/', views.BooksAPIView.as_view()), # 在这个地方应该写一个函数内存地址 # APIView的as_view方法(类的绑定方 阅读全文
posted @ 2021-06-11 16:53 Palpitate~ 阅读(33) 评论(0) 推荐(0) 编辑
摘要: # ModelViewSet继承View(django原生View) # APIView继承了View # 先读View # urls.py path('books1/', views.Books.as_view()), # 在这个地方应该写一个函数内存地址,views.Books.as_view( 阅读全文
posted @ 2021-06-11 16:51 Palpitate~ 阅读(47) 评论(0) 推荐(0) 编辑
摘要: DRF简介 Django Rest_Framework """ 核心思想: 缩减编写api接口的代码 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。在REST framework中,提供了序列化器Serial 阅读全文
posted @ 2021-06-11 16:48 Palpitate~ 阅读(86) 评论(0) 推荐(0) 编辑
摘要: Django中间件 详情参见:http://liuqingzheng.top/python/Django%E6%A1%86%E6%9E%B6/16-Django%E9%AB%98%E7%BA%A7%E4%B9%8B-%E4%B8%AD%E9%97%B4%E4%BB%B6/ """ django中间件 阅读全文
posted @ 2021-06-11 16:41 Palpitate~ 阅读(18) 评论(0) 推荐(0) 编辑
摘要: from django.views import Viewfrom django.utils.decorators import method_decorator"""CBV中不建议你直接给类的方法加装饰器无论该装饰器能否正常工作 都不建议直接加"""# @method_decorator(logi 阅读全文
posted @ 2021-06-11 16:35 Palpitate~ 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 前戏 """ 写一个注册功能 获取用户名和密码 利用form表单提交数据 在后端判断用户名和密码是否符合一定的条件 用户名中不能含有*** 密码不能少于三位 如果不符合条件 需要将提示信息展示到前端页面 """ 前端: <form action="" method="post"> <p>userna 阅读全文
posted @ 2021-06-11 16:29 Palpitate~ 阅读(32) 评论(0) 推荐(0) 编辑
摘要: Ajax 1 大坑 如果在form表单中,写button和input是submit类型,会触发form表单的提交 如果不想触发 不写在form表单里面 将input的type写成button 2 大坑 后端响应格式如果是:html/text格式,ajax接收到的数据后需要自己转成对象 总结:后端返回 阅读全文
posted @ 2021-06-11 16:17 Palpitate~ 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 模板语法值变量 详情参见:https://www.cnblogs.com/xiaoyuanqujing/p/11637963.html {{}}:变量相关 {%%}:逻辑相关 """ 如果html代码中的数据不是固定死的,而是动态变化的,则必须在html中嵌入变量,为此,模板语法提供了变量的概念,允 阅读全文
posted @ 2021-06-11 16:09 Palpitate~ 阅读(16) 评论(0) 推荐(0) 编辑
摘要: """ 1.django其实有两个配置文件 一个是暴露给用户可以自定义的配置文件 项目根目录下的settings.py 一个是项目默认的配置文件 当用户不做任何配置的时候自动加载默认配置 2.配置文件变量名必须是大写 """ 疑问:为什么当用户配置了就使用用户配置的 不配置就是要默认的 from d 阅读全文
posted @ 2021-06-11 15:57 Palpitate~ 阅读(52) 评论(0) 推荐(0) 编辑
摘要: # 你自己不要修改源码 出了bug很难搞 # 突破口urls.py url(r'^login/',views.MyLogin.as_view()) """ 函数名/方法名 加括号执行优先级最高 猜测 as_view() 要么是被@staticmethon修饰的静态方法 要么是被@classmetho 阅读全文
posted @ 2021-06-11 15:56 Palpitate~ 阅读(40) 评论(0) 推荐(0) 编辑