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
xueyoucai
V2EX  ›  Python

Python 接口接口

  •  
  •   xueyoucai · 2020-06-04 14:39:43 +08:00 · 2240 次点击
    这是一个创建于 1393 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司给了一个接口,说是要更新数据,需要我写一个调用接口的服务。 我谢了一个 request 脚本,数据可以更新入库 但是现在想把它改写成为 flask 的接口 请问,可以改写成接口请求嘛。如果可以怎么实现

    14 条回复    2020-06-06 18:34:47 +08:00
    krixaar
        1
    krixaar  
       2020-06-04 14:42:54 +08:00
    没看明白你想干什么,用 flask 当中间层做个 API 的 API ?
    jdhao
        2
    jdhao  
       2020-06-04 14:45:28 +08:00 via Android
    这不是脱裤子放屁了,你用 request 实现了,为啥要再套一层 flask 接口呢。。当然再套一层应该可以,在 flask 请求里面 request 公司给你的接口
    black11black
        3
    black11black  
       2020-06-04 14:48:33 +08:00
    都散了吧,楼主这贴发的明显啥也不懂,问了也白问
    siteshen
        4
    siteshen  
       2020-06-04 14:49:43 +08:00
    1. 找个 Flask 的入门教程,学习怎么构建简单的 API ;
    2. 重构你的脚本,对外提供一个 update_data() 之类的函数;
    3. 整合 Flask 和你的脚本。

    最终能得到类似下面的代码(现场手写的,请自辨):


    from your_script import update_data

    app = Flask()

    @app.route("/api/update-data")
    def update_data_handler():
    kwargs = app.get_request_args() # 需要去查 flask 怎么获取参数
    update_data(user_id=kwargs['user'], post_ids=kwargs['post_ids'])
    return {"success": true}


    if __name__ == "__main__":
    app.run()
    ibegyourpardon
        5
    ibegyourpardon  
       2020-06-04 14:49:51 +08:00
    我大概明白了。公司有个接口,可以 update 数据。
    哥们一想这他妈简单啊,requests 直接撸起啊。
    10 分钟搞定了。
    回头一看,这脚本执行太麻烦了,毕竟不是什么时候都好跑这个脚本。
    哥们灵机一动,那我用 flask 写个接口服务,当前端或者什么请求我的接口的时候,我把这个请求封装处理下发送给公司的那个接口请求不就完了?

    这不就是脱裤子放屁吗?
    xueyoucai
        6
    xueyoucai  
    OP
       2020-06-04 14:51:28 +08:00
    @ibegyourpardon 对 大概就是这个意思,可是这个屁放的不舒服
    xueyoucai
        7
    xueyoucai  
    OP
       2020-06-04 14:52:13 +08:00
    @jdhao 问题是怎么把这玩意做成服务,常驻运行
    xueyoucai
        8
    xueyoucai  
    OP
       2020-06-04 14:53:40 +08:00
    @siteshen 好像跟我想的差不多?~~
    ibegyourpardon
        9
    ibegyourpardon  
       2020-06-04 15:24:28 +08:00
    @xueyoucai 为啥不直接请求公司给你的接口呢。。。
    krixaar
        10
    krixaar  
       2020-06-04 17:32:50 +08:00
    我大概明白了,是不想每次手工写个 txt 然后跑.py ,想有个什么界面能直接敲点什么回车即可,那你需要的大概不是 Python,应该随便找个啥前端框架(再不济 Bootstrap4 都行)撸个表单页面出来,放本机的 Apache/Nginx 上,浏览器打开页面用 AJAX 往公司 API 扔就行了( Bootstrap4 自带 jQuery 直接$.ajax )。
    lithiumii
        11
    lithiumii  
       2020-06-04 19:49:00 +08:00 via Android
    或者你需要的其实是定时执行脚本?
    xueyoucai
        12
    xueyoucai  
    OP
       2020-06-05 13:50:47 +08:00
    @krixaar 这样也可以哦~
    SjwNo1
        13
    SjwNo1  
       2020-06-05 18:52:16 +08:00
    你先弄清楚 who where when,再考虑要不要写成接口,若是常驻运行,那你需要定时脚本
    qile1
        14
    qile1  
       2020-06-06 18:34:47 +08:00 via Android
    这些接口如果循环执行,建议做后台定时任务,之前也遇到楼主说的情况,公司要求明天调用接口产生一些日志数据,建议直接 python 写逻辑代码,Windows 用计划任务每天执行吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1909 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:25 · PVG 00:25 · LAX 09:25 · JFK 12:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.