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!
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)