首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让你Django应用变DRY几个最佳实践

目前在PythonWeb框架中被应用最广泛就是DjangoDjango REST Framework. 这两种框架都提供了非常健壮功能,能满足Web开发各个方面。...DjangoDjango REST framework(后简称DRF)提供了海量全局配置、局部配置,来实现上述思想,但配置项太多了,有时人们往往不知道该如何利用。 一、用户鉴权 1....Django配置AUTHENTICATION_BACKENDS AUTHENTICATION_BACKENDS控制了应用根据传入参数校验用户是否属于合法用户(用户名是否存在?密码是否正确?)。...在DRF完成Authorization工作就是DEFAULT_PERMISSION_CLASSES配置项,以及针对每个APIView配置permission_classes,他是用来精确控制请求放对某一资源有无权限...在Django+DRF异常处理有两个重载点: 中间件process_exception函数 DRFEXCEPTION_HANDLER配置 而其中EXCEPTION_HANDLER作用时间早于中间件

1.6K50

DRF系列总结二:脚手架搭建

,在Django基础工程基础上,安装DRF并进行配置:比如统一接口返回格式、统一异常处理等,并在后面的文章,不断完善出一套DRF脚手架,以降低后面的开发同学趟坑成本。...一、安装DRF   首先,我们创建一个Django基础工程demo,并创建一个测试app,得到了Django框架初始化代码,代码目录结构如下: # django-admin startproject...===================================== REST_FRAMEWORK = { } DRF优先从django配置文件REST_FRAMEWORK字典获取配置信息...,获取不到则使用DRF默认配置: ......,比如以/api/开头路由到DRF提供接口中: [根目录下urls.py] 而在具体app路由中,直接使用DRFrouter模块,并将视图视图注册到路由中即可: [appurls.py]

3.6K60
您找到你想要的搜索结果了吗?
是的
没有找到

DRF类视图让你代码DRY起来

刚开始写views.py模块代码,一般都是用def定义函数视图,不过DRF更推荐使用class定义类视图,这能让我们代码更符合DRY(Don't Repeat Yourself)设计原则: ?...使用APIView rest_framework.views.APIView是DRF封装API视图,继承了django.views.generic.base.View: ?...因为path()参数必须是可调用,在源码能看到elif callable(view): def _path(route, view, kwargs=None, name=None, Pattern...这是DRF提供通用API类视图,mixins只提供了处理方法,views.py类要成为视图,还需要继承GenericAPIView,GenericAPIView继承了本文第一小节提到rest_framework.views.APIView...东方说 学到这里,已经开始感受到了Django REST framework强大之处了,我觉得学一个框架,不仅要看如何使用,还需要了解它设计思路和底层实现,这样才能更好总结为自己编程思想,写出更漂亮代码

52810

关于Django REST framework 一些笔记

Django REST framework 以下为了撰写方便,直接把Django REST framework 简称为DRF。...Filtering - Django REST framework 如果要针对不同使用者得到不同结果的话,就会需要用到filtering 部份。 可以针对使用者、网址、可使用参数做限制。...自己写个框架:即便只有用到DRFAPIView其他都没用到,还是推荐使用DRF,比起你自己用Django撰写API还是好上许多。...想用轻量化框架DRF 虽然包含了很多功能,但核心view 部份是很简单DRF 会被Django model 绑住:view 和serializer 都是可选,没有强制绑定。...Django REST framework 所使用View function 直接生出API 文件,有要额外补充也可以写在View function docstring 里头,DRF Docs 会帮你呈现出来

99430

学生宿舍管理系统(jsp+mysql).rar

,一般都是用def定义函数视图,不过DRF更推荐使用class定义类视图,这能让我们代码更符合DRY(Don’t Repeat Yourself)设计原则: 使用APIView rest_framework.views.APIView...是DRF封装API视图,继承了django.views.generic.base.View: 我们用它把函数视图改写成类视图,编辑snippets/views.py: from snippets.models...因为path()参数必须是可调用,在源码能看到elif callable(view): def _path(route, view, kwargs=None, name=None, Pattern...: 这是DRF提供通用API类视图,mixins只提供了处理方法,views.py类要成为视图,还需要继承GenericAPIView,GenericAPIView继承了本文第一小节提到rest_framework.views.APIView...东方说 学到这里,已经开始感受到了Django REST framework强大之处了,我觉得学一个框架,不仅要看如何使用,还需要了解它设计思路和底层实现,这样才能更好总结为自己编程思想,写出更漂亮代码

3.7K00

Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

Request和Response类 2.DRF过滤器 过滤使用 搜索使用 排序使用 胸怀是非常重要,一个人有眼光没胸怀是很倒霉。...REST框架是用于构建Web API功能强大且灵活工具包。...使用REST框架一些原因: 该网站可浏览API是你开发人员一个巨大可用性胜利; 身份验证策略,包括OAuth1a和OAuth2软件包; 支持ORM和非ORM数据源序列化; 完全可自定义...三、DRF使用 1.DRFRequest和Response类 DRFDjangoRequest和Response类进行了进一步封装,因此使用起来更方便。...搜索使用 DRFSearchFilter类基于Django-admin搜索功能,支持简单基于单个查询参数搜索。

5.3K20

Python3+ Django3:自动生成Swagger接口文档

为了解决这个问题,业界推出了一个Swagger框架来管理接口文档,实现接口文档自动更新。 采用Swagger框架来管理接口文档,常用于在微服务架构设计或者Java后端服务工程。...这也造成了很多读者误认为Swagger只是Java语言下一个框架,其实并不是的,Swagger除了能应用在Java语言工程,也同时适用于在其它语言下,比如Python。...在django 3.0已经不支持该库了,取而代之是全新第三方drf-yasg库。...GitHub地址: https://github.com/marcgibbons/django-rest-swagger 所以本文也是基于drf-yasg库来实现在Django3接入Swagger框架...5、在Swagger还可以查看到在model定义各字段类型及参数说明。 ? 到此,我们Django3接入Swagger已经完成了,更多swagger功能使用请读者自行尝试。

14.7K32

POSTMAN自动生成接口文档_swagger自动生成接口文档

大家好,又见面了,我是你们朋友全栈君。 介绍 drf-spectacular是为Django REST Framework生成合理灵活OpenAPI 3.0模式。...(不仅仅是示例) 生成一个与最流行客户端生成器配合良好schema 环境准备 Python >= 3.6 Django (2.2, 3.1, 3.2) Django REST Framework...(3.10, 3.11, 3.12) 安装 使用pip命令安装 pip install drf-spectacular 然后在settings.pyINSTALLED_APPS安装drf-spectacular...INSTALLED_APPS = [ # ALL YOUR APPS 'drf_spectacular', ] 最后向DRF注册我们壮观AutoSchema REST_FRAMEWORK...view视图中,使用装饰器@extend_schema来制定接口文档接口信息 我们先来看下装饰器extend_schema源码 def extend_schema( operation_id

2.2K20

使用 React 和 Django REST Framework 构建你网站

在我们最近工作,构建网站使用架构是带有 Django REST Framework(DRF)后端 React 前端。它们是通过在前端使用 axios(前端库)调用后端 API 来交互。...---- 后端(The Backend) 除了简单安装 DjangoDRF 以及设置数据库以外,后端没有太多工作要做 $ pip3 install django djangorestframework...rest_framework.authtoken import views as drf_views urlpatterns = [ url(r'^auth$', drf_views.obtain_auth_token...'django.contrib.staticfiles', 'rest_framework', 'rest_framework.authtoken', ] 2.运行命令创建认证 App...一旦完成,我们就可以使用我们存储 token 令牌来创建一个基于 axios API 客户端(译者注:这样就不需要每次都显式将令牌信息从 store 拿出来再插入 payload 中了),这样从我们

7K70

3.寻光集后台管理系统-依赖环境准备

第三方库 django REST framework https://www.django-rest-framework.org/ 本次开发使用是前后端分离方式开发,所以后端使用django REST...扩展性强, 插件丰富 django-excel http://django.pyexcel.org/zh/latest/index.html 需求需要将数据导出excel来进行查看,所以使用django-excel...://faker.readthedocs.io/en/master/index.html 自动生成随机测试数据时使用 requests 发起http请求测试接口时使用 PyMySQL 后面正式环境时候连接...mysql使用 全部依赖 将依赖放到requirements.txt文件 Django==3.2.11 django-cors-headers==3.11.0 django-excel==0.0.10...配置 REST_FRAMEWORK = { # 设置默认全局用户验证方案 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_simplejwt.authentication.JWTAuthentication

38250

Django+Vue开发生鲜电商平台之7.用户登录和注册功能

一、DRFtoken基本使用 1.DRFtoken登录原理 基于DRF前后端分离登录与单独使用Django登录原理不同,不再需要CSRF验证,DRF提供了许多开箱即用身份验证方案,并且还允许实现自定义方案...身份验证方案始终定义为类列表,DRF框架尝试对列表每个类进行身份验证,并使用成功进行身份验证第一个类返回值设置request.user和request.auth。...在使用前,需要在settings.py中进行配置: # DRF配置 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend...token不采用全局设置,而在View单独设置,settings.py如下: # DRF配置 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend...,settings.py配置如下: # DRF配置 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend

4.2K20

DRF】快速入门,使用DjangoRestFrameWork自动生成Restful风格增删改查代码和接口文档!

⭐今天教大家使用 Django Rest FrameWork 自动生成Restful风格增删改查代码和接口文档!...⭐参考文章:首页 - Django REST 框架 (django-rest-framework.org)(官方文档)注意:Django Rest FrameWork 是在Django框架使用以下内容需要先创建一个...'HOST': '127.0.0.1', 'PORT': '3306', }}快速使用配置models以下内容在 app models.py 配置from django.db...) # 向路由器中注册视图集urlpatterns += router.urls # 将路由器所以路由信息追到到django路由列表以下内容在项目目录下 urls.py 配置from django.contrib...(之后文章会介绍到)⭐以上内容只是快速配置 全面API请查阅官方文档:首页 - Django REST 框架 (django-rest-framework.org)⭐如果对你有帮助请给我点个赞吧

1.3K00

DRF系列总结一:DRF是啥?为啥子要用?

目前组内很多项目都在用Django REST framework(简称DRF)来构建Restful WebApi,并推广到了许多实习生同学和外部服务商开发同学使用。...首先,假设阅读这篇文章同学使用Django或开发过蓝鲸应用,然后,我们先来简单了解下Django REST framework(DRF): 一、什么是Django REST framework(DRF...,用起来成本有点儿高,感觉又学了一个Django框架?...我们可以看两张“糙图”(画不是很精细): image.png 上面这张图是Django开发业务逻辑涉及最多内容,设计好db后,在urls定义路由,在views添加视图函数,并编写业务逻辑,...接下来,我不打算直接介绍DRF知识点,而是从“安装DRF”开始,在蓝鲸应用开发框架基础上,一步一步地配置好“DRF脚手架”,并在脚手架基础上,一点点地总结工作中使用DRF技巧,希望能帮助到一些蓝鲸应用开发同学们

9.3K114

Django进阶:DRF(Django REST framework)

什么是DRFDRFDjango REST framework缩写,官网上说:Django REST framework是一个强大而灵活工具包,用于构建Web API。...在Django,我们通过model-view-template实现了后端和前端通信。但前端未必是用Djangotemplate实现,也可以用单独前端框架(如vue)实现。...关于如何设计出符合REST风格API,可以参考阮一峰《RESTful API 设计指南》 那么用DRF实现就是RESTful API吗?其实DRF没有强制实现。...“Django REST 框架”这个名字是在 2011 年初决定,选择它只是为了确保开发人员很容易找到这个项目。在整个文档,我们尝试使用更简单、技术上正确术语“Web API”。...django drf (图片来自:一图看懂DjangoDRF(https://zhuanlan.zhihu.com/p/53957464)) 测试API: 使用浏览器访问网址: http://127.0.0.1

45320

DRF框架学习(四)

认证需要配合权限来使用 4.1使用 DRF框架默认全局认证方案如下,可对其进行修改,比如注释掉基本认证: REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES...DRF框架默认权限控制如下: 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.AllowAny', # 允许所有人 ) 可以在配置文件设置权限管理类...6.1 使用 DRF框架默认没有进行全局限流设置,但是提供了配置项,我们可以在配置文件使用 DEFAULT_THROTTLE_CLASSES 和 DEFAULT_THROTTLE_RATES进行全局配置...'django_filters', # 需要注册应用, ] # 过滤 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend...10.2自定义异常处理 10.2.1自定义DRF框架异常处理函数 1.自定义异常处理函数 2.设置EXCEPTION_HANDLER配置项 10.2.2详解 可以在DRF框架异常处理函数基础上,补充一些其他异常处理

2.7K40

5 分钟,带你快速入门 Django DRF

DRF 框架,全称为 Django Rest Framework,是 Django 内置模块扩展,用于创建标准化 RESTful API;它利用 ORM 映射数据库,并自定义序列化数据进行返回,多用于前后端分离项目...项目地址: https://github.com/encode/django-rest-framework 本篇文章将带大家 5 分钟快速入门 DRF 2....实现步骤 详细使用步骤如下( 10 步) 2-1 创建虚拟环境 使用 mkvirtualenv 创建一个单独虚拟环境,指定 Python 版本为 3.7 # 创建虚拟环境,名称为:django3 #...权限 # 配置DRF权限 REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly...2-8 注册路由 同样在 urls.py 文件使用 DRF DefaultRouter() 函数实例化一个 router 对象 然后,通过 register() 函数将上面自定义视图 UserViewSet

1.6K20
领券