首页
学习
活动
专区
圈层
工具
发布

Django REST Framework

serializer对象/使用 构造方法 Serializer(instance=None, data=empty, **kwarg) 反序列化 验证 is_valid: 验证数据是否合法...,返回boolean 在使用从外部传入的数据之前,必须使用此函数进行验证 如果验证失败,返回数据错误异常 validated_data: 经过验证后的数据,存入此结构 视图 DRF的视图从处理任务,处理流程等跟...Django基本一致 此视图基本是django视图的扩展 Request 把请求解析成一个request实例 属于DRF的,跟django的HttpRequest不太一样 在得到Request之前有一个...name='liu' # 使用案例 name = self.request.query_params.get('name', None)...的访问提供了一些方便HTTP-Method + 名词默认对HttpMethod常用方法提供了支持案例: views - StudentAPIView API调试工具 chrome - postman

2.8K63

Django用户登录与注册系统

,比如GET方法请求页面,返回空的表单,让用户可以填入数据; 对于POST方法,接收表单数据,并验证; 使用表单类自带的is_valid()方法一步完成数据验证工作; 验证成功后可以从表单对象的cleaned_data...通过Cookie可以保存一些诸如用户名、浏览记录、表单记录、登录和注销等各种数据。...Django提供了一个通用的Session框架,并且可以使用多种session数据的保存方式: 保存在数据库内 保存到缓存 保存到文件内 保存到cookie内 通常情况,没有特别需求的话,请使用保存在数据库内的方式...既然有了session记录用户登录状态,那么就可以完善我们的登出视图函数了: def logout(request): if not request.session.get('is_login'...重点在于注册逻辑,首先两次输入的密码必须相同,其次不能存在相同用户名和邮箱,最后如果条件都满足,利用ORM的API,创建一个用户实例,然后保存到数据库内。

6.6K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何用 Django 编写 Python web API【Programming(Python)】

    Django是Python API开发中最受欢迎的框架之一。 在此快速教程中学习如何使用它。 image.png Django是用于衡量所有其他框架的综合Web框架。...本文演示了一个简单的API,可以使用HTTP协议的GET方法从服务器获取数据。...$ cd tutorial $ django-admin startapp quickstart Django使用数据库作为其后端,因此您应该在开始开发之前同步数据库。...在Django中实现序列化器和视图 为了使Django能够将信息传递给HTTP GET请求,必须将信息对象转换为有效的响应数据。 Django为此实现了序列化器。...Firefox或其它开源Web浏览器 : image.png 有关使用Django和Python的RESTful API的更多深入知识,请参阅Django文档 。

    2.7K00

    Django用户登录与注册系统

    ,比如GET方法请求页面,返回空的表单,让用户可以填入数据; 对于POST方法,接收表单数据,并验证; 使用表单类自带的is_valid()方法一步完成数据验证工作; 验证成功后可以从表单对象的cleaned_data...通过Cookie可以保存一些诸如用户名、浏览记录、表单记录、登录和注销等各种数据。...Django提供了一个通用的Session框架,并且可以使用多种session数据的保存方式: 保存在数据库内 保存到缓存 保存到文件内 保存到cookie内 通常情况,没有特别需求的话,请使用保存在数据库内的方式...既然有了session记录用户登录状态,那么就可以完善我们的登出视图函数了: def logout(request): if not request.session.get('is_login'...重点在于注册逻辑,首先两次输入的密码必须相同,其次不能存在相同用户名和邮箱,最后如果条件都满足,利用ORM的API,创建一个用户实例,然后保存到数据库内。 看一下注册的页面: ?

    12.5K70

    如何使用Django构建现代Web应用程序来管理客户信息并在Ubuntu 18.04上进行反应

    您将使用React作为UI库,而不是构建使用内置模板引擎的Django应用程序,利用其虚拟文档对象模型(DOM),声明性方法和快速呈现数据更改的组件。...我们的应用程序将为Django和React使用两个不同的开发服务器。它们将在不同的端口上运行,并将作为两个独立的域运行。...例如,当用户向API端点发送GET请求时,Django会调用相应的函数或API视图来处理请求并返回任何可能的结果。 我们还将使用序列化器。...您创建的每个视图都负责撤消HttpResponse对象。该save()方法将序列化数据保存在数据库中。...这使用空customers 数组来保存组件的状态变量。此阵列将保留客户和可以保存从后端API检索的下一页的URL的nextPageURL。

    16.1K83

    如何从Django应用程序发送Web推送通知

    视图是从Web请求返回响应对象的函数。该 send_push 视图将使用Django-Webpush库发送包含用户在主页上输入的数据的推送通知。...视图通常会为每个请求返回响应。此视图返回一个简单的HTML标记作为响应。 我们将创建的下一个视图是send_push,它将处理使用该django-webpush包发送的推送通知。...如果与给定的主密钥的用户存在,该视图将使用所述匹配的主键来返回user,该主键使用来自django.shortcuts库的get_object_or_404函数。...我们的方法是在templates文件夹中创建一个sw.js文件,然后我们将其注册为视图。...您还完成了获取从应用程序服务器发送推送通知所需的VAPID密钥的步骤。 结论 在本教程中,您学习了如何使用通知API订阅用户以推送通知,安装服务工作者和显示推送通知。

    12.4K115

    Django实战-用户注册和登陆系统

    ,比如GET方法请求页面,返回空的表单,让用户可以填入数据; 对于POST方法,接收表单数据,并验证; 使用表单类自带的is_valid()方法一步完成数据验证工作; 验证成功后可以从表单对象的cleaned_data...通过Cookie可以保存一些诸如用户名、浏览记录、表单记录、登录和注销等各种数据。...Django提供了一个通用的Session框架,并且可以使用多种session数据的保存方式: 保存在数据库内 保存到缓存 保存到文件内 保存到cookie内 通常情况,没有特别需求的话,请使用保存在数据库内的方式...既然有了session记录用户登录状态,那么就可以完善我们的登出视图函数了: def logout(request): if not request.session.get('is_login'...重点在于注册逻辑,首先两次输入的密码必须相同,其次不能存在相同用户名和邮箱,最后如果条件都满足,利用ORM的API,创建一个用户实例,然后保存到数据库内。

    8.5K40

    DRF视图详解:从基础视图到通用视图实践指南

    运行Django项目python manage.py runserver 0.0.0.0:8000打开浏览器登录访问:http://127.0.0.1:8000/api/books/get:查询列表post...:新增打开浏览器登录访问:http://127.0.0.1:8000/api/books/1get:查询单个对象put:修改delete:删除三、通用视图的高级用法动态查询集通过重写 get_queryset...通常需要设置此属性或重写 get_queryset() 方法。注意直接访问 self.queryset 会导致结果缓存,应优先使用 get_queryset() 方法。...数据查询相关方法get_queryset(self):返回视图使用的查询集,是获取数据的主要入口。...get_paginated_response(self, data):返回分页格式的响应对象,配合分页功能使用。您正在阅读的是《Django从入门到实战》专栏!关注不迷路~

    31610

    Django性能之道:缓存应用与优化实战

    Django,作为一个高级Python Web框架,以其快速开发和干净、实用的设计而闻名。然而,即使是最优化的Django应用,也可能因为频繁的数据库查询、复杂的计算或外部API调用而变得缓慢。...获取缓存数据:cache.get(key)方法用于从缓存中检索数据,根据缓存键获取对应的值。 删除缓存数据:cache.delete(key)方法用于删除指定缓存键对应的数据。...然后,在视图或其他需要缓存的地方,可以通过导入cache模块来使用缓存API,例如: from django.core.cache import cache # 设置缓存数据 cache.set('my_key...它允许Django项目使用Redis作为缓存存储,提供了与Django原生缓存API兼容的接口。...缓存使用:显示了缓存命中和未命中的情况。 模板渲染时间:记录了每个模板渲染所需的时间。 中间件和视图处理时间:显示了中间件和视图处理每个请求所需的时间。

    1.2K10

    005:Django Form请求

    Django 请求 传递数据的方式 Form表单 Ajax Url get请求 我们研究request参数 在视图当中,大部分函数有request参数,request这个参数是当URL调用视图函数的时候接收...Request.META 请求当中携带的参数 HTTP_USER_AGENT:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:64.0) Gecko/20100101 Firefox...表单下的第一行添加csrftoken标签 假如我们的视图函数需要接收post请求,那么,我们的加载模块必须是render Render 和其他方法唯一的不同就是第一个参数需要是request...Hidden 是input隐藏域 视图接收数据 request.method #返回请求的方式 #返回值:POST GET request.POST #接收所有POST过来的数据 request.GET...user.lastname = lastName user.email = inputEmail user.password = inputPassword user.save() #保存

    83420

    基于类的通用视图:ListView 和 DetailView

    使用类视图是 Django 推荐的做法,而且熟悉了类视图的使用方法后,能够减少视图函数的重复代码,节省开发时间。接下来就让我们把博客应用中的视图函数改成基于类的通用视图。...具体的实现我们以后会专门开辟一个专栏分析类视图的源代码,到时候就能看出 Django 使用的魔法了)。...不过注意一点的是,在类视图中,从 URL 捕获的命名组参数值保存在实例的 kwargs 属性(是一个字典)里,非命名组参数值保存在实例的 args 属性(是一个列表)里。...DetailView 除了从数据库中获取模型列表的数据外,从数据库获取模型的一条记录数据也是常见的需求。比如查看某篇文章的详情,就是从数据库中获取这篇文章的记录然后渲染模板。...此外,这里是 Django 官方文档对类视图的讲解,尽管我觉得这部分文档对类视图也讲得不是很清楚,不过也值得作为参考吧 基于类的视图概述。

    3.6K70

    Django rest Framework入门 四 :视图

    + router.urls ``` 可以看到在与Django中不同的是,在视图类的as_view方法中添加了一个字典参数,字典中的内容是HTTP请求方法和对应的函数名的键值对。...其中GET请求方法有两个函数,一个是list,一个是retrieve,分别是查所有记录和查单一记录,区别在于url最后有没有捕捉“pk”(主键)这个参数。...这里事实上是DRF框架对路由的分发机制在Django的基础上做了优化,让我们可以将所有的请求方法都写在一个视图类中,而不用像在Django中那样必须区分列表类视图还是详情类视图。...在Django中,由于查单一和查多个都是由GET请求方法触发的,所以不能写在同一个类中,必须拆分到详情类和视图类中。...实现自定义API其实就是在视图类中新增一个函数(这里是latest),然后用action作为装饰器,指定methods和detail这两个参数,对于url不需要做任何修改,但是如果是基于ViewSet实现自定义

    49010

    Django 官方推荐的姿势:类视图

    使用类视图是 django 推荐的做法,熟悉了类视图的使用方法后,能够减少视图函数的重复代码,节省开发时间。接下来就让我们把博客应用中的视图函数改成基于类的通用视图。...具体的实现我们以后会专门开辟一个专栏分析类视图的源代码,到时候就能看出 django 使用的魔法了)。...不过注意一点的是,在类视图中,从 URL 捕获的路径参数值保存在实例的 kwargs 属性(是一个字典)里,非路径参数值保存在实例的 args 属性(是一个列表)里。...DetailView 除了从数据库中获取模型列表的数据外,从数据库获取模型的一条记录数据也是常见的需求。比如查看某篇文章的详情,就是从数据库中获取这篇文章的记录然后渲染模板。...此外,这里是 django 官方文档对类视图的讲解,尽管我觉得这部分文档对类视图也讲得不是很清楚,不过也值得作为参考吧 基于类的视图概述[3]。

    1.9K20

    drf的接口文档生成与管理

    path('docs/', include_docs_urls(title='API document')), ] 2.3 文档描述说明的定义位置 单一方法的视图,可直接使用类视图的文档字符串 class...HostListView(generics.ListAPIView): """ 返回所有主机信息. """ 包含多个方法的视图,在类视图的文档字符串中,分开方法定义 class...的 下面记录在drf中通过swagger生成接口文档的具体实现流程,参考drf swagger文档 3.2 安装django-rest-swagger库 pip3 install django-rest-swagger...Django Auth作为身份验证机制 将其设置为True将会在Swagger UI上显示一个登录/注销按钮,并将csrf_tokens发布到API 'USE_SESSION_AUTH': True...3.6 说明 Django REST Swagger从19年开始就已弃用不再维护了,作者在官方网站上说明了更推荐使用drf-yasg 可以阅读https://github.com/marcgibbons

    5.6K10

    Django搭建blog网站(二)

    首页视图函数中从数据库获取文章列表并保存到 post_list 变量,然后把这个 post_list 变量传给模板,模板使用 for 模板标签循环这个文章列表变量,从而展示一篇篇文章。...这里唯一的不同是我们从数据库获取文章列表的操作不是在视图函数中进行,而是在模板中通过自定义的 {% get_recent_posts %} 模板标签进行。...{% endfor %} 这里我们通过使用 get_recent_posts 模板标签获取到最新文章列表,然后我们通过 as 语法(Django 模板系统的语法)将获取的文章列表保存进了...两个括号括起来的地方是两个命名组参数,Django 会从用户访问的 URL 中自动提取这两个参数的值,然后传递给其对应的视图函数。...包括如何编写模型(Model)、如何编写视图函数(View)、如何使用 Django 内置的模板系统(Template)以及如何配置路由(URL),这四大模块是 Django 开发的核心所在,现在我们已经能够基本掌握这些模块的使用方法了

    5.3K100

    Django中间件自定义开发指南:从原理到实战的深度解析

    ​在Django开发中,中间件就像Web应用的"交通警察",它能在请求到达视图前拦截处理,在响应返回客户端前二次加工。这种全局干预能力让中间件成为实现身份验证、日志记录、性能监控等功能的理想选择。...请求经过所有中间件处理后到达视图函数,生成的响应再按相反顺序经过中间件的process_response方法,最终返回给客户端。...()添加认证相关头信息二、中间件开发五步法:从零构建自定义组件1....性能优化技巧避免数据库查询:在__init__中不要执行数据库操作使用缓存:对频繁访问的数据使用django.core.cache异步处理:耗时操作(如日志记录)改用Celery禁用冗余方法:未使用的方法可直接...循环引用问题 症状:中间件A调用中间件B的方法形成死循环 解决:避免在中间件中手动调用其他中间件方法,通过get_response传递请求3.

    45410

    37.Django1.11.6文档

    同时,还有可能两个结果列表并不包含相同的数据库记录,因为在两次请求期间有可能有Entry被添加进来或删除掉。...如果关联的模型还没有导入,Django 将保存关联关系的记录并在最终关联的模型导入时添加这些关联关系。...8.聚合 Django抽象的数据库API描述使用Django查询来增删查改单个对象的方法。 然而,有时候你需要获取的值需要根据一组对象聚合后才能得到。...在视图中使用多个表单集 可以在视图中使用多个表单集, 表单集从表单中借鉴了很多方法 你可以使用 prefix 给每个表单字段添加前缀,以允许多个字段传递给视图,而不发生命名冲突 让我们看看可以怎么做 from...与上一节中详述的钩型ModelAdmin方法不同,这五个方法实际上被设计为从管理应用程序URL调度处理程序调用为Django视图,以呈现处理模型实例的页面CRUD操作。

    26.6K80

    10.Django基础八之cookie和session

    也就是说在你使用IE访问服务器时,服务器会把Cookie发给IE,然后由IE保存起来,当你在使用FireFox访问服务器时,不可能把IE保存的Cookie发送给服务器。...五 django中操作session Django中Session相关方法   注意:这都是django提供的方法,其他的框架就需要你自己关于cookie和session的方法了。...里面将sessionid的值取出来,将django-session表里面的对应sessionid的值的那条记录中的session-data字段的数据给你拿出来(并解密),get方法就取出k1这个键对应的值...加在CBV视图的get或post方法上 from django.utils.decorators import method_decorator class HomeView(View):...直接加在视图类上,但method_decorator必须传 name 关键字参数         如果get方法和post方法都需要登录校验的话就写两个装饰器。

    1.1K20

    Django Web开发基础知识

    ,为了解决两者之间的不同,就出现了ORM映射技术,使用这种技术我们无需关注sql语句的具体编写,只需要使用特定的API即可完成复杂的查询删除等任务,但有一个缺点,采用此技术在一定程度上会消耗系统部分资源...GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制. GET与POST请求在服务端获取请求数据方式不同。...GET方式提交数据,会带来安全问题,而POST请求则相对安全。 创建第一个django项目 1.如果是使用Pycharm创建的项目,直接创建项目,即可。...%} {% endblock %} 使用JS资源: {% block js %} {% endblock %} 1.首先创建一个base.html文件,以作为我们的母版....else: return self.cleaned_data["password"] # 自定义方法(全局钩子, 检验两个字段),检验两次密码是否一致 def clean_RepeatPass

    2.7K20

    第 9 篇:实现分类、标签、归档日期接口

    具体来说,获取博客文章发表时间归档列表的方法是调用查询集(QuerySet)的 dates 方法,提取记录中的日期。...一是 action 装饰器,它用来装饰一个视图集中的方法,被装饰的方法会被 django-rest-framework 的路由自动注册为一个 API 接口。...视图集中所有以上提及的以标准动作命名的方法,都会被 django-rest-framework 的路由自动注册为标准的 API 接口。...django-rest-framework 默认只能识别标准命名的视图集方法并将其注册为 API,但我们可以添加更多非标准的 action,而为了让 django-rest-framework 能够识别这些方法...对于这样的场景,我们可以在请求 API 时加上查询参数,django-rest-framework 解析查询参数,然后从全部文章列表中过滤出查询所指定的文章列表再返回。

    3.6K30
    领券