Tkinter mit online Datenbank verbinden

Fragen zu Tkinter.
Antworten
DiiiDiii
User
Beiträge: 24
Registriert: Donnerstag 10. Oktober 2013, 10:30

Hallo,

ich habe eine Tkinter GUI erstellt und möchte diese mit Inhalten aus meiner Webdatenbank füllen. Da die DB beim Hoster all-inkl liegt kann ich nur mit CGI darauf zugreifen. Wie geht das und ist das überhaupt möglich?
Ich hoffe ihr könnt mir helfen :)

Mfg
BlackJack

@DiiiDiii: Also erst einmal hat das doch gar nichts mit `Tkinter` zu tun‽

Und dann müsstest Du halt eine Webanwendung schreiben die den Zugriff auf die Daten regelt. Da wäre dann die erste Frage ob dafür bei dem Hoster Python überhaupt in Frage kommt. Falls ja, wie man eine Webanwendung dort in den Webserver einbinden kann, denn CGI ist etwas antiquiert, das möchte man in der Regel nicht.
DiiiDiii
User
Beiträge: 24
Registriert: Donnerstag 10. Oktober 2013, 10:30

Stimmt eigentlich, hat nichts mit tkinter zu tun... bitte verschieben wenn möglich ;)

Kann man nicht irgendwie via ODBC darauf zugreifen?
BlackJack

@DiiiDiii: Von Dir lokal? Nein. Innerhalb des Webhosters vielleicht, aber unwahrscheinlich, und das würde man auch nicht wollen indirekt über eine weitere Abstraktionsschicht zu gehen wenn es direkter geht.
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

Die Datenbank beim Hoster wird aus Sicherheitsgründen keine Zugriffe von außen entgegen nehmen, daher musst du dir wohl eine Schnittstelle selbst bauen.

Solange es nur darum geht, die Daten für eine Abfrage zu übergeben und das Ergebnis als JSON o.ä. zu bekommen, reicht CGI meiner Meinung nach meistens aus.
http://www.florian-diesch.de
DiiiDiii
User
Beiträge: 24
Registriert: Donnerstag 10. Oktober 2013, 10:30

Ok, danke, also mein Vorhaben ist, dass folgendes: mit tkinter habe ich mir eine Kundenverwaltung gebastelt und die Kunden sollen auf meiner Online Datenbank sein. Laut meinem Hoster habe ich mit Python nur die Möglichkeit mit CGI. Wenn es damit geht frage ich mich 1. wie das geht und ob es evtl. ein Tutorial (bestenfalls wäre natürlich eine Vorlage schön) gibt.
Oder gibt es noch andere Möglichkeiten mit meiner Oberfläche auf die Daten zuzugreifen?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

diesch hat es doch schon geschrieben. Du bastelst dir auf dem Server ein paar CGI-Scripts für deine Abfragen und diese liefern das Ergebnis einfach JSON zurück. Mit Python kannst du dann die Seite/das Script aufrufen und die Daten auswerten und anzeigen.
Das Leben ist wie ein Tennisball.
DiiiDiii
User
Beiträge: 24
Registriert: Donnerstag 10. Oktober 2013, 10:30

Ok danke, habt ihr zufällig noch ein gutes Tutorial zur hand?
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

Brauchbare Doku müsste ich auch erst suchen.

Eine minimale Version ohne Fehlerbehandlung, Kodierungsgefummel und so, die JSON an den Server schickt und von dort liest:

test.cgi:

Code: Alles auswählen

import sys, json

#!/usr/bin/env python

print 'Content-type: text-html\n\n'

jdata = sys.stdin.read()

data = json.loads(jdata)
data[u'result'] = 666

print json.dumps(data)
Client-Code:

Code: Alles auswählen

#!/usr/bin/env python
import urllib, json

data = {u'test': 'somevalue',
        u'something': 42
}

jdata = json.dumps(data)
print 'Sending:', jdata

req = urllib.urlopen('http://localhost/server.cgi', jdata)
jdata=req.read()

data = json.loads(jdata)
print 'Received:', data
Da es um sensible Daten geht, würde ich die JSON-Daten verschlüsselt verschicken. Damit hast du dann auch gleich die Authentifizierung erledigt.
http://www.florian-diesch.de
DiiiDiii
User
Beiträge: 24
Registriert: Donnerstag 10. Oktober 2013, 10:30

Werde mal schauen ob ich das kapiere :D Evtl. ist auch noch eine brauchbare Doku zu finden ;)
Antworten