Python中看了Django REST framework官方文档还是不会写API,请问怎么破?

想给移动端写 API 接口调用,选了 Django rest framework 框架,可是看了后还是不会写,请各位大神指点一下哦


Python中看了Django REST framework官方文档还是不会写API,请问怎么破?
37 回复

消灭 0 回复


我刚开始用DRF的时候也卡过,文档确实全,但新手容易找不到重点。核心就三步:

  1. 序列化器定义数据格式
  2. 视图集处理业务逻辑
  3. 路由配置URL映射

给你个最小可运行例子,保存为views.py

from rest_framework import serializers, viewsets
from django.contrib.auth.models import User

# 1. 序列化器
class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'username', 'email']

# 2. 视图集  
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

然后在urls.py里注册:

from rest_framework.routers import DefaultRouter
from .views import UserViewSet

router = DefaultRouter()
router.register(r'users', UserViewSet)

urlpatterns = router.urls

现在访问/users/就能看到API了。DRF的魔法在于ModelViewSet自动提供了增删改查所有端点,ModelSerializer自动处理模型字段。

关键是把官方教程的quickstart部分手敲一遍,别只看文档。

先跑通这个最小例子再扩展。

用 rest 干啥,看 django。

不开发 web 端,只是用 Django rest framework 给 iOS 和安卓写接口用

我是看了这个文档 https://darkcooking.gitbooks.io/django-rest-framework-cn/content/
然后后续在官网找答案,基本上解决了数据展示和权限之类的,目前还不清楚怎么自定义返回数据的结构,特别是返回错误。

和 web 有啥关系。。django 是个 mvc 框架,可以吐数据也可以吐页面。

你知道 rest 风格是啥东西么。。。

我看得也是这个

#6 还是看官网吧。网上找了一圈,没有特别好的中文资料。只能啃官网英文文档。

你还是用 js 的框架吧 如 sails… 之类的

好的,谢谢

当然不是啊 你学 django 就可以 rest 这个可以忽略

暂时只考虑 Python

换 flask 或者 tornado :dog:

上 falcon 啊

写接口也不一定非要用 rest 风格呀?
django 自带的 jsonresponse 也可以

flask 看看

可用,没过时,Python 是 2.7,Django 我选 1.11 版本

感觉 drf 设计很反人类,还是用我的 rails

慕课网有个 django+vue+django rest fram 的视频 你看 rest 部分就好 我是官网看不懂去看那个视频的 得自己找下别人录制的

DRF 没那么简单的,还是花巨资找人写算了,比如找我。

我来帮你写

我也看了一下 Django 的 REST framework,所以我选择 Flask。

要看英文文档

我选择 tornado。。。

他那个文档还算不错。就是入门的指导有点啰嗦。怎么说呢,他先给你介绍 增删改查的类,然后又说我们 把这四个类合并起来了,你只需要用这个混合类就行了。饶了一大圈最佳实践放到后面才讲出来。

这个框架跟 django 一样开箱即用。定义模型,定义 serializer,然后定义 viewset。

serializer 绑定模型,然后指定 API 显示哪些 字段是否可读 等等信息。

混合的 viewset 类继承了增删改查 4 个类的方法, 重载混合类对应的方法,就可以实现重载增删改查的行为。

如果要快速的看到效果,用那个混合类是最方便的,什么都不用写。

这个文档是我看过的文档里最难懂的

一直在用 DRF,大概的思路是,业务逻辑基本都写在 Model 层,校验和数据处理写在 Serializer 层,View 层只负责最简单的业务逻辑,按照这个原则来写的话就会清晰一些了。

不过确实学习曲线略陡峭,主要还是因为违背了 python 的哲学,里面有很多隐式实现和调用,需要阅读大量源码和亲手实践之后才能完全掌握,不过一旦掌握的话,开发效率会有很大提升。

很简单的接口需求可以选择 bottle。

Django rest framework 跟 #28 说的一样,稍微陡峭,但是一旦用了一次,下次再使用它写接口就快得离谱。而且非常容易遵循 RESTful 的原则。


附上用了 Django rest framework 的项目。
https://github.com/ToonoW/SpiderManager

上面的项目虽然用了,但是是不好的实践,没有做权限的管理,路由也配置得不怎么好。所以请不要当作范例。多去摸索英文文档。

喵喵喵。DRF 还陡峭啊。。。。

首先得先看懂 django。。。

直接把你的爬虫挂到国外去, 代理 ip 的方案比较麻烦。

聪明

我也看过那个 rest framework,实在看的头晕,反正我的开发需要的 api 很少,用 json 传递数据,自己写不是更灵活
搞不清楚为什么要这个所谓了框架
这个所谓的 rest framework 相当于,你买来了食材,请一个阿姨来做饭,但你家里的锅碗瓢盆都是现成的,难道做个简单的烧水泡面就不会吗?还要请阿姨来做?稍微有点生活的人,都可以把食材做出几个家常菜出来,更灵活。请阿姨,还费钱,人家只做她拿手的。
django 和 rest framework 的关系就是这样

用 django 自己做 rest api

rest 里面处理嵌套类怎么搞,比如在博客页面把,评论也展示出来。

Flask-restful 解决你的问题而且很简单

flask 你值得拥有

回到顶部