Python-Datenbankanwendungs-Framework und -Tools

8

Ich habe Geschäftsdatenbankanwendungen wie Finanzen, Inventar und andere Geschäftsanforderungsanwendungen erstellt. Ich plane, zu Python zu wechseln. Was wären die Werkzeuge, um mit dem Besten anzufangen? Ich würde Master, Transaktionsformulare, Verarbeitung (Backend), Berichte und so etwas tun müssen. Die Datenbank wäre postgress oder mysql. Da ich neu bei Python bin, verstehe ich, dass ich neben Python das ORM und auch ein Framework brauche. Meine Anwendung ist keine Website bezogen, aber es könnte auch erforderlich sein, über das Internet zu erfolgen.

Wie wähle ich die Ersteinrichtung von Werkzeugkombinationen?

    
Cœur 20.06.2009, 02:22
quelle

6 Antworten

11

Wenn ich du wäre, würde ich wahrscheinlich zuerst schauen, ob eine webbasierte Lösung auf der Basis von Django den Trick macht. Wenn Sie ein wenig besser aussehen und fühlen möchten, fügen Sie jQuery zum Mix hinzu. Wenn es viel zu wenig Funktionalität bietet, gehen Sie zu PyQt. Wenn Sie viele sehr kleine Anwendungen haben, wählen Sie eine Mischung aus Technologien. Im Folgenden finden Sie meine (etwas längere) Begründung für diese Empfehlung.

Webapp- oder Desktopanwendung

Vor einem Jahr hatten wir eine Business-Datenbank und brauchten ein Front-End. Wir mussten entscheiden, welche Technologie für das Frontend verwendet werden sollte. Wir haben überlegt:

  1. PyQt
  2. Web-basiert ( hier für einen Überblick über Web-Frameworks für Python)

Die Vorteile für PyQt aus unserer Sicht:

  • Vorherige C ++ Erfahrung mit Qt , von der wir wussten, dass Qt für die Aufgabe geeignet ist.
  • Alle notwendigen Werkzeuge enthalten.
  • Einfach, reiche Klienten zu entwickeln.

Wir haben uns jedoch gegen PyQt und für eine webbasierte Lösung entschieden. Gründe waren:

  • Die Anforderungen an das Frontend waren bescheiden und in einem Browser einfach zu erfüllen (meist Berichterstattung, einige Formulare zur Eingabe von Daten oder zum Ausführen von Funktionen).
  • Bereitstellung der Anwendung (und neuer Versionen, Fehlerkorrekturen, etc.) ist viel einfacher, da alles nur auf dem Server in einer kontrollierten Umgebung passiert.
  • Zugriffskontrolle / Authentifizierung / Rechte ist "kostenlos", da es Teil des Servers (in unserem Fall Apache mit Active Directory Authentification) und des Browsers ist, der für uns wichtig ist.
  • Die Anwendung benötigte sowieso eine Serververbindung und musste auf der Clientseite nichts speichern.

Auf den Punkt gebracht : Funktionsreiche Front-Ends mit vielen Funktionen in einer kontrollierten Implementierungsumgebung sind wahrscheinlich einfacher mit Qt zu implementieren. Für unsere leichten Frontends erschien uns eine serverbasierte Lösung besser.

Welches Web-Framework?

Nachdem wir uns für eine Technologie entschieden hatten, mussten wir uns für ein Framework entscheiden. Wir haben ein wenig recherchiert und zwei Alternativen im Detail betrachtet:

  1. Django
  2. Ein Stapel von Software bestehend aus CherryPy als Dispatcher (um HTTP-Anfragen an die Funktionalität und alle damit verbundenen Dinge anzupassen), Mako als Templating-Bibliothek, um Webseiten zu generieren, SQLAlchemy als ORM und jQuery für die clientseitige Funktionalität.

Wir haben die beiden Alternativen bewertet und haben uns am Ende für den zweiten entschieden. Die Entscheidung wurde von unseren wirklich "leichten" Front-End-Anforderungen (viele sehr kleine Anwendungen) bestimmt. Ein Stapel Software - die wir nach Bedarf mischen und anpassen können - erschien uns besser. Wir können SQLAlchemy in Situationen wiederverwenden, in denen wir kein Web-Front-End benötigen, wir können CherryPy einfach ohne Templating-Bibliothek und ORM verwenden und so weiter. In vielen anderen Fällen würde ich jedoch Django über diesen Stapel wählen.

Zusammenfassend:

  • eine große, komplexe Anwendung - & gt; PyQt
  • eine Reihe von relativ ähnlichen, direkten Berichten, Formen usw. mit einem Look-and-Feel - & gt; Django
  • eine relativ vielschichtige Menge von Dingen, die sich in Bezug auf Anforderungen und verwendete Technologie oder die Wiederverwendung bestimmter Technologien unter anderen Umständen stark unterscheiden - & gt; Mix aus Technologien nach Bedarf
stephan 20.06.2009 09:37
quelle
4

Wenn ich du wäre, würde ich mit django anfangen.

    
Macarse 20.06.2009 02:40
quelle
1

Wie Boudewijn Rempt hier geschrieben hat, "für den einfachsten Weg zu erstellen eine [[NON-web]] Datenbankanwendung, möchten Sie vielleicht einen Blick auf PyQt "werfen. Er hat das vor 6 Jahren geschrieben, aber ich denke, dass es auch heute vollkommen stimmt. Das Modul QtSql von pyqt4 unterstützt insbesondere MySQL, PostgreSQL und einige andere Datenbanken.

>     
Alex Martelli 20.06.2009 02:56
quelle
1
___ answer1021313 ___

Wenn ich du wäre, würde ich wahrscheinlich zuerst schauen, ob eine webbasierte Lösung auf der Basis von Django den Trick macht. Wenn Sie ein wenig besser aussehen und fühlen möchten, fügen Sie jQuery zum Mix hinzu. Wenn es viel zu wenig Funktionalität bietet, gehen Sie zu PyQt. Wenn Sie viele sehr kleine Anwendungen haben, wählen Sie eine Mischung aus Technologien. Im Folgenden finden Sie meine (etwas längere) Begründung für diese Empfehlung.

Webapp- oder Desktopanwendung

Vor einem Jahr hatten wir eine Business-Datenbank und brauchten ein Front-End. Wir mussten entscheiden, welche Technologie für das Frontend verwendet werden sollte. Wir haben überlegt:

  1. PyQt
  2. Web-basiert ( hier für einen Überblick über Web-Frameworks für Python)

Die Vorteile für PyQt aus unserer Sicht:

  • Vorherige C ++ Erfahrung mit Qt , von der wir wussten, dass Qt für die Aufgabe geeignet ist.
  • Alle notwendigen Werkzeuge enthalten.
  • Einfach, reiche Klienten zu entwickeln.

Wir haben uns jedoch gegen PyQt und für eine webbasierte Lösung entschieden. Gründe waren:

  • Die Anforderungen an das Frontend waren bescheiden und in einem Browser einfach zu erfüllen (meist Berichterstattung, einige Formulare zur Eingabe von Daten oder zum Ausführen von Funktionen).
  • Bereitstellung der Anwendung (und neuer Versionen, Fehlerkorrekturen, etc.) ist viel einfacher, da alles nur auf dem Server in einer kontrollierten Umgebung passiert.
  • Zugriffskontrolle / Authentifizierung / Rechte ist "kostenlos", da es Teil des Servers (in unserem Fall Apache mit Active Directory Authentification) und des Browsers ist, der für uns wichtig ist.
  • Die Anwendung benötigte sowieso eine Serververbindung und musste auf der Clientseite nichts speichern.

Auf den Punkt gebracht : Funktionsreiche Front-Ends mit vielen Funktionen in einer kontrollierten Implementierungsumgebung sind wahrscheinlich einfacher mit Qt zu implementieren. Für unsere leichten Frontends erschien uns eine serverbasierte Lösung besser.

Welches Web-Framework?

Nachdem wir uns für eine Technologie entschieden hatten, mussten wir uns für ein Framework entscheiden. Wir haben ein wenig recherchiert und zwei Alternativen im Detail betrachtet:

  1. Django
  2. Ein Stapel von Software bestehend aus CherryPy als Dispatcher (um HTTP-Anfragen an die Funktionalität und alle damit verbundenen Dinge anzupassen), Mako als Templating-Bibliothek, um Webseiten zu generieren, SQLAlchemy als ORM und jQuery für die clientseitige Funktionalität.

Wir haben die beiden Alternativen bewertet und haben uns am Ende für den zweiten entschieden. Die Entscheidung wurde von unseren wirklich "leichten" Front-End-Anforderungen (viele sehr kleine Anwendungen) bestimmt. Ein Stapel Software - die wir nach Bedarf mischen und anpassen können - erschien uns besser. Wir können SQLAlchemy in Situationen wiederverwenden, in denen wir kein Web-Front-End benötigen, wir können CherryPy einfach ohne Templating-Bibliothek und ORM verwenden und so weiter. In vielen anderen Fällen würde ich jedoch Django über diesen Stapel wählen.

Zusammenfassend:

  • eine große, komplexe Anwendung - & gt; PyQt
  • eine Reihe von relativ ähnlichen, direkten Berichten, Formen usw. mit einem Look-and-Feel - & gt; Django
  • eine relativ vielschichtige Menge von Dingen, die sich in Bezug auf Anforderungen und verwendete Technologie oder die Wiederverwendung bestimmter Technologien unter anderen Umständen stark unterscheiden - & gt; Mix aus Technologien nach Bedarf
___ answer1020822 ___

Wie Boudewijn Rempt hier geschrieben hat, "für den einfachsten Weg zu erstellen eine [[NON-web]] Datenbankanwendung, möchten Sie vielleicht einen Blick auf PyQt "werfen. Er hat das vor 6 Jahren geschrieben, aber ich denke, dass es auch heute vollkommen stimmt. Das Modul QtSql von pyqt4 unterstützt insbesondere MySQL, PostgreSQL und einige andere Datenbanken.

>     
___ antwort1021065 ___

Wenn Ihre Anwendung zukünftig sowohl auf dem Desktop als auch im Web ausgeführt werden soll, können Sie eine webbasierte Anwendung mit einem verteilbaren Server erstellen. Solche Dinge sind mit Python sowohl auf triviale Weise als auch in leistungsfähigeren wie Twisted ziemlich einfach zu machen.

Wenn Desktop nur deine Richtung ist, dann, wie Alex gesagt hat - geh für PyQt. Es ist sehr einfach zu bedienen und bietet sehr leistungsfähige GUI-Funktionen mit vielseitigen DB-Bindungen.

Was die DB betrifft - welche sind Sie gewohnt? Wenn Sie beispielsweise ein MySQL-Guru sind, sollten Sie zuerst die MySQL-Bindungen von Python überprüfen. Für ein ORM versuchen Sie definitiv SQLAlchemy.

Vielleicht können mehr Details in der Frage helfen, eine umfassendere Antwort zu geben.

Weitere Details (für Ihren Kommentar):

Wenn PostgreSQL Ihre Richtung ist, hat Python PyGreSQL als bindend. Es ist Open-Source, wie Python selbst, also sollten Sie keine Probleme mit kostenlosen Anwendungen für den Benutzer haben. Python ist die richtige Wahl, denke ich. Beachten Sie, dass viele leistungsstarke Websites Python ausführen (YouTube, Reddit, sogar Google für einige Anwendungen). Python wird auch in mehreren hochvolumigen Anwendungen wie den Quellcodeverwaltungssystemen Mercurial und Bazaar und dem Mailinglisten-Manager mailman verwendet.

    
___ answer1021195 ___

nur zur Info, für PyQT, das Buch hat ein Kapitel 15 mit Datenbanken, Es sieht gut aus. und das Buch hat etwas mit Daten und Ansicht usw. Ich habe es gelesen und ich denke, es lohnt sich Ihre Zeit:)

    
___ answer48706994 ___

Da mir keines der verfügbaren Frameworks gefallen hat, habe ich beschlossen, selbst etwas zu schreiben. Vielleicht möchtest du Pylax ausprobieren. Es ist in GTK integriert und verwendet eingebettetes Python für Skripting. Das Backend ist vorläufig SQLite.

    
___ tag123frame ___ Frame bezieht sich auf eine Eigenschaft einer UIView oder einer NSView in Objective-C. Es ist eine 4-Fließkommadarstellung der Position der Ansicht in der übergeordneten Ansicht oder im Fenster. ... Verwenden Sie das Tag [frames] für HTML-Frames (keine Iframes). ___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ qstnhdr ___ Python-Datenbankanwendungs-Framework und -Tools ___ qstntxt ___

Ich habe Geschäftsdatenbankanwendungen wie Finanzen, Inventar und andere Geschäftsanforderungsanwendungen erstellt. Ich plane, zu Python zu wechseln. Was wären die Werkzeuge, um mit dem Besten anzufangen? Ich würde Master, Transaktionsformulare, Verarbeitung (Backend), Berichte und so etwas tun müssen. Die Datenbank wäre postgress oder mysql. Da ich neu bei Python bin, verstehe ich, dass ich neben Python das ORM und auch ein Framework brauche. Meine Anwendung ist keine Website bezogen, aber es könnte auch erforderlich sein, über das Internet zu erfolgen.

Wie wähle ich die Ersteinrichtung von Werkzeugkombinationen?

    
___ answer1020796 ___

Wenn ich du wäre, würde ich mit django anfangen.

    
___
Eli Bendersky 20.06.2009 06:13
quelle
0

nur zur Info, für PyQT, das Buch hat ein Kapitel 15 mit Datenbanken, Es sieht gut aus. und das Buch hat etwas mit Daten und Ansicht usw. Ich habe es gelesen und ich denke, es lohnt sich Ihre Zeit:)

    
sunqiang 20.06.2009 08:02
quelle
0

Da mir keines der verfügbaren Frameworks gefallen hat, habe ich beschlossen, selbst etwas zu schreiben. Vielleicht möchtest du Pylax ausprobieren. Es ist in GTK integriert und verwendet eingebettetes Python für Skripting. Das Backend ist vorläufig SQLite.

    
Thomas F. 09.02.2018 13:28
quelle

Tags und Links