rev |
line source |
Hans-G?nter@25242
|
1 SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
|
Hans-G?nter@25242
|
2 gives application developers the full power and flexibility of SQL.
|
Hans-G?nter@25242
|
3 SQLAlchemy provides a full suite of well known enterprise-level
|
Hans-G?nter@25242
|
4 persistence patterns, designed for efficient and high-performing database
|
Hans-G?nter@25242
|
5 access, adapted into a simple and Pythonic domain language.
|
Hans-G?nter@25242
|
6
|
Hans-G?nter@25242
|
7 Major SQLAlchemy features include:
|
Hans-G?nter@25242
|
8
|
Hans-G?nter@25242
|
9 - An industrial strength ORM, built from the core on the identity map,
|
Hans-G?nter@25242
|
10 unit of work, and data mapper patterns.
|
Hans-G?nter@25242
|
11 These patterns allow transparent persistence of objects using a
|
Hans-G?nter@25242
|
12 declarative configuration system. Domain models can be constructed and
|
Hans-G?nter@25242
|
13 manipulated naturally, and changes are synchronized with the current
|
Hans-G?nter@25242
|
14 transaction automatically.
|
Hans-G?nter@25242
|
15 - A relationally-oriented query system, exposing the full range of SQL's
|
Hans-G?nter@25242
|
16 capabilities explicitly, including joins, subqueries, correlation, and
|
Hans-G?nter@25242
|
17 most everything else, in terms of the object model.
|
Hans-G?nter@25242
|
18 Writing queries with the ORM uses the same techniques of relational
|
Hans-G?nter@25242
|
19 composition you use when writing SQL. While you can drop into literal SQL
|
Hans-G?nter@25242
|
20 at any time, it's virtually never needed.
|
Hans-G?nter@25242
|
21 - A comprehensive and flexible system of eager loading for related collections
|
Hans-G?nter@25242
|
22 and objects. Collections are cached within a session, and can be loaded on
|
Hans-G?nter@25242
|
23 individual access, all at once using joins, or by query per collection across
|
Hans-G?nter@25242
|
24 the full result set.
|
Hans-G?nter@25242
|
25 - A Core SQL construction system and DBAPI interaction layer. The SQLAlchemy
|
Hans-G?nter@25242
|
26 Core is separate from the ORM and is a full database abstraction layer in its
|
Hans-G?nter@25242
|
27 own right, and includes an extensible Python-based SQL expression language,
|
Hans-G?nter@25242
|
28 schema metadata, connection pooling, type coercion, and custom types.
|
Hans-G?nter@25242
|
29 - All primary and foreign key constraints are assumed to be composite and
|
Hans-G?nter@25242
|
30 natural. Surrogate integer primary keys are of course still the norm, but
|
Hans-G?nter@25242
|
31 SQLAlchemy never assumes or hardcodes to this model.
|
Hans-G?nter@25242
|
32 - Database introspection and generation. Database schemas can be "reflected"
|
Hans-G?nter@25242
|
33 in one step into Python structures representing database metadata; those
|
Hans-G?nter@25242
|
34 same structures can then generate CREATE statements right back out - all
|
Hans-G?nter@25242
|
35 within the Core, independent of the ORM.
|