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

在 web 端怎么调用一个用 python 写的项目?

  •  
  •   302790951 · 2015-05-25 08:34:25 +08:00 · 3140 次点击
    这是一个创建于 3469 天前的主题,其中的信息可能已经有所发展或是发生改变。

    web端怎么和我的python项目接上呢?
    肯定不能直接执行命令调用,这样会出很多问题,主要是输出与输出这样调用的话很麻烦。
    django可以吗?求一个思路...感谢

    9 条回复    2015-05-26 21:32:31 +08:00
    Septembers
        1
    Septembers  
       2015-05-25 08:35:47 +08:00 via Android   ❤️ 2
    JSON-RPC
    302790951
        2
    302790951  
    OP
       2015-05-25 08:45:41 +08:00
    @Septembers 感谢,现在就去了解了解
    clino
        3
    clino  
       2015-05-25 08:51:20 +08:00
    调用要多长时间返回结果? 如果时间比较长就要考虑下怎么做异步了,否则调用一直不返回体验不太好
    MrEggNoodle
        4
    MrEggNoodle  
       2015-05-25 09:06:00 +08:00
    @Septembers 非常感谢,又增加见识了。
    302790951
        5
    302790951  
    OP
       2015-05-25 10:36:45 +08:00
    @clino 估计得做异步了...因为在web端多用户...现在问题是怎么做接口....
    clino
        6
    clino  
       2015-05-25 10:54:41 +08:00
    @302790951 做异步我想到的方式是,服务器后台马上创建一个异步的job异步执行,然后马上给前端返回job的相关信息,这样前端可以以轮询的方式查询到相关的执行信息并展现

    这种只要服务端能较好地支持异步任务就有可行性了,如python可以用gevent之类的东东
    Septembers
        7
    Septembers  
       2015-05-25 11:06:12 +08:00   ❤️ 1
    @302790951
    没实现接口之前 建议不要考虑异步化
    如果响应时间比较不理想再建议考虑
    sivacohan
        8
    sivacohan  
       2015-05-25 16:11:16 +08:00 via Android
    异步上celery吧。优点是方便,缺点是增加运维成本。
    fy
        9
    fy  
       2015-05-26 21:32:31 +08:00
    如果需求是这样:web提供API,任务耗时较长需要异步。
    那么可以明确说Django不行,因为支持不了异步。

    在这个基础之上,能支持异步的框架要么从gevent或者twisted比较底层的开始写;
    或者可以使用tornado,本身是比较现成的支持异步的http框架。

    这时候要注意!tornado异步也是有多种选择的,
    最简单的自然是tornado-celery啦,但是celery方案会比较重;
    如果是轻任务,tornado本身也有线程池异步任务的姿势(如果用py3因为有配套语法支持会更爽一些)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5767 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:18 · PVG 10:18 · LAX 18:18 · JFK 21:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.