Seite 1 von 1
Wie am besten Admin-Panel schreiben
Verfasst: Montag 27. Februar 2012, 18:35
von Nanotron
Hallo!
Ich plane für meinen Server ein kleines Webpanel zu schreiben. Leider habe ich noch nicht so viele Erfahrungen mit Python, habe mich aber schon einwenig in Django rein gelesen.
Folgendes habe ich vor:
Ich möchte eine Administrationswebseite wie ISPConfig fr meinen Server programmieren.
Dabei muss das Backend mit LDAP, MySQL und Config-Files klar kommen.
Da es je nach Programm unterschiedliche konfigurationsbackends gibt.
Soweit wie möcglich möchte ich immer auf LDAP zurück greifen.
Nun meine Fragen:
1. Gibt es bereits so parser für Unix-config files in Python, oder sollte man sowas lieber selbst schreiben?
2. Django und alle andren Frameworks scheinen mir für einen Anwendungszweck etwas überdimensioniert, da ich ja selbst höchstens mit einer Userverwaltung arbeiten muss und diese ja eh mit LDAP realisieren werde. Django und co unterstützen glaube ich auch gar nicht das großartige bearbeiten von LDAP-Datenbanken.
3. Wie schafft man es in Python Dinge auf Webseiten darzustelllen?
macht man sowas mit Jinja? Mir gefiel das Templatesystem von Django sehr gut und das von Jinja hat mich sehr gut daran erinnert.
Vielen, vielen Dank!
Mit freundlichen Grüßen
Nanotron
Re: Wie am besten Admin-Panel schreiben
Verfasst: Montag 27. Februar 2012, 18:58
von lunar
@Nanotron: Ad 1) Es gibt nicht das Format für Unix-Konfigurationsdateien, sondern nur verschiedene Formate verschiedener Dienste und Programme. Manche davon lassen sich mit existierenden Parsern verarbeiten, für andere mag es Drittmodule im PyPI geben, und wieder andere musst Du wohl oder übel selbst implementieren.
Ad 2) Für Django ist die Wahrscheinlichkeit, ein brauchbares Modul für LDAP-Authentifizierung zu finden, noch am Größten. Ansonsten musst Du die Authentifizierung so oder so selbst implementieren, insofern kannst Du auch Django verwenden. Django ist einfach das bekannteste Framework, ergo findest Du dafür auch den besten Support, und die größte Menge fertiger Module.
Ad 3) Wenn Du diese Frage stellen musst, dann lies Dich erst einmal in die Grundlagen der Webprogrammierung und die Funktionsweise von HTTP ein. Python stellt nichts auf Webseiten dar. Python bedient lediglich die Server-Seite, die auf Anfragen des Clients entsprechende Daten, beispielsweise eben HTML zur Darstellung einer Webseite, ausliefert. Dieses HTML wird im Regelfall mithilfe eines Template-Systems erzeugt, damit man das Design unabhängig vom Quelltext verändern kann, und der Quelltext nicht mit lauter HTML-Fragmenten zugekleistert wird.
Ob man jetzt ohne größere Erfahrung in Python mal eben so eine browser-gestützte Administrationsoberfläche für Server implementieren kann, sei mal dahingestellt. Ich glaube, Du unterschätzt die Komplexität dieses Vorhabens ein wenig. Wenn Du dieses Projekt nicht lediglich aus Neugierde oder aus Spaß an der Freude stemmen möchtest, oder anders gesagt, wenn wirklich der praktische Einsatz im Vordergrund steht, dann nimm besser gleich ISPConfig.
Re: Wie am besten Admin-Panel schreiben
Verfasst: Montag 27. Februar 2012, 19:31
von Nanotron
Da hast du wahrscheinlich recht lunar.
Also es ist mehr als ein Freizeitprojekt gedacht und es kann gut sein das ich die Komplexität unterschätze.
Ich wärehalt folgendermaßen dran gegangen:
Ich hätte halt die entsprechenden Skripte geschrieben, die die Datenbanken oder Configfiles des jeweiligen Programms anpassen können, diese hätten die entsprechenden einstellungen bei jedem mal aufrufen der Seite neu gelesen und dann halt an den Client übergeben.
Funktioniert das so, oder mach ichs mir wirklich zu leicht?
Weiterhin würde ich gerne wissen ob man ein entsprechendes LDAP Modul für Django suchen müsste, oder wäre auch eine entsprechende Bibliothek für Python selbst denkbar?
Was hältst du von dem Framework Flask? Ich bin eben drauf gestoßen und kann es noch net so recht zuordnen.
Vielen Dank für die schnelle Antwort!
Gruß
nanotron
Re: Wie am besten Admin-Panel schreiben
Verfasst: Dienstag 28. Februar 2012, 08:53
von Leonidas
Nanotron hat geschrieben:Ich wärehalt folgendermaßen dran gegangen:
Ich hätte halt die entsprechenden Skripte geschrieben, die die Datenbanken oder Configfiles des jeweiligen Programms anpassen können, diese hätten die entsprechenden einstellungen bei jedem mal aufrufen der Seite neu gelesen und dann halt an den Client übergeben.
Funktioniert das so, oder mach ichs mir wirklich zu leicht?
An sich ja. Aber das Parsen von Configdateien ist noch einigermaßen einfach, aber spätestens wenn die Configdateien sich kreuz und quer includen wird das kompliziert. Und wenn du versuchst in diese Configdateien zu schreiben gibt es auch einiges zu beachten: was ist mit Konfiguration die der User von Hand geschrieben hat? Wird die einfach drübergebügelt? Werden Kommentare erhalten? Wird die Formatierung der Dateien beibehalten? etc. Was passiert wenn die Dateien im Hintergrund von jemandem anderen editiert werden? Wie löst man das Schreiben von Dateien auf eine sichere Weise dass nicht plötzlich jeder auf deinem System die Dateien bearbeiten kann. Wie teilt man Services mit, dass sie ihre Konfiguration neu laden sollen (viele Services tun das wenn man das HUP-Signal sendet, aber einige Distributionen haben da spezielle Wrapper dafür).
Nanotron hat geschrieben:Was hältst du von dem Framework Flask? Ich bin eben drauf gestoßen und kann es noch net so recht zuordnen.
Ja, ist gut. Aber wenn du HTTP nicht verstehst, dann hilft dir weder Flask, noch Bottle noch sonstwas.
Re: Wie am besten Admin-Panel schreiben
Verfasst: Dienstag 28. Februar 2012, 10:38
von deets
Ebenfalls wichtig: wie werden die Dateien denn eigentlich geschrieben? Das sind ja system-kritische Daten, die normalerweise nur von root oder aehnlichem geschrieben werden koennen.
Wenn du das durch dein panel erlaubst, dann sind die entweder zu schwach geschuetzt, oder dein Prozess zu privilegiert. Da gibt's Wege drum rum - aber trivial ist das nicht.
Kann man nicht fuer webmin einfach plugins schreiben? waere das nicht ein besserer start?
Re: Wie am besten Admin-Panel schreiben
Verfasst: Dienstag 28. Februar 2012, 14:13
von Leonidas
deets hat geschrieben:Kann man nicht fuer webmin einfach plugins schreiben? waere das nicht ein besserer start?
Webmin ist doch sogar aus Debian geflogen, weiß nicht ob man da ansetzen will, auf so einem längst gesunkenem Schiff.