看了 Django rest framework 的官方文档还是不会写 API,请问怎么破 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
helloword001
V2EX    Python

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

  •  
  •   helloword001 2018-01-31 15:10:04 +08:00 8986 次点击
    这是一个创建于 2839 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言    2018-02-01 15:23:08 +08:00
    谢谢大家的建议
    第 2 条附言    2018-02-01 15:24:07 +08:00
    我还有个问题:1,我想抓取 facebook 和 Twitter 的数据,scrapy 需要用到国外代理 IP,请问大家有什么好的解决方案吗
    第 3 条附言    2018-02-01 15:24:33 +08:00
    2,如果用国外代理 IP 方案的话,我租了一个国外的云服务器(vultr),可是怎么把这个服务器变成代理服务器呢?
    37 条回复    2018-09-19 12:02:01 +08:00
    helloword001
        1
    helloword001  
    OP
       2018-01-31 15:30:10 +08:00
    消灭 0 回复
    owenliang
        2
    owenliang  
       2018-01-31 15:33:22 +08:00
    用 rest 干啥,看 django。
    helloword001
        3
    helloword001  
    OP
       2018-01-31 15:35:34 +08:00
    @owenliang 不开发 web 端,只是用 Django rest framework 给 iOS 和安卓写接口用
    adeweb
        4
    adeweb  
       2018-01-31 15:35:43 +08:00
    我是看了这个文档 https://darkcooking.gitbooks.io/django-rest-framework-cn/content/
    然后后续在官网找答案,基本上解决了数据展示和权限之类的,目前还不清楚怎么自定义返回数据的结构,特别是返回错误。
    owenliang
        5
    owenliang  
       2018-01-31 15:36:37 +08:00
    @helloword001 和 web 有啥关系。。django 是个 mvc 框架,可以吐数据也可以吐页面。

    你知道 rest 风格是啥东西么。。。
    helloword001
        6
    helloword001  
    OP
       2018-01-31 15:37:05 +08:00
    @adeweb 我看得也是这个
    helloword001
        7
    helloword001  
    OP
       2018-01-31 15:40:02 +08:00
    @owenliang Django rest framework 不是专门写 API 用的吗
    adeweb
        8
    adeweb  
       2018-01-31 15:40:36 +08:00
    @helloword001 #6 还是看官网吧。网上找了一圈,没有特别好的中文资料。只能啃官网英文文档。
    aristotll
        9
    aristotll  
       2018-01-31 15:41:52 +08:00
    你还是用 js 的框架吧 如 sails... 之类的
    helloword001
        10
    helloword001  
    OP
       2018-01-31 15:42:26 +08:00
    @adeweb 好的,谢谢
    owenliang
        11
    owenliang  
       2018-01-31 15:42:30 +08:00 via Android
    @helloword001 当然不是啊 你学 django 就可以 rest 这个可以忽略
    helloword001
        12
    helloword001  
    OP
       2018-01-31 15:43:16 +08:00
    @aristotll 暂时只考虑 Python
    knightdf
        13
    knightdf  
       2018-01-31 16:06:26 +08:00
    换 flask 或者 tornado :dog:
    BiggerLonger
        14
    BiggerLonger  
       2018-01-31 16:15:30 +08:00
    上 falcon 啊
    chengxiao
        15
    chengxiao  
       2018-01-31 16:25:10 +08:00   1
    写接口也不一定非要用 rest 风格呀?
    django 自带的 jsonresponse 也可以
    LINAICAI
        16
    LINAICAI  
       2018-01-31 16:30:16 +08:00
    flask 看看
    why1
        17
    why1  
       2018-01-31 17:19:01 +08:00 via Android
    可用,没过时,Python 是 2.7,Django 我选 1.11 版本
    WildCat
        18
    WildCat  
       2018-01-31 17:22:07 +08:00
    感觉 drf 设计很反人类,还是用我的 rails
    so1n
        19
    so1n  
       2018-01-31 17:26:41 +08:00
    慕课网有个 django+vue+django rest fram 的视频 你看 rest 部分就好 我是官网看不懂去看那个视频的 得自己找下别人录制的
    robinlovemaggie
        20
    robinlovemaggie  
       2018-01-31 17:51:19 +08:00
    DRF 没那么简单的,还是花巨资找人写算了,比如找我。
    ox180
        21
    ox180  
       2018-01-31 17:58:24 +08:00
    我来帮你写
    JamesMackerel
        22
    JamesMackerel  
       2018-01-31 19:25:44 +08:00
    我也看了一下 Django 的 REST framework,所以我选择 Flask。
    thinker3
        23
    thinker3  
       2018-01-31 19:57:54 +08:00
    要看英文文档
    SP00F
        24
    SP00F  
       2018-01-31 20:05:00 +08:00
    我选择 tornado。。。
    mayne95
        25
    mayne95  
       2018-01-31 23:26:39 +08:00 via Android
    他那个文档还算不错。就是入门的指导有点嗦。怎么说呢,他先给你介绍 增删改查的类,然后又说我们 把这四个类合并起来了,你只需要用这个混合类就行了。饶了一大圈最佳实践放到后面才讲出来。

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

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

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

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

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


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

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

    用 django 自己做 rest api
    woodme0000
        35
    woodme0000  
       2018-02-05 17:47:13 +08:00
    rest 里面处理嵌套类怎么搞,比如在博客页面把,评论也展示出来。
    RaymondLiu
        36
    RaymondLiu  
       2018-02-08 09:30:11 +08:00 via iPhone
    Flask-restful 解决你的问题而且很简单
    Desperado2018
        37
    Desperado2018  
       2018-09-19 12:02:01 +08:00
    flask 你值得拥有
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3483 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 05:03 PVG 13:03 LAX 21:03 JFK 00:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86