What is the difference between Session and db.session in SQLAlchemy?

    db_session = sessionmaker(bind=db.get_engine(db.get_app(), bind='bi_user_statistic'))
    db_session().query(xxxxx).filter()

Let's check the diferences:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://///Users/dedeco/Documents/tmp/testDb.db'
db = SQLAlchemy(app)

>>>type(db.session)
<class 'sqlalchemy.orm.scoping.scoped_session'>
or

from sqlalchemy import *
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

some_engine = create_engine('sqlite://///Users/dedeco/Documents/tmp/testDb.db')
Session = sessionmaker(bind=some_engine)
session = Session()

Base = declarative_base()

>>> type(session)
<class 'sqlalchemy.orm.session.Session'>
Basically the difference is:

In the first way you are using a API developed for the Flask framework, called Flask-SQLAlchemy. It's the option if you are creating a Flask application, because the scope of the Session can be managed automatically by your application. You have many benefits like a infrastructure to establish a single Session, associated with the request, which is correctly constructed and torn down corresponding torn down at the end of a request.
In the second way is a pure SQLAlchemy app, so if you are using a library to connect a particular database, you can use just a SQLAlchemy API, for example, for a command-line script, background daemon, GUI interface-driven application, etc.
So, in a both way you can add, like:

Using a Flask-SQLAlchemy:

class User(db.Model):
    __tablename__ = 'users'
    user_id = db.Column(db.Integer(), primary_key = True)
    user_name = db.Column(db.String(80), unique=True)
    def __init__(self, user_name):
        self.user_name = user_name

>>> db.create_all()
>>> u = User('user1')
>>> db.session.add(u)
>>> db.session.commit()
>>> users = db.session.query(User).all()
>>> for u in users:
...     print u.user_name
... 
user1
Using just SQLAlchemy:

class User(Base):
    __tablename__ = 'users'
    user_id = Column(Integer(), primary_key = True)
    user_name = Column(String(80), unique=True)

>>> u = User()
>>> u.user_name = 'user2'
>>> session.add(u)
>>> session.commit()
>>> users = session.query(User).all()
>>> for u in users:
...     print u.user_name
... 
user1
user2
Realize that I am connecting in the same database just for show that you can add using many ways.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末民晒,一起剝皮案震驚了整個濱河市厂榛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌朴爬,老刑警劉巖局待,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柒啤,死亡現(xiàn)場離奇詭異恩脂,居然都是意外死亡机断,警方通過查閱死者的電腦和手機楷拳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吏奸,“玉大人唯竹,你說我怎么就攤上這事】喽。” “怎么了浸颓?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長旺拉。 經(jīng)常有香客問我产上,道長,這世上最難降的妖魔是什么蛾狗? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任晋涣,我火速辦了婚禮,結(jié)果婚禮上沉桌,老公的妹妹穿的比我還像新娘谢鹊。我一直安慰自己,他們只是感情好留凭,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布佃扼。 她就那樣靜靜地躺著,像睡著了一般蔼夜。 火紅的嫁衣襯著肌膚如雪兼耀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天瘤运,我揣著相機與錄音窍霞,去河邊找鬼。 笑死拯坟,一個胖子當著我的面吹牛但金,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播郁季,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼傲绣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巩踏?” 一聲冷哼從身側(cè)響起秃诵,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塞琼,沒想到半個月后菠净,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡彪杉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年毅往,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片派近。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡攀唯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渴丸,到底是詐尸還是另有隱情侯嘀,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布谱轨,位于F島的核電站戒幔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏土童。R本人自食惡果不足惜诗茎,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望献汗。 院中可真熱鬧敢订,春花似錦、人聲如沸罢吃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刃麸。三九已至醒叁,卻和暖如春司浪,著一層夾襖步出監(jiān)牢的瞬間泊业,已是汗流浹背把沼。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吁伺,地道東北人饮睬。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像篮奄,于是被迫代替她去往敵國和親捆愁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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

  • 上一篇文章中窟却,提到了解決賦值運算符異常安全的幾種寫法昼丑,其中提到了copy and swap 但并沒有給出方法,這就...
    chnmagnus閱讀 372評論 0 0
  • for 最親愛的 shenjie 晚餐吃了好多 飽食過后總想早些睡覺 吃了好多菜式 我還是只想你 在這個暴食之后的...
    無聊很可愛閱讀 177評論 0 0
  • 上海的冬天來的有點遲,在立冬以后下了幾場雨以后茬腿,突然就降溫了呼奢,樓下的小野貓再也沒有碰到過了。今天本來是上吉他課...
    閑度閱讀 264評論 2 0
  • 無論是做什么行業(yè),無論你的戰(zhàn)略是什么悴品,企業(yè)重視產(chǎn)品總是沒有錯的禀综,可能你不一定是以產(chǎn)品為王。 我們重視產(chǎn)品通常關注的...
    張振業(yè)閱讀 537評論 0 4