Python中看了Django REST framework官方文档还是不会写API,请问怎么破?
想给移动端写 API 接口调用,选了 Django rest framework 框架,可是看了后还是不会写,请各位大神指点一下哦
Python中看了Django REST framework官方文档还是不会写API,请问怎么破?
消灭 0 回复
我刚开始用DRF的时候也卡过,文档确实全,但新手容易找不到重点。核心就三步:
- 序列化器定义数据格式
- 视图集处理业务逻辑
- 路由配置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 你值得拥有

