当前位置: 首页 > news >正文

建设网站主机c网站建设

建设网站主机,c网站建设,免费网站空间可上传网站,ai网站设计文章目录 1. 认证Authentication2. 权限Permissions使用提供的权限举例自定义权限3. 限流Throttling基本使用可选限流类4. 过滤Filtering5. 排序Ordering6. 分页Pagination可选分页器7. 异常处理 ExceptionsREST framework定义的异常8. 自动生成接口文档coreapi安装依赖设置接口… 文章目录 1. 认证Authentication2. 权限Permissions使用提供的权限举例自定义权限 3. 限流Throttling基本使用可选限流类 4. 过滤Filtering5. 排序Ordering6. 分页Pagination可选分页器 7. 异常处理 ExceptionsREST framework定义的异常 8. 自动生成接口文档coreapi安装依赖设置接口文档访问路径访问接口文档网页 yasg 创建一个新的子应用 opt python manage.py startapp opt注册子应用 INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','rest_framework','students','sers', # 序列化器"school", # 序列化器嵌套'req', # 请求与响应'demo', # 视图'opt', # drf提供的组件使用 ]总路由,代码: from django.contrib import admin from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('students/', include("students.urls")),path('sers/', include("sers.urls")),path('school/', include("school.urls")),path("req/", include("req.urls")),path("demo/", include("demo.urls")),path("opt/", include("opt.urls")), ] 子路由,代码: from django.urls import path from . import views urlpatterns = []因为接下来的认证组件中需要使用到登陆功能,所以我们使用django内置admin站点并创建一个管理员. admin运营站点的访问地址:http://127.0.0.1:8000/admin python manage.py createsuperuser # 如果之前有账号,但是忘了,可以通过终端下的命令修改指定用户的密码,这里的密码必须8位长度以上的 python manage.py changepassword 用户名创建管理员以后,访问admin站点,先修改站点的语言配置 settings.py LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'1. 认证Authentication 可以在配置文件中配置全局默认的认证方案 常见的认证方式:cookie、session、token /home/moluo/.virtualenvs/drfdemo/lib/python3.6/site-packages/rest_framework/settings.py 默认配置文件 REST_FRAMEWORK = {# 配置认证方式的选项'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication', # session认证'rest_framework.authentication.BasicAuthentication', # 基本认证) }也可以在具体的视图类中通过设置authentication_classess类属性来设置单独的不同的认证方式 from rest_framework.authentication import SessionAuthentication, BasicAuthentication from rest_framework.views import APIViewclass ExampleView(APIView):# 类属性authentication_classes = [SessionAuthentication, BasicAuthentication]def get(self,request):pass认证失败会有两种可能的返回值,这个需要我们配合权限组件来使用: 401 Unauthorized 未认证403 Permission Denied 权限被禁止自定义认证,drfdemo.authentication代码: from rest_framework.authentication import BaseAuthentication from django.contrib.auth import get_user_modelclass CustomAuthentication(BaseAuthentication):"""自定义认证方式"""def authenticate(self, request):"""认证方法request: 本次客户端发送过来的http请求对象"""user = request.query_params.get("user")pwd = request.query_params.get("pwd")if user != "root" or pwd != "houmen":return None# get_user_model获取当前系统中用户表对应的用户模型类user = get_user_model().objects.first()return (user, None) # 按照固定的返回格式填写 (用户模型对象, None)视图调用自定义认证,视图代码: from django.contrib.auth.models import AnonymousUser from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication from drfdemo.authentication import CustomAuthentication # Create your views here. class HomeAPIView(APIView):# authentication_classes = [CustomAuthentication, ]def get(self,request):"""单独设置认证方式"""print(request.user) # 在中间件AuthenticationMiddleware中完成用户身份识别的,如果没有登录request.user值为AnonymousUserif request.user.id is None:return Response("未登录用户:游客")else:return Response(f"已登录用户:{request.user}")当然,也可以注释掉上面视图中的配置,改成全局配置。settings.py,代码: """drf配置信息必须全部写在REST_FRAMEWORK配置项中""" REST_FRAMEWORK = {# 配置认证方式的选项【drf的认证是内部循环遍历每一个注册的认证类,一旦认证通过识别到用户身份,则不会继续循环】'DEFAULT_AUTHENTICATION_CLASSES': ('drfdemo.authentication.CustomAuthentication', # 自定义认证'rest_framework.authentication.SessionAuthentication', # session认证'rest_framework.authentication.BasicAuthentication', # 基本认证) }2. 权限Permissions 权限控制可以限制用户对于视图的访问和对于具有模型对象的访问。 在执行视图的as_view()方法的dispatch()方法前,会先进行视图访问权限的判断在通过get_object()获取具体模型对象时,会进行模型对象访问权限的判断使用 可以在配置文件中全局设置默认的权限管理类,如 REST_FRAMEWORK = {....'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',) }如果未指明,则采用如下默认配置 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny', )也可以在具体的视图中通过permission_classes属性来进行局部设置,如 from django.contrib.auth.models import AnonymousUser from django.shortcuts import render from
http://www.yutouwan.com/news/442974/

相关文章:

  • 网站规范建设aso优化是什么
  • 全景网站开发多少钱机械网站建设价格
  • 高校网站群建设研究从零开始学习网站开发
  • 卖酒网站排名wordpress 数据库清理
  • 霸州市网站建设网页设计策划书方案
  • 网站开发 项目计划关键词优化推广排名多少钱
  • access 网站数据库怎么形容网站做的很好
  • 淮南服装网站建设地址公司注册一站式
  • 物流网站方案北京seo公司司
  • 如何发布网站海口公司做网站
  • 网站建设总体情况wordpress 单页面模板
  • 广安公司网站建设传奇小程序源码
  • 东莞网站建设 环保设备青岛缤纷网络科技有限公司
  • 郑州旅游网站建设打代码怎么做网站
  • 什么自己做网站吗做自媒体一般都注册几个网站
  • 大连甘井子区教育局梅州网站优化公司
  • 做视频网站如何赚钱html5怎么做二手网站
  • 合肥网站建合肥网站建设找蓝领商务国外企业网络设计研究现状
  • 做网站定制开发的公司南宁快速建站模板
  • 2018网站的建设与维护前景手机优化软件排行
  • 医院门户网站制作天津代理注册公司
  • 中山企业网站张家口职教中心计算机网站建设
  • 新手怎样学校做网站网页设计代写价格
  • 网站根目录权限推广计划是什么
  • 云虚拟主机可以做视频网站不网站seo优化很好徐州百度网络点赞
  • 建设的访问网站需要密码seo外包软件
  • 行政机关网站建设成都住建平台app
  • 自己创业做网站杭州网站做的好公司
  • 网上有专业的做网站吗想用vs做网站 学什么
  • 问答系统网站模板网站建设模板源码