douju3911 2018-06-29 17:37
浏览 235
已采纳

Python获取发布数据以调用远程python脚本以显示在页面上

I am pretty new to python as I've been using PHP in the past. I am trying to practice python by converting my PHP code to python. I have the following php code to receive POST data from webserver and make a call over ssh to output a text file of a remote server back to the page.

app.js:

$(document).ready(function(){
$("button").on('click', function() {
    //call python script to generate report
     $.get("/", function(data){
        $( "#statusOutput" ).val(data);
    });
});
});

gettextoutput.php:

<?php //gettextoutput.php

    $user = 'user';
    $password = 'pass';
    $path = '/path/to/my/text/file';

    if ($_SERVER['REQUEST_METHOD'] == 'POST'){
        $hostname = $_POST['hostname']; //10.139.x.x
        $textoutput = file_get_contents("ftp://$user:$password@$hostname/$path");
        echo $textoutput; // I can use this to display the text output back to the page
    }
?>

I was wondering if there is a way to do this in python as well? Any information would be appreciated!

  • 写回答

1条回答 默认 最新

  • douye2020 2018-06-29 17:56
    关注

    This should get you on the path to do it. using Flask and FTPlib that you must install. This works with a server named werkzeug (WSGI) out of the box included in Flask.

    #This answers makes a few assumptions | assumes a payload in json format | assumes Flask as framework | Assumes werkzeug as a WSGI server
    from Flask import Flask, request, send_file
    from ftplib import FTP                                                                      
    
    app = Flask(__name__)
    
    @app.route('/', methods['POST'])
    def get_some_file():
        input = request.get_json()
        ftp = FTP("SOMESERVERFTPIP")                                                                               
        ftp.login(input['user'],input['password'])
    #This will create local file and write contents of ftp file to it
        with open(/local/path/+input['path'], 'w') as f:
            ftp.retrbinary('RETR %s' % input['path'], f.write)
    
        #Filename should be a path, you may concatenate etc..
        return send_file('/local/path'/+input['filename'],
                         mimetype='text/txt',
                         attachment_filename='filename',
                         as_attachment=True)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献