From 6d4186999f780c34e310b4fa3f6c2e34e223c443 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 20 Sep 2009 16:40:02 +0000 Subject: [PATCH] a picture --- doc/build/intro.rst | 21 +++++---------------- doc/build/sqla_arch_small.jpg | Bin 0 -> 41087 bytes doc/build/static/docs.css | 5 +++++ 3 files changed, 10 insertions(+), 16 deletions(-) create mode 100644 doc/build/sqla_arch_small.jpg diff --git a/doc/build/intro.rst b/doc/build/intro.rst index 5e3b945591..7e02074074 100644 --- a/doc/build/intro.rst +++ b/doc/build/intro.rst @@ -8,22 +8,11 @@ Overview ======== -The SQLAlchemy SQL Toolkit and Object Relational Mapper is a comprehensive set of tools for working with databases and Python. It has several distinct areas of functionality which can be used individually or combined together. Its major API components, all public-facing, are illustrated below:: - - +-----------------------------------------------------------+ - | Object Relational Mapper (ORM) | - +-----------------------------------------------------------+ - +---------+ +------------------------------------+ +--------+ - | | | SQL Expression Language | | | - | | +------------------------------------+ | | - | +-----------------------+ +--------------+ | - | Dialect/Execution | | Schema Management | - +---------------------------------+ +-----------------------+ - +----------------------+ +----------------------------------+ - | Connection Pooling | | Types | - +----------------------+ +----------------------------------+ - -Above, the two most significant front-facing portions of SQLAlchemy are the **Object Relational Mapper** and the **SQL Expression Language**. These are two separate toolkits, one building off the other. SQL Expressions can be used independently of the ORM. When using the ORM, the SQL Expression language is used to establish object-relational configurations as well as in querying. +The SQLAlchemy SQL Toolkit and Object Relational Mapper is a comprehensive set of tools for working with databases and Python. It has several distinct areas of functionality which can be used individually or combined together. Its major components are illustrated below. The arrows represent the general dependencies of components: + +.. image:: sqla_arch_small.jpg + +Above, the two most significant front-facing portions of SQLAlchemy are the **Object Relational Mapper** and the **SQL Expression Language**. SQL Expressions can be used independently of the ORM. When using the ORM, the SQL Expression language remains part of the public facing API as it is used within object-relational configurations and queries. Tutorials ========= diff --git a/doc/build/sqla_arch_small.jpg b/doc/build/sqla_arch_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5fdd20557c58b348e77b11a763ac6fcb82db1325 GIT binary patch literal 41087 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 Y_pVjA@Og=Fum2ZervLZZxH-fB4Ld8SQUCw| literal 0 Hc-jL100001 diff --git a/doc/build/static/docs.css b/doc/build/static/docs.css index 810c51410f..dbc5bae62c 100644 --- a/doc/build/static/docs.css +++ b/doc/build/static/docs.css @@ -19,6 +19,11 @@ p { margin-bottom:10px; } +img { + display:block; + margin: 0 auto; +} + a {font-weight:normal; text-decoration:underline;} a:link {color:#0000FF;} a:visited {color:#0000FF;} -- 2.47.3