SQLite DB mit python erstellt und über Webseite modifizieren

  • Ich habe auf meinem Raspberry einen Apache Webserver installiert und mit Python und SQLite eine lokale Datenbank erstellt.

    Nun möchte ich die Werte dieser Datenbank einerseits mit einem python script anpassen können und andererseite eine Webseite erstellen und darüber die Werte der Datenbank bequem über die Oberfläche ändern.

    Geht das?

    Ich habe beim Googlen "mod_splite" entdeckt. Ist das der richtige Weg, oder sollte ich die Einbindung auf der Webseite anders machen?

  • Hallo,


    also so eigentlich grundsätzlich macht man Datenbanken _nicht_ über das Internet direkt verfügbar, weil potentielles Sicherheitsrisiko. Wenn du Daten brauchst, dann geht das über eine definierte APi, bei der man sich beim Zugriff authentifizieren muss.


    Du kannst du Django als Webframework nehmen, dass bringt das Admin-Interface (=HTML-basiertes Frontend für die Datenbank) direkt mit. Um es zu aktivieren brauchst du nur 2 Zeilen Code.


    Gruß, noisefloor

  • also so eigentlich grundsätzlich macht man Datenbanken _nicht_ über das Internet direkt verfügbar

    Datenbanken, mit denen man im Internet arbeiten möchte oder muß, muß man wohl oder übel im Internet verfügbar machen. Was immer du mit API meinst, wäre letzenlich auch nur ein Zwischenschritt, um auf den Datenbankserver zuzugreifen. Ich habe da aber mehr Erfahrungen mit PHP. Da gibt es z.B. PHPLiteAdmin, der sich dazu gut eignet. Python wurde eine zeitlang ja sehr für Webinterfaces angepriesen, aber die Zahl der existierenden Anwendungen spricht da eine andere Sprache.

  • Heute hast du wohl einen Anti-Python Tag?!

    Python wurde eine zeitlang ja sehr für Webinterfaces angepriesen, aber die Zahl der existierenden Anwendungen spricht da eine andere Sprache.

    Quellen?



    Datenbanken, mit denen man im Internet arbeiten möchte oder muß, muß man wohl oder übel im Internet verfügbar machen.

    Wenn ein Server ansprechbar über "das Internet" ist, über irgendeine Webanwendung, bedeutet dass noch lange nicht, dass ich die Datenbankschnittstelle auch über "das Internet" freigeben muss, sondern konfiguriere diese so, dass diese nur von localhost aus erreichbar ist. Dann kann die Webanwendung ansich mit der DB kommunizieren (Vorausgesetzt Webanwendung und DB liegen am selben Server), was aber noch lange nicht bedeutet dass die DB frei vom Internet aus erreichbar ist.

  • Üblicherweise setzt man mindestens einen Applikationsserver vor den Datenbankserver. In der entsprechenden Industrie findet man generell 3-tier Architekturen.

    War jedenfalls in meinem früheren Leben so🙂 Und hat sich bewährt.

    Man soll nicht alles glauben was man denkt!
    (Zitat aus 'Die Anstalt')

  • vorausgesetzt Webanwendung und DB liegen am selben Server

    Genau. Das ist im Heimbereich vielleicht der Fall. Ich will den Weg des Zugriffs auf die Datenbank auch gar nicht anzweifeln, grundsätzlich ist die Datenbank ansprechbar und irgendwo sind die Zugangsdaten hinterlegt. 3-tier trennt Applikation, Präsentation und Datenbank logisch, nicht unbedingt physisch, obwohl das von Vorteil ist. Ich komme vielleicht auch nicht mit dem Begriff Datenbank aus dem Internet zugänglich machen zurecht.

  • Heute hast du wohl einen Anti-Python Tag?!

    Das Gefühl habe ich auch...


    Das ist im Heimbereich vielleicht der Fall.

    Und auch im professionellen Bereich. Vielleicht nicht überall, aber zumindest bei uns @ work läuft der Zugriff auf DB-Daten aus dem Internet i.d.R. über HTTP-APIs mit entsprechender Authentifizierung.

  • Ok, dann ist alles irgendwie eine API. Mir eigentlich egal. Das Framework um die Datenbank, also der Datenbankserver dann aber auch. Man kann also ohne API nach der Definition gar nicht auf die Datenbank zugreifen. Darum gings mir auch gar nicht. Ich hatt mich nur daran gestoßen, dass es hieß sie müsste im Web verfügbar gemacht sein, würde heißen es besteht ein Unterschied zur Benutzung einer API, wie aber in dem Wikilink festgestellt wurde ist ja selbst das Programm, mit dem auf den DB-Server zugegriffen wird eine API. Der Unterschied besteht, ob Serverseitig oder Clientseitig. Ich finde in dem Link wird der Begriff API ganz schön gedehnt, was nicht heißen soll, das es falsch ist. Für mich ist der Begriff API eine Programmierschnittstelle und damit deutlich enger gefasst, was aber wieder mal Auffassungssache ist.