Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Wir sind überall von Daten umgeben, und die Möglichkeit, diese Daten zu speichern, zu aktualisieren und Berichte zu erstellen, ist für jede Anwendung, die du entwickelst, entscheidend. Egal, ob du für das Web, den Desktop oder andere Anwendungen entwickelst, du brauchst einen schnellen und sicheren Zugang zu den Daten. Relationale Datenbanken sind nach wie vor einer der gängigsten Orte, um diese Daten zu speichern.
SQL ist eine mächtige Sprache zur Abfrage und Bearbeitung von Daten in einer Datenbank, aber manchmal ist es schwierig, sie in den Rest deiner Anwendung zu integrieren. Vielleicht hast du mit Hilfe von String-Manipulationen Abfragen erstellt, die über eine ODBC-Schnittstelle laufen, oder als Python-Programmierer eine DB-API verwendet. Das sind zwar effektive Methoden, um mit Daten umzugehen, aber sie können Sicherheit und Datenbankänderungen sehr schwierig machen.
In diesem Buch geht es um eine sehr leistungsfähige und flexible Python-Bibliothek namens SQLAlchemy, die die Lücke zwischen relationalen Datenbanken und traditioneller Programmierung schließt. SQLAlchemy ermöglicht es dir zwar, deine Abfragen in SQL auszuführen, fördert aber durch einen "pythonischen" und freundlichen Ansatz für Datenbankabfragen und -aktualisierungen das Denken auf höherer Ebene. SQLAlchemy liefert dir die Werkzeuge, mit denen du die Klassen und Objekte deiner Anwendung einmalig auf Datenbanktabellen abbilden und dann "vergessen" kannst, oder du kannst immer wieder zu deinem Modell zurückkehren, um die Leistung zu optimieren.
SQLAlchemy ist mächtig und flexibel, aber es kann auch ein wenig einschüchternd sein. Die SQLAlchemy-Tutorials zeigen nur einen Bruchteil dessen, was in dieser ausgezeichneten Bibliothek zur Verfügung steht, und obwohl die Online-Dokumentation sehr umfangreich ist, eignet sie sich oft besser als Nachschlagewerk, als dass man die Bibliothek von Grund auf lernen könnte. Dieses Buch ist als Lernhilfe und praktisches Nachschlagewerk gedacht, wenn du dich im "Implementierungsmodus" befindest und schnell eine Antwort brauchst.
Dieses Buch konzentriert sich auf die Version 1.0 von SQLAlchemy, aber vieles von dem, was wir behandeln werden, gab es auch schon für viele frühere Versionen. Mit kleinen Anpassungen funktioniert es natürlich auch ab 0.8 und das meiste ab 0.5.
Dieses Buch ist in drei große Teile gegliedert: SQLAlchemy Core, SQLAlchemy ORM und ein Alembic-Teil. Die ersten beiden Teile sind so angelegt, dass sie sich so gut wie möglich widerspiegeln. Wir haben darauf geachtet, dass in jedem Teil die gleichen Beispiele vorkommen, damit du die beiden wichtigsten Arten der Nutzung von SQLAlchemy vergleichen und gegenüberstellen kannst. Das Buch ist außerdem so geschrieben, dass du sowohl den SQLAlchemy Core- als auch den ORM-Teil lesen kannst oder nur den Teil, der gerade deinen Bedürfnissen entspricht.
Für wen dieses Buch ist
Dieses Buch richtet sich an alle, die mehr darüber erfahren wollen, wie sie relationale Datenbanken in ihren Python-Programmen nutzen können, oder die von SQLAlchemy gehört haben und mehr darüber wissen wollen. Um den größtmöglichen Nutzen aus diesem Buch zu ziehen, sollte der Leser/die Leserin über fortgeschrittene Python-Kenntnisse und zumindest mäßige Erfahrung mit SQL-Datenbanken verfügen. Wir haben uns bemüht, das Material so zugänglich wie möglich zu gestalten. Wenn du jedoch gerade erst mit Python anfängst, empfehlen wir dir, das Buch "Introducing Python" von Bill Lubanovic zu lesen oder die "Introduction to Python"- Videos von Jessica McKellar anzuschauen, da beide fantastische Ressourcen sind. Wenn du dich noch nicht mit SQL und Datenbanken auskennst, solltest du dir "Learning SQL" von Alan Beaulieu ansehen. Damit kannst du alle Lücken schließen, während du dieses Buch durcharbeitest.
Wie man die Beispiele verwendet
Die meisten Beispiele in diesem Buch sind so aufgebaut, dass sie in einer Read-Eval-Print-Schleife (REPL) ausgeführt werden. Du kannst die integrierte Python-REPL verwenden, indem du python
in die Eingabeaufforderung eingibst. Die Beispiele funktionieren auch gut in einem ipython notebook. An einigen Stellen des Buches, z. B. in Kapitel 4, wirst du angewiesen, Dateien anstelle einer REPL zu erstellen und zu verwenden. Der mitgelieferte Beispielcode wird für die meisten Beispiele in IPython-Notizbüchern zur Verfügung gestellt und für die Kapitel, in denen er verwendet werden soll, in Python-Dateien. Mehr über IPython erfährst du auf der IPython-Website.
Annahmen, die dieses Buch macht
Dieses Buch setzt grundlegende Kenntnisse der Syntax und Semantik von Python voraus, insbesondere der Versionen 2.7 und höher. Insbesondere sollte der Leser mit der Iteration und der Arbeit mit Objekten in Python vertraut sein, da diese im gesamten Buch häufig verwendet werden. Der zweite Teil des Buches befasst sich ausführlich mit der objektorientierten Programmierung und dem SQLAlchemy ORM. Der Leser sollte außerdem grundlegende SQL-Syntax und Relationstheorie kennen, da dieses Buch voraussetzt, dass er mit den SQL-Konzepten zur Definition von Schemata und Tabellen sowie der Erstellung von SELECT
, INSERT
, UPDATE
und DELETE
Anweisungen vertraut ist.
In diesem Buch verwendete Konventionen
Die folgenden typografischen Konventionen werden in diesem Buch verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Zusätzliches Material von (Code-Beispiele, Übungen usw.) kannst du unter folgendem Link herunterladen: https://github.com/oreillymedia/essential-sqlalchemy-2e.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.
Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Essential SQLAlchemy, Second Edition, von Jason Myers und Rick Copeland (O'Reilly). Copyright 2016 Jason Myers und Rick Copeland, 978-1-4919-1646-9."
Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
Safari® Bücher Online
Hinweis
Safari Books Online ist eine digitale On-Demand-Bibliothek, die Experteninhalte in Buch- und Videoform von weltweit führenden Autoren aus den Bereichen Technologie und Wirtschaft liefert.
Technologieexperten, Softwareentwickler, Webdesigner sowie Geschäftsleute und Kreative nutzen Safari Books Online als Hauptressource für Recherchen, Problemlösungen, Lernen und Zertifizierungsschulungen.
Safari Books Online bietet eine Reihe von Plänen und Preisen für Unternehmen, Behörden, Bildungseinrichtungen und Privatpersonen.
Mitglieder haben Zugang zu Tausenden von Büchern, Schulungsvideos und Manuskripten von Verlagen wie O'Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology und Hunderten mehr in einer vollständig durchsuchbaren Datenbank. Wenn du mehr über Safari Books Online erfahren möchtest, besuche uns bitte online.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter dem folgenden Link aufrufen: http://oreil.ly/1lwEdiw.
Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an bookquestions@oreilly.com.
Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://www.youtube.com/oreillymedia
Danksagungen
Vielen Dank an Patrick Altman, Eric Floehr und Alex Grönholm für ihr kritisches Feedback vor der Veröffentlichung. Ohne sie hätte dieses Buch zweifellos viele technische Probleme gehabt und wäre viel schwieriger zu lesen gewesen.
Mein Dank geht an Mike Bayer, dessen Empfehlung dazu führte, dass dieses Buch überhaupt erst geschrieben wurde. Ich bin Meghan Blanchette und Dawn Schanafelt dankbar, dass sie mich dazu gedrängt haben, das Buch fertigzustellen, mich zu einer besseren Autorin gemacht haben und mich ertragen haben. Ich möchte auch Brian Dailey dafür danken, dass er einige der schwierigsten Stellen des Buches gelesen hat, mir tolles Feedback gegeben hat und mit mir darüber gelacht hat.
Ich möchte mich bei der Entwicklungsgemeinschaft in Nashville für ihre Unterstützung bedanken, insbesondere bei Cal Evans, Jacques Woodcock, Luke Stokes und William Golden.
Danke an meinen Arbeitgeber, Cisco Systems, der mir die Zeit und die Unterstützung für die Fertigstellung des Buches gegeben hat. Danke auch an Justin von Mechanical Keyboards, der mich mit allem versorgt hat, was ich brauche, um meine Finger beim Tippen zu halten.
Vor allem möchte ich meiner Frau dafür danken, dass sie es erträgt, wenn ich mir selbst vorlese, wenn ich zum Schreiben verschwinde, und dass sie mich immer unterstützt und mir Hoffnung gibt. Ich liebe dich, Denise.
Get Essential SQLAlchemy, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.