Flask擺弄記錄(3)-操作數(shù)據(jù)庫


連接和操作數(shù)據(jù)庫的方法


  • 使用數(shù)據(jù)庫驅(qū)動直接連接屎债,我使用的oralce數(shù)據(jù)庫
    做一個應用或者建站總是要使用不同的數(shù)據(jù)庫或者其他方式來存貯我們的數(shù)據(jù)横漏。
    首先要先下載python中支持連接oralce的包cx_Oracle,可以下載安裝粗梭。

    cx_Oracle下載

    或者直接在cmd使用命令

    pip install cx_Oracle xxxxxx # xxxx是你的版本號
    

    1.要注意的是不同版本的oralce數(shù)據(jù)庫使用的包的版本是不同的
    2.windows系統(tǒng)下可能要你先安裝C++環(huán)境
    安裝完成后迁沫,創(chuàng)建一個文件苇倡,簡單測試一下。(創(chuàng)建一個database_link.py)

    import cx_Oracle
    
    conn = cx_Oracle.connect('dw_hos/dw_hos@localhost/orcl')
    
    c = conn.cursor()
    
    x = c.execute('select sysdate from dual')
    
    rows = x.fetchone()
    
    c.close()
    
    conn.close()
    
    print(rows)
    

在控制臺就可以看到查詢回來的數(shù)據(jù)庫時間了审姓。

link的方式增刪查改都是使用的SQL語句珍特,然后創(chuàng)建oralce的cursor來執(zhí)行,執(zhí)行后關閉魔吐。

  • 使用Flask-SQLAlchemy管理扎筒。

    Flask-SQLAlchemy官網(wǎng)
    Flask-SQLAlchemy文檔中文翻譯

    首先給出flask各類數(shù)據(jù)庫的連接字符串格式。格式如下

    dialect+driver://username:password@host:port/database
    

    再舉出幾個常用的例子,其他的可以在官方文檔中查閱:

    mysql://scott:tiger@localhost/mydatabase # MYSQL
    oracle://scott:tiger@127.0.0.1:1521/sidname # ORACLE
    sqlite:////absolute/path/to/foo.db # SQLLITE
    

    這里我用的是oracle數(shù)據(jù)庫:
    創(chuàng)建一個簡單的demo來運行一下(創(chuàng)建一個database_orm.py):

    from flask import Flask
    from flask.ext.sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'oracle://dw_hos:dw_hos@localhost:1521/orcl'
    db = SQLAlchemy(app)
    
    # 下面是數(shù)據(jù)模型的聲明
    class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)
    
    def __init__(self, username, email):
        self.username = username
        self.email = email
    
    def __repr__(self):
        return '<User %r>' % self.username
    

    從python shell中進入db對象并調(diào)用SQLAlchemy.create_all() 方法來創(chuàng)建表和數(shù)據(jù)庫:

    >>> from database_orm import db
    >>> db.create_all()
    

    這時候是有了數(shù)據(jù)表格了酬姆,我們創(chuàng)建一些對象(插入一些數(shù)據(jù))

    >>> from yourapplication import User
    >>> admin = User('admin', 'admin@example.com')
    >>> guest = User('guest', 'guest@example.com')
    

    這時候還沒插入數(shù)據(jù)砸琅,我們要將之插入數(shù)據(jù)庫

    >>> db.session.add(admin)
    >>> db.session.add(guest)
    >>> db.session.commit()
    

    查詢也是非常簡單的

    >>> users = User.query.all()
    [<User u'admin'>, <User u'guest'>]
    >>> admin = User.query.filter_by(username='admin').first()
    <User u'admin'>
    

以上就是兩種對數(shù)據(jù)庫連接和操作的方式。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末轴踱,一起剝皮案震驚了整個濱河市症脂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌淫僻,老刑警劉巖诱篷,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異雳灵,居然都是意外死亡棕所,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門悯辙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琳省,“玉大人,你說我怎么就攤上這事躲撰≌氡幔” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵拢蛋,是天一觀的道長桦他。 經(jīng)常有香客問我,道長谆棱,這世上最難降的妖魔是什么快压? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任圆仔,我火速辦了婚禮,結果婚禮上蔫劣,老公的妹妹穿的比我還像新娘坪郭。我一直安慰自己,他們只是感情好脉幢,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布截粗。 她就那樣靜靜地躺著,像睡著了一般鸵隧。 火紅的嫁衣襯著肌膚如雪绸罗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天豆瘫,我揣著相機與錄音珊蟀,去河邊找鬼。 笑死外驱,一個胖子當著我的面吹牛育灸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播昵宇,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼磅崭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瓦哎?” 一聲冷哼從身側(cè)響起砸喻,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒋譬,沒想到半個月后割岛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡犯助,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年癣漆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剂买。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡惠爽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞬哼,到底是詐尸還是另有隱情婚肆,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布倒槐,位于F島的核電站旬痹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏讨越。R本人自食惡果不足惜两残,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望把跨。 院中可真熱鬧人弓,春花似錦、人聲如沸着逐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耸别。三九已至健芭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間秀姐,已是汗流浹背慈迈。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留省有,地道東北人痒留。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蠢沿,于是被迫代替她去往敵國和親伸头。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容