<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Read Sean

    Read me, read Sean.
    posts - 508, comments - 655, trackbacks - 9, articles - 4

    [Pylons] SQLAlchemy起步 - I. Engine API

    Posted on 2009-01-26 20:46 laogao 閱讀(2500) 評論(1)  編輯  收藏 所屬分類: On Python

    ORM是個大話題,大到可能好幾本書都說不完。SQLAlchemy,別看它剛出到0.5.2,已然是Python世界ORM的事實標準,受到眾多開發者和無數框架的青睞。

    如果之前沒有或很少接觸SQLAlchemy,那么學習Pylons可能有相當一部分時間都會花在SQLAlchemy上。通常,人們選擇Pylons或者TurboGears而不是Django,SQLAlchemy在這些決定的背后有著很重的分量。作為Pylons學習筆記的一部分,接下來我將分4篇隨筆介紹SQLAlchemy,分別是Engine API、Schema Management (MetaData/Types)、SQL Expression Language和Object Relational Mapper。此文為第1篇,重點介紹Engine API。

    類似Java的JDBC,Python也有一個類似的數據庫訪問接口規范,那就是DB-API(目前是2.0),不同的常見RDBMS都有符合DB-API標準的Python庫,比如PostgreSQL有psycopg2,Oracle有cx_Oracle等。有了這個基礎,SQLAlchemy也就得以方便的通過DB-API連接不同的數據庫。

    以PostgreSQL為例,通過SQLAlchemy的Engine API訪問數據庫的代碼可以這樣來寫:
    ?1?from?sqlalchemy.engine?import?create_engine
    ?2?
    ?3?engine?=?create_engine('postgres://user:pass@localhost/testdb')
    ?4?connection?=?engine.connect()
    ?5?connection.execute(
    ?6?????"""
    ?7?????CREATE?TABLE?book
    ?8?????(
    ?9?????? id?serial?NOT?NULL,
    10??????title?character?varying(30)?NOT?NULL,
    11??????CONSTRAINT pk_book PRIMARY?KEY?(id)
    12?????);
    13??? """
    14?)
    15?connection.execute(
    16?????"""
    17?????INSERT?INTO?book?(title)?VALUES?(%s);
    18?????""",
    19?????"The?Art?of?UNIX?Programming"
    20?)
    21?rs?=?connection.execute("SELECT title FROM book")
    22?for?row?in?rs:
    23?????print?"Book?Title:?",?row['title']
    24?connection.close()

    基本步驟就是create_engine、connect、execute和close,沒有很特別的地方,不過SQLAlchemy的Engine API,并不是簡單的DBAPI調用,而是包裝了其他內容,如數據庫連接池,我們可以在create_engine的時候指定連接池參數和其他額外配置,類似這樣:
    engine?=?create_engine('postgres://user:pass@localhost/testdb',?pool_size=10, convert_unicode=True)

    類似Spring的JdbcTemplate,更多的時候,統一使用SQLAlchemy的Engine API而不是DB-API能給我們帶來更大的靈活性,通常也更方便、更安全。

    Feedback

    # re: [Pylons] SQLAlchemy起步 - I. Engine API[未登錄]  回復  更多評論   

    2011-02-27 14:26 by 小白
    謝謝了,
    主站蜘蛛池模板: 日韩版码免费福利视频| 日韩电影免费在线观看网站| 91短视频免费在线观看| 亚洲国产精品高清久久久| 91视频精品全国免费观看| 亚洲色精品88色婷婷七月丁香| 9久热精品免费观看视频| 国产精品亚洲w码日韩中文| 一级毛片完整版免费播放一区| 亚洲国产精品无码久久青草| 日本精品久久久久久久久免费| 亚洲国产精品自在拍在线播放| 未满十八私人高清免费影院| 亚洲午夜成人精品电影在线观看| 一区二区免费在线观看| 亚洲精品国产精品国自产观看| 72pao国产成视频永久免费| 国产综合精品久久亚洲| 久久99免费视频| 亚洲午夜国产精品无卡| 免费电视剧在线观看| 亚洲爆乳大丰满无码专区| 国产免费观看a大片的网站| 免费人妻精品一区二区三区| 综合亚洲伊人午夜网| 美丽姑娘免费观看在线观看中文版 | 有色视频在线观看免费高清在线直播 | 亚洲国产另类久久久精品小说| 久久免费的精品国产V∧| 亚洲天堂福利视频| 色视频色露露永久免费观看| 免费无码AV一区二区| 亚洲国产另类久久久精品黑人 | 99re6热视频精品免费观看| 亚洲综合激情九月婷婷| 最好免费观看韩国+日本 | 成年女人毛片免费播放人| 视频免费1区二区三区| 久久久亚洲欧洲日产国码二区| 毛片免费在线观看网站| 久久九九久精品国产免费直播|