
SQLAlchemy
Sign in to saveSQL-Toolkit für die Programmiersprache Python
Key facts
- Software.name
- SQLAlchemy
- Software.logo
- SQLAlchemy.svg
- Software.logo_caption
- Abbreviated SQLAlchemy Logo
- Software.author
- Michael Bayer
- Software.programming language
- Python
- Software.operating system
- Cross-platform
- Software.genre
- Object-relational mapping
- Software.license
- MIT License
via Wikipedia infobox
Source code
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. SQLAlchemy provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language. SQL databases behave less and less like object collections the more size and performance start to matter; object collections behave less and less like tables and rows the more abstraction starts to matter. SQLAlchemy aims to accommodate both of these principles. An ORM doesn't need to hide the "R". A relational database provides rich, set-based functionality that should be fully exposed. SQLAlchemy's ORM provides an open-ended set of patterns that allow a developer to construct a custom mediation layer between a domain model and a relational schema, turning the so-called "object relational impedance" issue into a distant memory. The developer, in all cases, makes all decisions regarding the design, structure, and naming conventions of both the object model as well as the relational schema. SQLAlchemy only provides the means to automate the execution of these decisions. With SQLAlchemy, there's no such thing as "the ORM generated a bad query" - you retain full control over the structure of queries, including how joins are organized, how subqueries and correlation is used, what columns are requested. Everything SQLAlchemy does is ultimately the result of a developer-initiated decision. Don't use an ORM if the problem doesn't need one. SQLAlchemy consists of a Core and separate ORM component. The Core offers a full SQL expression language that allows Pythonic construction of SQL constructs that render directly to SQL strings for a target database, returning result sets that are essentially enhanced DBAPI cursors. Transactions should be the norm. With SQLAlchemy's ORM, nothing goes to permanent storage until commit() is called. SQLAlchemy encourages applications to create a consistent means of delineating the start and end of a series of operations. Never render a literal value in a SQL statement. Bound parameters are used to the greatest degree possible, allowing query optimizers to cache query plans effectively and making SQL injection attacks a non-issue. Above all, SQLAlchemy places great emphasis on polite, thoughtful, and constructive communication between users and developers. Please see our current Code of Conduct at Code of Conduct .
Excerpt from the source-code README · 5,717 chars · not written by Vinony
Wikidata facts
- Official website
- www.sqlalchemy.org
Show 3 more facts
- source code repository URL
- github.com/sqlalchemy/sqlalchemy
- software version identifier
- 2.0.49
- Stack Exchange tag
- stackoverflow.com/tags/sqlalchemy
via Wikidata · CC0
Article · Deutsch
SQLAlchemy ist ein Open-Source-SQL-Toolkit und ORM-Framework für die Programmiersprache Python mit dem Ziel, den Object-relational impedance mismatch in der Art von Javas Hibernate zu umschiffen. SQLAlchemy wurde im Februar 2006 veröffentlicht. SQLAlchemy bietet eine Reihe von Entwurfsmustern zur effizienten Persistenzhaltung von Daten in einer relationalen Datenbank. Die Motivation hinter SQLAlchemy ist darin begründet, dass SQL-Datenbanken umso weniger Objektsammlungen ähneln, je umfangreicher der Datenbestand und je mehr Leistung gefragt ist, während Objektsammlungen sich weniger wie Relationen und Tupel verhalten, je mehr zwischen Datenrepräsentation und Miniwelt abstrahiert wird. Daher verfolgt SQLAlchemy primär ein Data Mapper-Muster anstelle eines sogenannten Active Record-Musters. Optionale Plugins ermöglichen weitere Muster, z. B. mit Elixir eine deklarative Syntax.
Abstract from DBpedia / Wikipedia · CC BY-SA