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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效