看了 Django rest framework 的官方文档还是不会写 API,请问怎么破

2018-01-31 15:10:04 +08:00
 helloword001

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

8357 次点击
所在节点    Python
37 条回复
ox180
2018-01-31 17:58:24 +08:00
我来帮你写
JamesMackerel
2018-01-31 19:25:44 +08:00
我也看了一下 Django 的 REST framework,所以我选择 Flask。
thinker3
2018-01-31 19:57:54 +08:00
要看英文文档
SP00F
2018-01-31 20:05:00 +08:00
我选择 tornado。。。
mayne95
2018-01-31 23:26:39 +08:00
他那个文档还算不错。就是入门的指导有点啰嗦。怎么说呢,他先给你介绍 增删改查的类,然后又说我们 把这四个类合并起来了,你只需要用这个混合类就行了。饶了一大圈最佳实践放到后面才讲出来。

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

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

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

如果要快速的看到效果,用那个混合类是最方便的,什么都不用写。
zjb861107
2018-02-01 01:02:43 +08:00
这个文档是我看过的文档里最难懂的
fakepoet
2018-02-01 01:43:55 +08:00
一直在用 DRF,大概的思路是,业务逻辑基本都写在 Model 层,校验和数据处理写在 Serializer 层,View 层只负责最简单的业务逻辑,按照这个原则来写的话就会清晰一些了。
fakepoet
2018-02-01 01:46:54 +08:00
不过确实学习曲线略陡峭,主要还是因为违背了 python 的哲学,里面有很多隐式实现和调用,需要阅读大量源码和亲手实践之后才能完全掌握,不过一旦掌握的话,开发效率会有很大提升。
toono
2018-02-01 08:47:13 +08:00
很简单的接口需求可以选择 bottle。

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


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

上面的项目虽然用了,但是是不好的实践,没有做权限的管理,路由也配置得不怎么好。所以请不要当作范例。多去摸索英文文档。
pixstone
2018-02-01 10:47:28 +08:00
喵喵喵。DRF 还陡峭啊。。。。
ooeyunarika
2018-02-01 15:09:22 +08:00
首先得先看懂 django。。。
scukmh
2018-02-01 15:34:27 +08:00
直接把你的爬虫挂到国外去, 代理 ip 的方案比较麻烦。
helloword001
2018-02-01 15:54:12 +08:00
@scukmh 聪明
zzlettle
2018-02-01 20:50:42 +08:00
我也看过那个 rest framework,实在看的头晕,反正我的开发需要的 api 很少,用 json 传递数据,自己写不是更灵活
搞不清楚为什么要这个所谓了框架
这个所谓的 rest framework 相当于,你买来了食材,请一个阿姨来做饭,但你家里的锅碗瓢盆都是现成的,难道做个简单的烧水泡面就不会吗?还要请阿姨来做?稍微有点生活的人,都可以把食材做出几个家常菜出来,更灵活。请阿姨,还费钱,人家只做她拿手的。
django 和 rest framework 的关系就是这样

用 django 自己做 rest api
woodme0000
2018-02-05 17:47:13 +08:00
rest 里面处理嵌套类怎么搞,比如在博客页面把,评论也展示出来。
RaymondLiu
2018-02-08 09:30:11 +08:00
Flask-restful 解决你的问题而且很简单
Desperado2018
2018-09-19 12:02:01 +08:00
flask 你值得拥有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/427433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX