zl程序教程

您现在的位置是:首页 >  前端

当前栏目

REST_FRAMEWORK加深记忆-加了用户登陆认证,自定义权限的API接口

认证接口权限API 用户 自定义 登陆 Framework
2023-09-14 08:59:37 时间
复制代码
from django.conf.urls import include, url

from django.contrib import admin

urlpatterns = [

 url(r^admin/, include(admin.site.urls)),

 url(r^, include(snippets.urls)),

urlpatterns += [

 url(r^api-auth/, include(rest_framework.urls,

 namespace=rest_framework))

]
复制代码
复制代码
from django.conf.urls import url

from rest_framework.urlpatterns import format_suffix_patterns

from snippets import views

urlpatterns = [

 url(r^snippets/$, views.SnippetList.as_view()),

 url(rsnippets/(?P pk [0-9]+)/$, views.SnippetDetail.as_view()),

 url(r^users/$, views.UserList.as_view()),

 url(r^users/(?P pk [0-9]+)/$, views.UserDetail.as_view()),

urlpatterns = format_suffix_patterns(urlpatterns)
复制代码

 

models.py

复制代码
from django.db import models

from pygments.lexers import get_all_lexers

from pygments.styles import get_all_styles

from pygments.lexers import get_lexer_by_name

from pygments.formatters.html import HtmlFormatter

from pygments import highlight

LEXERS = [item for item in get_all_lexers() if item[1]]

LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in LEXERS])

STYLE_CHOICES = sorted((item, item) for item in get_all_styles())


created = models.DateTimeField(auto_now_add=True) title = models.CharField(max_length=100, blank=True, default=) code = models.TextField() linenos = models.BooleanField(default=False) language = models.CharField(choices=LANGUAGE_CHOICES, default=python, max_length=100) style = models.CharField(choices=STYLE_CHOICES, default=friendly, max_length=100) owner = models.ForeignKey(auth.User, blank=True, null=True, related_name=snippets) highlighted = models.TextField(blank=True, null=True) def save(self, *args, **kwargs): Use the `pygments` library to create a highlighted HTML representation of the code snippet. lexer = get_lexer_by_name(self.language) linenos = self.linenos and table or False options = self.title and {title: self.title} or {} formatter = HtmlFormatter( created,)
复制代码

 

permissions.py

复制代码
__author__ = CHENGANG882

from rest_framework import permissions


class IsOwnerOrReadOnly(permissions.BasePermission): def has_object_permission(self, request, view, obj): if request.method in permissions.SAFE_METHODS: return True return obj.owner == request.user
复制代码

 

views.py

复制代码
from snippets.models import Snippet

from snippets.permissions import IsOwnerOrReadOnly

from snippets.serializers import SnippetSerializer

from snippets.serializers import UserSerializer

from rest_framework import generics

from django.contrib.auth.models import User

from rest_framework import permissions


serializer_class = SnippetSerializer permission_classes = (permissions.IsAuthenticatedOrReadOnly,) def perform_create(self, serializer): serializer.save(owner=self.request.user)
class SnippetDetail(generics.RetrieveUpdateDestroyAPIView): queryset = Snippet.objects.all() serializer_class = SnippetSerializer permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly,)
复制代码

 

serializers.py

复制代码
from rest_framework import serializers

from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES

from django.contrib.auth.models import User


class SnippetSerializer(serializers.ModelSerializer): owner = serializers.ReadOnlyField(source=owner.username) class Meta: model = Snippet fields = (id, title, code, linenos, language, style, owner)
class UserSerializer(serializers.ModelSerializer): snippets = serializers.PrimaryKeyRelatedField(many=True, queryset=Snippet.objects.all()) class Meta: model = User fields = (id, username, snippets)
复制代码
【Eolink Apikit】API 接口主流协议解析 API 接口协议制定了接口信息的传递标准规范,不同的接口协议对接口管理工具来说都会拥有不同的底层功能逻辑。所以接口管理工具很难在短时间内完善的新增一种协议的文档管理和接口调试。 解密:目前市场上支持主流协议最全面的产品
就很全面,您所需要的各类API接口功能说明 以下为深智恒际的相关接口介绍,有任何问题或需求,可以随时联系客服,进行测试: • 身份证核验 • 人脸核验 • 手机号核验 • 手机在网时长查询 • 短信验证码 • 银行卡核验 • 银行卡归属地 • 增值税发票验真 • 身份证OCR识别 • 银行卡OCR识别 • 车架号OCR识别 • 驾驶证OCR识别 • 行驶证OCR识别 • 车牌号OCR识别 • 个人征信报告OCR识别
如何正确理解并简易使用【银行卡OCR识别】API接口 接口对接服务:一个服务商企业,其拥有完整的运营机制,能够为客户提供售前技术支持、售后业务服务。 • 售前技术支持:包括代码对接技术支持、相关接口现实中使用的业务知识普及答疑、为客户的实际业务场景提供配套使用方案 • 售后业务服务:为客户复核业务中有异议的信息、协助客户排查解决业务问题、解答各类业务相关知识,提供各项防御措施方案
如何正确理解并简易使用身份证OCR识别API接口 在OCR识别技术未广泛运用之前,业务办理需要人工填写,特别是关键的证照内容。这种人工录入方式费时且容易出错,从而影响业务办理效率。
手机在网时长API接口,选择的时候应该注意什么? 随着移动互联网的普及,越来越多的情景需要使用手机号码。因此,手机号码状态查询功能也变得越来越流行,其中最常用的是手机在网时长查询。
打造 API 接口的堡垒 伴随互联网革命快速创新发展,API 需求的日益剧增,针对 API 的攻击几乎遍布各个行业,据报道 2022 年全年平均每月遭受攻击的 API 数量超过 21 万,游戏、社交、电商、制造等行业依然是攻击者主要目标。例如社交软件某特,在 2021 年发生数据泄露事件,此次数据泄露影响了多达 540 万用户,产生这场“惨案” 正是攻击者利用了登录 API 端点,产生这一漏洞的原因很可能是 API 过度数据暴露以及安全配置错误(下面我会讲到)。显然无论是 API 攻击整体趋势还是对企业和用户的影响都是不容乐观的。
Apifox:API 接口自动化测试完全指南 如果要正常访问该接口的数据,需要在 header 中提供 AdminToken: token 头,这是一个常见的需要 JWT 登录认证接口。 很自然的我们想到,如果自动请求登录接口获取 token 值,然后在每次请求前自动带上这个 AdminToken 头不就行了吗,没错就是这样简单,伪代码如下:
一文带你了解银行卡验证api接口 银行卡验证api接口指的是通过天眼数聚这样的合规性api接口服务商,接入银联数据库,对用户提供的银行卡信息进行真实性核验的一种实名认证方法
银行卡四要素验证API接口怎么用 移动互联的大发展时代,网上支付也成了大家日常生活最普遍的支付方式,为了更好地保证支付环境的安全性,银行卡四要素验证是不可或缺的一环
网络平台挑选实名制认证API接口的注意事项 网络平台实名制认证是对用户真实性身份进行的一种查验审核,有助于建立完善可靠的互联网信用基础。对于网络平台运营者来说,身份实名认证除了符合工信部监管政策外,也可以帮助平台方筛选掉部分无效客户,规避一定的风险,净化网络环境。