<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # SQLAlchemy 簡介 > 原文: [http://zetcode.com/db/sqlalchemy/intro/](http://zetcode.com/db/sqlalchemy/intro/) 這是 SQLAlchemy 教程。 它涵蓋了它。它涵蓋了 SQLAlchemy SQL 工具包和對象關系映射器的基礎。 在本教程中,我們將使用 PostgreSQL,MySQL 和 SQLite 數據庫。 ## SQLAlchemy SQLAlchemy SQL 工具包和對象關系映射器是一組用于處理數據庫和 Python 的綜合工具。 它提供了一整套知名的企業級持久性模式,旨在實現高效和高性能的數據庫訪問。 SQLAlchemy 和 Django 的 ORM 是 Python 社區中使用最廣泛的兩個對象關系映射工具。 SQLAlchemy 具有三種處理數據庫數據的方式: * 原始 SQL * SQL 表達式語言 * ORM 與許多其他 ORM(對象關系映射)工具不同,SQLAlchemy 允許使用純 SQL 語句。 我們總是可以求助于原始 SQL。 SQL 表達式 API 允許您使用 Python 對象和運算符來構建 SQL 查詢。 表達式 API 是純 SQL 語句的抽象,處理數據庫之間的各種實現差異。 SQLAlchemy 對象關系映射器提供了一種將用戶定義的 Python 類與數據庫表相關聯的方法。 SQLAlchemy ORM 基于 SQL 表達式語言。 ## SQLAlchemy 組件 SQLAlchemy 由幾個組件組成。 引擎是任何 SQLAlchemy 應用的起點。 該引擎是數據庫及其 API 的抽象。 它與連接池和方言組件一起使用,以將 SQL 語句從 SQLAlchemy 傳遞到數據庫。 使用`create_engine()`函數創建引擎。 它可以用于直接與數據庫進行交互,也可以傳遞給會話對象以使用對象關系映射器。 方言是 SQLAlchemy 用于與各種類型的 DBAPI 實現和數據庫進行通信的系統。 所有方言都要求安裝適當的 DBAPI 驅動程序。 SQLAlchemy 具有許多流行數據庫系統的方言,包括 Firebird,Informix,Microsoft SQL Server,MySQL,Oracle,PostgreSQL,SQLite 或 Sybase。 從提供的連接字符串創建方言。 元數據由描述表和其他模式級對象的 Python 對象組成。 可以通過使用諸如表,列或外鍵之類的結構明確命名各種組件及其屬性來表示數據庫元數據。 SQLAlchemy 可以使用稱為反射的過程輕松生成元數據。 在 ORM 內部,持久性操作的主要接口是會話。 會話建立與數據庫的所有對話,并代表我們在其生命周期中已加載或與其關聯的所有對象的容器。 它提供了獲取查詢對象的入口點,該對象使用會話對象的當前數據庫連接將查詢發送到數據庫,將結果行填充到對象中,然后將這些對象存儲在會話中。 ## 裝置 在這里,我們展示了如何在基于 Debian 的 Linux 系統上安裝 SQLAlchemy 和其他必要的包。 ```py $ sudo apt-get install python-pip $ sudo pip install SQLAlchemy ``` 使用`pip` Python 包管理器,我們安裝了 SQLAlchemy。 ```py $ sudo apt-get install python-psycopg2 $ sudo apt-get install python-mysqldb ``` 我們為 PostgreSQL 和 MySQL 安裝了 DBAPI 驅動程序。 SQLAlchemy 取決于這些模塊。 `sqlite`模塊隨 Python 一起分發。 ```py $ sudo apt-get install mysql-server ``` 上面的命令安裝 MySQL 服務器。 有關其他安裝說明,您可以查看 [MySQL Python 教程](/db/mysqlpython/)。 ```py $ sudo apt-get install postgresql ``` 上面的命令安裝 PostgreSQL 服務器。 有關其他說明,您可以查看 [PostgreSQL Python 教程](/db/postgresqlpythontutorial/)。 ```py $ sudo apt-get install sqlite3 ``` 最后,我們安裝`sqlite3`命令行界面。 ## SQLAlchemy 版本 在以下腳本中,我們檢查 SQLAlchemy 的安裝是否成功。 `sqlalchemy_version.py` ```py #!/usr/bin/python # -*- coding: utf-8 -*- import sqlalchemy print sqlalchemy.__version__ ``` 我們打印 SQLAlchemy 的版本。 ```py $ ./version.py 1.0.8 ``` 當前使用的 SQLAlchemy 版本是 1.0.8。 ## 使用的表 下面的 SQL 腳本創建在本教程中使用的表。 ```py sqlite> .read cars.sql ``` 對于 SQLite 數據庫,我們使用`.read`命令讀取 SQL 腳本。 ```py mysql> source cars.sql ``` 對于 MySQL 數據庫,我們使用`source`命令讀取 SQL 腳本。 ```py testdb=> \i cars.sql ``` 對于 PostgreSQL 數據庫,我們使用`\i`命令讀取 SQL 腳本。 `cars.sql` ```py -- SQL for the Cars table BEGIN TRANSACTION; DROP TABLE IF EXISTS Cars; CREATE TABLE Cars(Id INTEGER PRIMARY KEY, Name TEXT, Price INTEGER); INSERT INTO Cars VALUES(1, 'Audi', 52642); INSERT INTO Cars VALUES(2, 'Mercedes', 57127); INSERT INTO Cars VALUES(3, 'Skoda', 9000); INSERT INTO Cars VALUES(4, 'Volvo', 29000); INSERT INTO Cars VALUES(5, 'Bentley', 350000); INSERT INTO Cars VALUES(6, 'Citroen', 21000); INSERT INTO Cars VALUES(7, 'Hummer', 41400); INSERT INTO Cars VALUES(8, 'Volkswagen', 21600); COMMIT; ``` 這是`Cars`表。 `authors_books.sql` ```py -- SQL for the Authors & Books tables BEGIN TRANSACTION; DROP TABLE IF EXISTS Books; DROP TABLE IF EXISTS Authors; CREATE TABLE Authors(AuthorId INTEGER PRIMARY KEY, Name TEXT); INSERT INTO Authors VALUES(1, 'Jane Austen'); INSERT INTO Authors VALUES(2, 'Leo Tolstoy'); INSERT INTO Authors VALUES(3, 'Joseph Heller'); INSERT INTO Authors VALUES(4, 'Charles Dickens'); CREATE TABLE Books(BookId INTEGER PRIMARY KEY, Title TEXT, AuthorId INTEGER, FOREIGN KEY(AuthorId) REFERENCES Authors(AuthorId)); INSERT INTO Books VALUES(1,'Emma',1); INSERT INTO Books VALUES(2,'War and Peace',2); INSERT INTO Books VALUES(3,'Catch XII',3); INSERT INTO Books VALUES(4,'David Copperfield',4); INSERT INTO Books VALUES(5,'Good as Gold',3); INSERT INTO Books VALUES(6,'Anna Karenia',2); COMMIT; ``` 這些是`Authors`和`Books`表。 ## 數據來源 SQLAlchemy 的[文檔](http://docs.sqlalchemy.org/en/rel_1_0/index.html)用于創建本教程。 本章是 SQLAlchemy 工具箱的簡介。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看