Suche Buch über Python und SQL

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.
cajus
User
Beiträge: 8
Registriert: Sonntag 23. November 2008, 18:49

Sonntag 23. November 2008, 18:54

Hi community!


Google books hat mich nicht weitergebracht,deshalb frage ich euch:
Ich suche ein Buch über die Programmiersprache Python für den Webeinsatz,das eine möglichst aktuelle Version behandelt (2.5 oder 2.6).

Die Themen xml in python,multithreading,Objektorientierung und eine Datenbank (am besten MySQL(aufgrund der Verbreitung)) sollten auch behandelt werden.

Es soll sich an python Einsteiger richten.


mfG
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

Sonntag 23. November 2008, 19:00

HI!
Willkommen im Forum!

Bin zwar auch noch nicht so erfahren, jedoch habe ich so gehört von verschiedenen "Bücherdiskussionen" hier im Forum, dass die meisten
Python Bücher nicht so das Wahre sind. Lieber ein paar anständige
(deutsche?) Dokumentionen / Tutorials im Internet durcharbeiten.
Hoffe dich nicht verschreckt zu haben,

MfG Jonas
DasIch
User
Beiträge: 2462
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 23. November 2008, 19:07

Es gibt nich die Lösung, es gibt zig Lösungen.

Jetzt könnte dir jeder seine Lieblingslösung nennen und ein paar Dokus dazu und vielleicht schaffts der Thread auch noch zum Flamewar oder du sagst etwas detailierter was du machen willst, was deine Anforderungen sind und du bekommst brauchbarere Antworten.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Sonntag 23. November 2008, 19:14

Wenn du nichts gegen Englisch hast, kann ich dir "Core Python Programming" empfehlen. Die von dir genannten Themen werden alle behandelt. Was ich besonders gut finde, sind die Vergleiche. Es wird z.B. ein Dialog mit 4 verschiedenen Toolkits verglichen. An Datenbanken wird man auch reichlich bedient:
  • MySQL, SQLite, PostgreSQL
  • eine Datenbankanwendung, die einmal SQL-Alchemy und ein anderes Mal SQLObject benutzt
Beim Thema Multithreading wird erklärt, warum man auf das Modul "thread" verzichten sollte und lieber zu "threading" greifen sollte. OOP ist das längste Kapitel in diesem Buch (114 Seiten); es wird erklärt, warum man auf __del__ verzichten soll, was die neuen Features von New-Style-Klassen sind, wie man von Typen erben kann (Delegation) und vieles mehr. Beispiele zum Parsen von XML-Dateien wirst du allerdings nicht finden; mit dem Wissen, das du aus dem Buch hast, wird es aber nicht schwer sein, aus der Doku von ElementTree schlau zu werden.

Und hier noch eine Buchkritik, die gleich am Anfang des Buches zu finden ist:
David Mertz, Ph.D., IBM Developer Works® hat geschrieben: [...] I think this is the best book currently available for learning Python. I would recommend Chun's book over Learning Python (O'Reilly), Programming Python (O'Reilly) or The Quick Python Book (Manning).
@DasIch: uups, zu spät :lol: hab deinen Post vorm Schreiben noch nicht gelesen.
Zuletzt geändert von derdon am Sonntag 23. November 2008, 19:16, insgesamt 2-mal geändert.
cajus
User
Beiträge: 8
Registriert: Sonntag 23. November 2008, 18:49

Sonntag 23. November 2008, 19:14

@ dasich
Wie meinst du das?

Ich habe doch geschrieben,was in dem Buch enthalten sein soll.

Oder möchtest du wissen,welche Erfahrungeb ich habe?Ich kann etwas php und c,SQL kann ich gar nicht.


mfG

edit @ vorposter:Ich bin erst zwölf Jahre alt,die drei Jahre Schulenglisch reichen glaube ich noch nicht.
DasIch
User
Beiträge: 2462
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 23. November 2008, 19:26

Frameworks: Template Sprachen: ORMs: Das sind die die mir spontan eingefallen sind und jeder hier könnte dir jetzt eine Kombination dieser librarys vorschlagen und du wüsstest danach genauso viel wie vorher. Such einfach mal nach Python Frameworks, spiel mit jedem rum schau dir an was dir am besten gefällt und frag dann wenn nötig nach einem Buch/Doku/Tut dafür.

Allerdings solltest du dich zuallerst damit anfreunden deine Englisch Kenntnisse ernsthaft nutzen zu müssen.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 23. November 2008, 20:03

Hallo cajus, willkommen im Forum,
cajus hat geschrieben:Oder möchtest du wissen,welche Erfahrungeb ich habe?Ich kann etwas php und c,SQL kann ich gar nicht.
SQL brauchst du gar nicht, weil man in Python sowieso eher ORMs verwendet, das was du aus PHP weißt vergisst du am besten wieder. Lediglich die C-Kenntnisse könnten in irgendwieweit nützlich sein :)
cajus hat geschrieben:edit @ vorposter:Ich bin erst zwölf Jahre alt,die drei Jahre Schulenglisch reichen glaube ich noch nicht.
Quatsch. Wenn man sich nichts vornimmt, dann lernt man nichts. Gerade im Bereich der Programmierung ist Englisch viel wichtiger als jede Programmiersprache die du lernen kannst. Und Computer-Dokumentation ist in Englisch auch nur halb so wild, denn viele dir bereits bekannte Begriffe sind sowieso Englisch, noch dazu sind das Sachbücher und keine Belletristik, wo man die Feinheiten des Wortwitzes erst mit zunehmender Sprachkenntnis zu schätzen weiß. Ich habe viel Englisch eben durch das Lesen von Englischer Dokumentation gelernt und mit 12 Jahren geht das sicher viel einfacher als zu irgendeinemspäteren Zeitpunkt.

Wenn du unbedingt Web-Sachen machen willst (wovon ich um ehrlich zu sein als erstes Projekt abreaten würde, denn es ist sehr, sehr unfassend) dann solltest du dir ein Web-Framework zulegen, für den Anfang wohl am besten Django und dort deine Sachen zu implementieren versuchen. Wenn es dir dann an einigen Stellen an Wissen fehlt, dann liest/lernst das eben nach. Alles von Anfang an zu lernen ist ein großer Zeitaufwand und mangels sofort sichtbarer Resultate oftmals eher frustrierend. Ich weiß wovon ich spreche.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Sonntag 23. November 2008, 23:16

Leonidas hat geschrieben:SQL brauchst du gar nicht, weil man in Python sowieso eher ORMs verwendet
Hallo Leonidas!

Ich bin anderer Meinung. SQL ist in meinen Augen einfacher und kontrollierbarer als der Umgang mit ORMs. ORMs verlieren, meiner Meinung nach, an Nutzbarkeit sobald die Anforderungen komplexer werden. Ich lese gerade wieder ein Buch, in dem etwas auf die Unterschiede zwischen drei ORMs eingegangen wird. Es wird erklärt, wir man einen Foto-Blog mit einem ORM programmieren kann. Es vergeht keine Stunde, ohne dass ich mir denke, dass man die Aufgabe mit reinem SQL schöner und ressourcenschonender (schneller) programmieren hätte können. Und so geht es mir immer öfter, wenn ich Code durchlese, der SQLAlchemy, SQLObject oder Dejavu einsetzt. Die anderen ORMs kenne ich nicht. Bei SQLObjekt fällt mir auf, dass z.B. versucht wird, SQL nachzubilden. Da frage ich mich aber, warum auf das mächtige SQL verzichten, wenn versucht wird, es krampfhaft nachzubilden. Nur damit man ohne große Umstellung verschiedene Datenbanksysteme verwenden kann? Das muss ich nicht verstehen, oder?

SQL ist so einfach, dass es von jedem schnell erlernt werden kann. Weiters gibt es hunderte Tools, mit denen man maßgeschneiderte SQL-Anweisungen/-Abfragen erstellt, die man direkt in sein Python-Programm integrieren kann. Per Mausklick, sozusagen. So etwas gibt es für ORMs nicht.

Bevor ich mich da zu sehr reinsteigere (so tragisch ist das Thema nun doch wieder nicht), lasse ich es und wünsche allen eine gute Nacht. :D

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Montag 24. November 2008, 14:19

Zufällig habe ich kürzlich bei Thalia in der Technikecke gestöbert und dabei "Web Applications with Python" gefunden und überrascht näher angesehen. Dort wird aber primär TurboGears behandelt, das IMHO definitiv keine gute Basis für die Zukunft (von wem oder was auch immer) [mehr] ist.

Als Einsteiger rate ich dir auch zum aktuellen und populären Komplettpaket Django. Dennoch verbirgt sich dahinter weit mehr, als du dir vorstellen kannst: Datenbanken, Modellierung, Template Engines, URL-Routing, HTTP, XHTML, CSS, JavaScript, AJAX plus die Pakete, die dieses umsetzen, sind *sehr* viele, teilweise *sehr* umfangreiche Bereiche. Ein einfacher, kombinierter Startpunkt ist gut, aber das ist nur der Anfang.

gerold: Ich habe viele Jahre mit SQL gearbeitet und nutze es heute noch, um sowohl während der Entwicklung als auch im Produktionsbetrieb Daten in meinen Tabellen herumzuschubsen. Für meine Anwendungen selbst bin ich nach durchwachsenen Erfahrungen mit SQLObject allerdings von SQLAlchemy und seinem Query-Ansatz* schwer begeistert.

Dass ich mit einem ORM nur eine Sprache, Python, konsequent verwenden kann, gefällt mir sehr gut. SQL in Stringform einzubringen, wie es z. B. in der PHP-Welt noch an der Tagesordnung sein dürfte (wo allerdings auch fleißig andere Dinge wie PHP-Code und HTML gemischt werden) hat mich schon immer gestört. Das geht aber nur mit einem wirklich guten ORM, zugegeben. Ebenso empfinde ich meine SQL-Kenntnisse als sehr hilfreich und wichtig, um zu verstehen, was vor sich geht, was es zu erreichen gilt und wie man optimieren kann. Mit SQLAlchemy bin ich in der Lage, effiziente, kombinierte SQL-Queries in schönem Python in sehr kurzer Zeit zu erzeugen.

Der absolute Killerpunkt für mich ist jedoch der, dass SQL nur Tupel (oder, wenn man mit DB-Adapter-spezifischen Cursorn arbeitet, immerhin Dictionaries) ausspuckt, die Zahlen und Strings enthalten. Ein ORM macht es mir möglich, direkt mit Klasseninstanzen zu arbeiten und komfortabel mit Datumsobjekten, Kindobjekten, Adjazenzlisten und mehr zu hantieren. Bis dahin sehe ich ein, dass SQL mehr oder weniger genau so gut funktioniert, aber genau der Übergang in die Welt der Python-Objekte und deren Relation ist der Punkt, an dem SQL zurück bleibt und es umständlich wird.

Davon ab gefällt mir die Möglichkeit, das Schema im Code - gemeinsam mit zusätzlichen Properties und Methoden - zu definieren, um daraus das Schema generieren zu können; egal ob ich das gerade für MySQL oder PostgreSQL oder SQLite einsetzen möchte (und sei es nur für Unittests).

Weder werfe ich dir vor, dass du bei SQL bleibst, noch will ich dich konvertieren. Es geht aber auch anders, wenn man vernünftige Mittel hat - ich denke, du wärst zumindest angenehm überrascht.

*) Die Präsentation Ingredients for Building a DSL in Python (Episode I) geht sehr schön darauf ein, wie SQLAlchemy mit generativen Queries (War das der Ausdruck?) eine DSL bildet, ähnlich wie das was jQuery + Co. machen, um hier SQL sehr ähnliche Abfragen zu gestalten.
cajus
User
Beiträge: 8
Registriert: Sonntag 23. November 2008, 18:49

Montag 24. November 2008, 14:43

Hat jemand mit diesem Buch Erffahrung?http://www.amazon.de/gp/product/3836211106/
Ich möchte erst einmal Python ohne Framework lernen und kleine Programme erstellen.
Weiß jemand über welche Version das Buch handelt (ich hoffe ich war nicht zu blöd und habe es übersehen)?
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Montag 24. November 2008, 14:52

Such mal im Forum nach galileo openbook o.ä. Ist das unbeliebteste Buch hier.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Montag 24. November 2008, 14:52

Hi, das gibts auch als Open Book, allerdings sind einige Kapitel doch recht fragwürdig. Deshalb ist das mit Vorsicht zu genießen
BlackJack

Montag 24. November 2008, 15:20

@gerold: Deine Argumente SQL oder ORM klingen so ein bisschen nach C vs. Python. Die Resourcen, die "verschwendet" werden, gibt man für eine einfacherere API aus, die einem Arbeit abnimmt. Dafür hat man nicht mehr die volle Kontrolle.

Wobei ich SQL auch nicht unbendingt als leicht bezeichnen würde. Das ist so ähnlich wie bei Python -- ``print`` ist einfach, `itertools` braucht 'ne Weile bis man's beherrscht. So ähnlich ist das bei SQL -- ein simples ``SELECT`` ist einfach, aber wenn verschiedene ``JOIN``\s, ``GROUP BY`` und ``HAVING`` dazu kommen, kann auch schon mal der Kopf rauchen.

Was mich persönlich an SQL am meisten stört, sind die grossen Unterschiede bei verschiedenen DBMS schon bei den einfachsten Dingen wie Namen von Datentypen oder wie man so etwas wie ein automatisches ID-Feld deklariert.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 24. November 2008, 16:23

cajus hat geschrieben:Ich möchte erst einmal Python ohne Framework lernen und kleine Programme erstellen.
Web ohne Framework? Schlechte Idee, ehrlich. Vor allem da du anfangs nicht immer weißt was wie geht, da bietet dir ein Framework ein Grundgerüst und einige Best Practices nach denen du dich richten kannst.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
cajus
User
Beiträge: 8
Registriert: Sonntag 23. November 2008, 18:49

Montag 24. November 2008, 18:21

Ich meinte mit Programm ein offline-Programm,wie langwierig es ist,ein web-script in nicht nur dafür entworfenen Sprachen zu erstellen,kenne ich aus c.

Z.B. muss man dann Funktionen wie die php-funktion htmlspecialchars() selber programmieren,dass ist zu umständlich.


Oder ist es besser,auch offline ein Framework zu nutzen?
Antworten