V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
ryan123
V2EX  ›  Python

python web 端 如何能执行 linux 命令?

  •  
  •   ryan123 · May 13, 2014 · 4611 views
    This topic created in 4379 days ago, the information mentioned may be changed or developed.
    用FLASK构建了WEB端,现在想再网页上能执行linux命令并且能返回打印的结果到页面上.
    编程新手,希望大家能指教下
    15 replies    2014-05-14 19:00:30 +08:00
    9hills
        1
    9hills  
       May 13, 2014   ❤️ 1
    subprocess 库
    ryan123
        2
    ryan123  
    OP
       May 13, 2014
    @9hills 谢谢,我也查到用这个. 网页端的请求是用post?
    9hills
        3
    9hills  
       May 13, 2014   ❤️ 1
    @ryan123

    web页面执行shell命令分几个等级
    1. 简单的,执行时间很短的,直接POST提交表单,显示结果
    2. 复杂点用ajax,不用刷新页面
    3. 再复杂点,用websocket。直接页面刷实时结果

    看需求
    Keyes
        4
    Keyes  
       May 13, 2014   ❤️ 1
    要看你是否为耗时命令

    非耗时命令直接p = subprocess.Popen然后p.wait拿结果
    耗时命令要控制好阻塞,命令启动后生成一个结果ID,让AJAX拿着ID来问你要结果
    ryan123
        5
    ryan123  
    OP
       May 13, 2014
    @Keyes
    @9hills
    感谢不吝赐教
    xiaket
        6
    xiaket  
       May 13, 2014
    注意控制好权限, 不要让这个功能成为安全漏洞.
    rayps
        7
    rayps  
       May 13, 2014
    楼主干嘛用 Ramotion 的头像
    ryan123
        8
    ryan123  
    OP
       May 13, 2014 via iPad
    @rayps 哈,网上乱搜的
    ryan123
        9
    ryan123  
    OP
       May 13, 2014 via iPad
    @xiaket 自己瞎捣鼓的,不过谢谢提醒
    cbsw
        10
    cbsw  
       May 13, 2014
    在网页端执行 linux 命令,确定你的权限能很好的控制?感觉这相当危险啊,看看可不可以提供一个虚拟环境
    zjgood
        11
    zjgood  
       May 14, 2014 via Android
    shellinabox
    ryan123
        12
    ryan123  
    OP
       May 14, 2014
    @zjgood 看着不错,谢谢
    zjgood
        13
    zjgood  
       May 14, 2014 via Android
    @zjgood 我发现linode的Lish就是这货改的,上次进Lish按了一下右键,就出现了shellinabox的版权。。
    tonghuashuai
        14
    tonghuashuai  
       May 14, 2014
    os.popen('git pull').read()
    nilai
        15
    nilai  
       May 14, 2014
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3035 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 13:29 · PVG 21:29 · LAX 06:29 · JFK 09:29
    ♥ Do have faith in what you're doing.