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 · 8559 次点击
    这是一个创建于 2517 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想给移动端写 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 个类的方法, 重载混合类对应的方法,就可以实现重载增删改查的行为。

    如果要快速的看到效果,用那个混合类是最方便的,什么都不用写。
    zjb861107
        26
    zjb861107  
       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   ·   实用小工具   ·   2956 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:05 · PVG 21:05 · LAX 05:05 · JFK 08:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.