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

第 3 篇:实现博客首页文章列表 API

作者:HelloGitHub-追梦人物[1] 文中所涉及示例代码,已同步更新到 HelloGitHub-Team 仓库[2] 此前讨论基于模板引擎开发方式 django-rest-framework...django-rest-framework,代码逻辑是一样,只是最后返回结果时,返回资源序列化结果。...转换过程,还会进行数据合法性校验。 先来看一个简单例子(摘自 django-rest-framework 官网示例),理解序列化工作原理功能。...原因在于,对于 django 模型(Model),已经有了定义其数据类型模型字段,因此 django 表单可以根据关联模型,自动推测需要使用表单字段,背后帮我们完成表单字段选择,简化了表单定义...表单类似,django-rest-framework 序列化也可以根据关联模型,自动检测被序列化模型各个属性数据类型,推测需要使用序列化字段,无需我们显示定义。

98620

Django-rest-framework 是个什么鬼?

不同点在于,传统基于模板引擎开发方式,资源使用 HTML 文档进行描述并返回给客户端,而在 RESTful API 开发方式,资源通常被描述为 JSON 或者 XML 格式返回给客户端。...事实上,的确能够 django 返回 JSON 或者 XML 格式数据,但是 django 框架本身只提供了十分基础功能。...之前说过, RESFful 架构系统,资源以某种描述形式客户端和服务之间传递,django-rest-framework 根据客户端能够接受资源格式,自动使用合适资源描述工具,返回客户端可接受资源...django 内置序列化功能有限,django-rest-framework 提供了功能更加丰富强大序列化,让资源序列化工作变得异常简单。 各种通用视图(Generic Views)。...接下来实战教程,我们会逐一学习并使用它们。 让我们正式开启 django-rest-framework 学习之旅吧!

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

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

回顾一下我们之前使用视图集 viewset 时提到过 action(动作)概念,django-rest-framework 预定义了几个标准动作,分别为 list 获取资源列表,retrieve...之前序列化字段都是序列化(Serializer)里面使用,因为通常来说接口需要序列化一个对象多个字段。...而这个接口中只需要序列化一个时间字段(类型为 Python 标准库 datetime.date),所以没必要单独定义一个序列化了,直接拿 django-rest-framework 提供用于序列化时间类型...接着我们接口返回一个 Response, Response 将序列化结果包装返回(保存在 data 属性),django-rest-framework 会进一步帮我们把这个 Response 包含数据解析为合适格式...这在 RESTful API 设计中肯定是会遇到,因此第三方库 django-filter 帮我们实现了上述所说查询过滤功能,而且 django-rest-framework 有很好集成,我们可以

2.6K30

第 11 篇:基于 drf-haystack 文章搜索接口

作者:HelloGitHub-追梦人物 django 博客教程,我们使用django-haystack Elasticsearch 进行文章内容搜索。...django-haystack 默认返回搜索结果是一个类似于 django QuerySet 对象,需要配合模板系统使用,因为未被序列化,所以无法直接用于 django-rest-framework...此时就要发挥开源社区力量,去 GitHub 使用关键词 rest haystack 搜索,果然搜到一个 drf-haystack 开源项目,专门用于解决 django-rest-framework ...haystack 结合使用问题。...对象,这个对象就是视图中 HTTP 请求对象,但是因为 django request 对象无法像 flask 那样从全局获取,因此 drf 视图中将其保存在了序列化序列化字段 context

1.6K20

第 5 篇:用视图集,简化你代码

使用视图集一个更大好处,就是可以配合 django-rest-framework 提供路由(router),自动生成 API URL,不需要我们再手工将 URL 模式视图函数绑定了。...事实上,使用路由自动生成 URL 模式时,路由内部就是采用了上面手工生成视图函数并绑定 URL 一样方式。...路由使用非常简单,我们 初始化 RESTful API 风格博客系统 引入了 DefaultRouter 以开启 API 交互后台,DefaultRouter 实例化时默认帮我们注册了一个 API...第二个参数就是视图集,第三个参数 basename 用于指定视图集生成视图函数名前缀。 django URL ,一条路由通常由 URL 模式,对应视图函数视图函数名组成。...例如这里 basename='post',列出资源列表 action 为 list(见上一篇教程关于 action 讲解),所以生成获取文章资源列表视图函数名为 post-list,使用 reverse

80110

第 8 篇:内容支持 Markdown 语法,接口返回包含解析后 HTML

toc body_html 这两个属性值是我们需要序列化并在接口中返回,那么可否像之前那样,直接在序列化 PostRetrieveSerializer Meta.fields 添加这两个属性就行了呢...之前说过,模型字段不同类型值都需要不同序列化字段对其进行序列化,我们之所以能直接在 Meta.fields 中指定需要序列化字段而不需要额外代码是因为这些字段都是直接定义 django 模型...django-rest-framework 可以根据模型字段定义自动推断该使用何种类型序列化字段,但对于这里提到 toc、body_html 属性,django-rest-framework...不过解决方法很简单,既然 django-rest-framework 无法自动推断,那我们就人工指定该使用何种类型序列化字段就行了。...这里需要序列化字段值都是字符串,因此序列化显示地指定需要序列化字段以及使用系列化字段类型就可以了: class PostRetrieveSerializer(serializers.ModelSerializer

81910

第 4 篇:用类视图实现首页 API

,只是针对数据序列化序列化等逻辑做了封装。...django-rest-framework 中最基本类视图是 views.APIView,这个类可以看成是上一篇教程中用到 api_view 装饰类版本。...我们基本没有写任何逻辑代码,只是指定了类视图几个属性值。因为逻辑基本都是通用,通用类视图背后帮我们做了全部工作,我们只要告诉它:用哪个序列化去做,序列化哪个资源等就可以了。...以这里类视图为例,我们指定了: 使用 PostListSerializer 序列化(通过 serializer_class 指定); 序列化博客文章(Post)列表(通过 queryset 指定);...最后一步就是 urls.py 绑定接口,把原来绑定函数视图改为现在类视图: path('api/index/', views.IndexPostListAPIView.as_view()) 启动开发服务

75010

UnitTestWebHost出现关于LogicalCallContext严重问题

在为写好程序编写Unit TestQuickStart时候,遇到了两个基于LogicalCallContext严重问题。...一、VS Unit Test下设置LogicalCallContext导致序列化问题 为了演示Unit Test下设置LogicalCallContext会导致怎样问题,为此我写了一个非常简单例子去重现它...二、VS ASP.NET WebHost下设置LogicalCallContext导致序列化问题 我们知道,为了给基于ASP.NETWeb应用开发者带来便利,Visual Studio内置了一个简单...为了演示,我们同样使用上面定义LogicalContextItem类型,然后一个单纯WebPageLoad事件处理方法编写了如下一段简单代码: 1: public partial..._ThreadPoolWaitCallback.PerformWaitCallback() 三、采用IIS承载我们Web应用可以解决上述问题 为什么我说这个问题内置于VSWeb应用承载工具WebHost

82290

初始化 RESTful API 风格博客系统

接下来,我们将使用 django-rest-framework,一步步为博客系统开发 RESTful API,并在这个过程深入学习 django-rest-framework 使用方法,为后续使用...如果你已经跟着第一步教程 Django博客教程(第二版)完成了博客系统开发,那么可以继续原来项目上进行,只需要注意这个教程个别细微差异就可以了。...你也可以 fork 新仓库项目,新仓库 Django博客教程(第二版)示例仓库代码几乎完全一样,只是个别地方(例如 Docker 容器名、镜像名等)做了一些修改,以体现本教程特色。...既然要使用 django-rest-framework,第一件事当然是先安装它。...至此,django-rest-framework 安装基本设置已经完成,接下来就来开始开发博客 API 了。

66520

【愚公系列】2022年04月 Python教学课程 62-DRF框架介绍

DRF框架是建立Django框架基础之上,由Tom Christie大牛二次开发开源项目。...官方文档 : https://www.django-rest-framework.org/ GitHub : https://github.com/encode/django-rest-framework.../tree/master 二、DRF特点 DRF又如下特点: 提供了定义序列化Serializer方法,可以快速根据DjangoORM或者其它库自动序列化/反序列化。...直观APIweb界面。 可扩展性,插件丰富. 三、DRF增删改查 序列化与反序列化时,虽然操作数据不尽相同,但是执行过程却是相似的,也就是说这部分代码是可以复用简化编写。...开发RESTAP视图中,虽然每个视图具体操作数据不同,但增、删、改、查实现流程基本套路化,所以这部分代码也是可以复用简化编写: 增:校验请求数据->执行反序列化过程->保存数据库->将保存对象序列化并返回

52820

在学习django-rest-framework时收集学习资料推荐

由于我平时开发 django 项目都比较小,所以一直以来都是使用 django 模板引擎渲染 html 页面这种比较原始方式开发。...django-rest-framework 自然也遵循这个惯例,我学习第一步便是通读这个教程,并且根据教程指导一步步本机上完成了教程项目,还附带做了一些笔记。...当然面对更多复杂项目,肯定会遇到入门教程没有遇到过需求,这个时候一方面是看其他人使用 django-rest-framework 开发项目,学习他们实现方式。...比如我要实现社区回复 API,就在 youtube 上找到了 一个很棒使用 django-rest-framework 开发博客教程,学习了它评论实现方式,自己项目中问题也就对照着解决了。...PS:Django中文社区项目Django学习小组开发团队协作下正紧锣密鼓地开发,如果你对这个项目感兴趣并且熟悉 django-rest-framework 框架的话,欢迎加入我们,review

1.3K60

第 15 篇:接口单元测试

django 单元测试框架使用方式。...这里我们再对 djnago 测试框架做一个回顾整体回顾,至于如何编写运行测试,后面将会进行详细讲解,如果想对 django 单元测试做更基础了解,推荐回去看看关于测试 3 篇教程以及 django...创建评论成功后返回状态码应该是 201,接口返回数据 response.data 属性,我们对接口返回状态码部分数据进行了断言,确保符合预期结果。...正常视图函数调用时,视图函数会接收到传入 request 参数,然后 django-rest-framework 会将 request 传给序列化(Serializer) _context 属性...,序列化任何序列化字段均可以通过直接访问 context 属性而间接访问到 _context 属性,从而拿到 request 对象。

1.2K20

在学习django-rest-framework时收集学习资料推荐

由于我平时开发 django 项目都比较小,所以一直以来都是使用 django 模板引擎渲染 html 页面这种比较原始方式开发。...django-rest-framework 自然也遵循这个惯例,我学习第一步便是通读这个教程,并且根据教程指导一步步本机上完成了教程项目,还附带做了一些笔记。...当然面对更多复杂项目,肯定会遇到入门教程没有遇到过需求,这个时候一方面是看其他人使用 django-rest-framework 开发项目,学习他们实现方式。...比如我要实现社区回复 API,就在 youtube 上找到了 一个很棒使用 django-rest-framework 开发博客教程,学习了它评论实现方式,自己项目中问题也就对照、着解决了。...PS:Django中文社区项目Django学习小组开发团队协作下正紧锣密鼓地开发,如果你对这个项目感兴趣并且熟悉 django-rest-framework 框架的话,欢迎加入我们,review

3K80

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

实现步骤 详细使用步骤如下( 10 步) 2-1 创建虚拟环境 使用 mkvirtualenv 创建一个单独虚拟环境,指定 Python 版本为 3.7 # 创建虚拟环境,名称为:django3 #...打开 Pycharm,项目根目录下,进入虚拟环境,使用内置「 sqlite 」进行数据库映射,并创建一个超级用户 # 进入虚拟环境 workon django3 # 数据库映射(sqlite3)...项目目录下 urls.py 文件,自定义一个类继承于「 serializers.HyperlinkedModelSerializer 」 利用内部类「 Meta 」指定模型序列化属性 #...API 表现 2-7 定义视图 ViewSets urls.py 文件,定义一个视图表现类,让他继承于「 viewsets.ModelViewSet 」类 # urls.py from...指定数据源serializer_class指定要序列化类,即上面自定义序列化类:UserSerializer 2-8 注册路由 同样 urls.py 文件使用 DRF DefaultRouter

1.7K20

DjangoFlaskTornado三大web框架性能分析

写在前面: 本文数据涉及到之前遇到过问题,大概一次 http 请求到收到响应需要多少时间。这个问题在实际工作与框架有比较大关系,因此特别就框架性能做了一次分析。...远程性能:从远程服务上返回 http response 时间 数据库性能:使用 ORM(对象关系映射)从数据库获取数据,并渲染到模板上时间 最基本 json 测试:Django 与 Flask...占优 单纯本地测试 json 序列化Django 完成一次 json 序列化平均时间 42.52 毫秒,每秒请求量 4762 次。...Tornado 完成 json 序列化平均时间高达 77.51 毫秒,是所有框架耗时最长,每秒请求数是 2578 次,也是低于 Django 与 Flask 水准。...但是实际使用,一般是Django/Flask + Celery + Redis/Memchaned/RabbitMQ 模式,由此带上了异步处理能力。 ? ?

3.2K30

免费带你学Django全栈!

于是 HelloGitHub 成员讨论后,我决定推出一套 Django 全栈开发系列教程。 这套教程将从 0 基础开始,通过多个项目的实战,循序渐进地将现代化 Web 开发技术分享给大家。...Step2:使用 django-rest-framework 为 Step1 博客开发一套 Restful API 现在流行前后端分离开发方式,在这套教程,我们将学习如何使用 django-rest-framework...Step4:使用 Webpack、Vue django-rest-framework 开发现代化博客 在这套教程我们将学习前端工程化知识,学习如何使用 Webpack 搭建 Vue 开发环境,...并且使用 Vue Step2 开发博客 api 来开发一个更加现代化博客,并且学习如何使用 Docker 容器快速地部署稳定地运行我们博客应用。...Step6:综合此前学到全部技术,使用 django-rest-framework Vue 开发更加现代化论坛 学到这里,你已经小有所成,对 djangodjango-rest-framework

59820
领券