Transparente Durchreiche zur Konsole?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 25. Januar 2005, 08:24

Slalomsk8er
User
Beiträge: 25
Registriert: Samstag 22. Januar 2005, 19:43

Dienstag 25. Januar 2005, 11:36

Code: Alles auswählen

if environ.has_key('QUERY_STRING'):
        "vorhandene URL-Parameter parsen"
        for i in environ['QUERY_STRING'].split("&"):
            i=i.split("=")
            if len(i)==1:
                CGIdaten[ i[0] ] = ""
            else:
                CGIdaten[ i[0] ] = i[1]
Danke, ich glaube das ist genau was ich gemeint habe.

Nun bin ich Python CGI mässig bedient.
Also ran an die Shell ;)

Gruss, Dominik
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 25. Januar 2005, 11:38

In dieser gekürzten Fassung erhälst du aber nur die URL-Parameter, nicht aber die Daten aus dem FieldStorage()...
Slalomsk8er
User
Beiträge: 25
Registriert: Samstag 22. Januar 2005, 19:43

Dienstag 25. Januar 2005, 12:21

FieldStorage() hatte ich schon selber gefunden.

Keine angst, ich habe alles geklaut (die cooky Geschichte ist auch nett);)

Nun wüsste ich nur noch gerne, wie ich diesen Server zum laufen bringe (ich glaube nicht, dass serve_forever() hier auch geht):

Code: Alles auswählen

import CGIHTTPServer, SocketServer, socket

SERVERNAME = ""
PORT = 80
serveradresse=(SERVERNAME, PORT)

class MyServer(SocketServer.ThreadingTCPServer):
    allow_reuse_address = 1    # Seems to make sense in testing environment
    def server_bind(self):
        """Override server_bind to store the server name."""
        SocketServer.ThreadingTCPServer.server_bind(self)
        host, port = self.socket.getsockname()[:2]
        self.server_name = socket.getfqdn(host)
        self.server_port = port

class MyHandler(CGIHTTPServer.CGIHTTPRequestHandler):

    def is_cgi(self):
        """Tests whether self.path is a cgi-script"""
        path = self.path
        for x in self.cgi_directories:
            i = len(x)
            if path[:i] == x and (path[i+1:] and path[i] == '/'):
                self.cgi_info = path[:i], path[i+1:]
                return True
        return False
server = MyServer(serveradresse, MyHandler)
Quelle: http://python.sandtner.org/viewtopic.php?p=10896#10896

Ups, probieren geht über studieren. Es funzt doch mit server.serve_forever() :lol:

Gruss, Dominik
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 25. Januar 2005, 15:36

Slalomsk8er hat geschrieben:Z-Shell, nie gehört bis jetzt.
The Z-Shell ist eine Unix Shell, die aber im Gegensatz zur Bash einen gelungenen Windows Port besitzt.
Slalomsk8er hat geschrieben:Online, mit sys.argv hatte ich bereits in der Shell das Vergnügen.

Ich glaube die Metode, die ich suche ist Daten mit GET zu übermitteln und zwar in dem man das file, das die Daten verarbeiten soll mit den Daten als Anhang in der URL aufruft (http://localhost:8000/cgi-bin/test.py?content=home oder so). Nur wie greiffe ich die Daten ab? Etwa auch mit sys.argv oder bin ich da auf dem Holzweg?
Du kannst das hier versuchen: http://python.sandtner.org/viewtopic.php?p=12224#12224
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Slalomsk8er
User
Beiträge: 25
Registriert: Samstag 22. Januar 2005, 19:43

Dienstag 25. Januar 2005, 21:21

jens war schneller ;)

Gruss, Dominik
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 26. Januar 2005, 14:53

Ja mei. Dafür bin ich manchmal schneller als mawe, und auch jeden Tag da :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Slalomsk8er
User
Beiträge: 25
Registriert: Samstag 22. Januar 2005, 19:43

Mittwoch 26. Januar 2005, 17:51

:lol:
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 26. Januar 2005, 21:43

Noch mal zurück zum Thema:
Slalomsk8er hat geschrieben:Wie mache ich eine transparente Durchreiche zur Konsole (bash, cmd, usw.. )?
Hast du evtl. eine Lösung zu meinem Problem:
http://python.sandtner.org/viewtopic.php?t=2611
Gast

Sonntag 30. Januar 2005, 00:50

subprocess -- Subprocess management

Kenn sich jemand damit aus?

Es scheint so, als ob dieses Modul benutzen sollte.

Gruss, Dominik
Slalomsk8er
User
Beiträge: 25
Registriert: Samstag 22. Januar 2005, 19:43

Sonntag 30. Januar 2005, 01:50

Ja mei. Dafür bin ich manchmal schneller als mawe, und auch jeden Tag da
mawe scheint aber für meine Problemstellung "hilfreicher" zu sein, auch wenn er nicht direkt antwortet :wink: http://python.sandtner.org/viewtopic.php?t=1964

Code: Alles auswählen

import os
f = os.popen('gnuplot -persist','w')
print >> f, "plot sin(x)" 
Fast eine kleine Erleuchtung :lol: nun muss ich noch die beiden Gegenrichtungen (stout und sterr) auslesen können und dann bin ich bald fertig.
Eher nicht, dann gehts erst richtig los, ich liebe ncurses (ein Fluch das teil :wink: "n"curse"s" -> Fluch :lol: ).

Gruss, Dominik
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 30. Januar 2005, 18:11

Slalomsk8er hat geschrieben:mawe scheint aber für meine Problemstellung "hilfreicher" zu sein, auch wenn er nicht direkt antwortet :wink: http://python.sandtner.org/viewtopic.php?t=1964
:cry:
Slalomsk8er hat geschrieben:Eher nicht, dann gehts erst richtig los, ich liebe ncurses

Ich weiß nicht ob ncurses irgendwelche ASCII Sequenzen produziert, oder wie es arbeitet..
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Slalomsk8er
User
Beiträge: 25
Registriert: Samstag 22. Januar 2005, 19:43

Montag 31. Januar 2005, 01:08

Nicht traurig sein (sonst bekomme ich Schuldgefühle, ich hasse meine grosse Klappe).

ASCII sequenzen, du sagst es. Ich habe aber leider keine Ahnung, wie die tab, <- ^ -> und enter handhabt :cry:

Gruss, Dominik
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 31. Januar 2005, 13:27

Slalomsk8er hat geschrieben:ASCII sequenzen, du sagst es. Ich habe aber leider keine Ahnung, wie die tab, <- ^ -> und enter handhabt :cry:
Hmm, vermutlich genauso wie readline.. sorry, das ist wohl keine große Hilfe. Du könntest dir aber mal den Quellcode von "Konsole", oder xterm oder rxvt (Putty, Übershell) angucken um vielleicht eine Ahnung zu bekommen, wie die es gelöst haben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Montag 31. Januar 2005, 13:38

Ich würd mal nach "console ansi escape sequence" googeln.

Dookie
[code]#!/usr/bin/env python
import this[/code]
Antworten