Seite 1 von 1

Webkonsole mit Python/ajax

Verfasst: Donnerstag 27. Dezember 2007, 16:04
von moesibaer
Hallo,

hat jemand das folgende Szenario schonmal versucht bzw. ein hilfreiches Tutorial im Internet gesehen?

Ich will in einer Webapplication eine Eingabe haben die über Ajax HTTP Request an eine cherrypy Funktion sendet. Die Eingabe sollte eine Unix Kommando sein, welches von der Funktion ausgeführt wird.

Hierdurch soll eine Webapplication, die meine Xeninstanzen verwaltet um die Möglichkeit der Konsole via Web erweitert werden.

Vielen Dank für jede Hilfe

Re: Webkonsole mit Python/ajax

Verfasst: Donnerstag 27. Dezember 2007, 17:11
von gerold
moesibaer hat geschrieben:Die Eingabe sollte eine Unix Kommando sein, welches von der Funktion ausgeführt wird.
Hallo moesibaer!

Willkommen im Python-Forum!

Das könnte ein Ansatz dafür sein:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import os
import cherrypy
import subprocess


class Root(object):
    
    def command(self, cmd = ""):
        if not cmd:
            return "No command! >> http://localhost:8080/command?cmd=dir"
        cherrypy.response.headers["Content-Type"] = "text/plain"
        proc = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
        return proc.stdout.read()
    command.exposed = True


def main():
    cherrypy.quickstart(Root())
    

if __name__ == "__main__":
    main()
Um die Gefahren die dadurch entstehen musst du dich selber kümmern. Das darf niemals eine öffentliche Webanwendung werden. Das darf nur lokal oder gut abgesichert laufen. !!!

mfg
Gerold
:-)

Verfasst: Donnerstag 27. Dezember 2007, 18:16
von rafael
Hier findest du TryPy, was eine Pythonimplentation von Try Ruby! sein soll.

Für Unixkommandos auszuführen, kann man das Standardmodul ``subprocess`` benutzen.

Verfasst: Donnerstag 27. Dezember 2007, 19:24
von veers
So etwas gibt es doch schon :) Google -> Ajaxterm ;)

Verfasst: Freitag 28. Dezember 2007, 03:14
von moesibaer
perfekt! ajaxterm scheint ein guter Ansatz zu sein! Vielen Dank für eure Mühen!