のは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'>
または
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'>
基本的に違いがある:あなたがフラスコフレームワーク用に開発APIを使用している最初のように
Flask-SQLAlchemyと呼ばれます。 Flaskアプリケーションを作成している場合、セッションのスコープはアプリケーションによって自動的に管理できるため、これはオプションです。要求に関連して単一のセッションを確立するためのインフラストラクチャのような多くの利点があります。要求の最後に正しく分解され、解消されます。
2番目の方法では、純粋なSQLAlchemyアプリケーションです。そのため、ライブラリを使用して特定のデータベースに接続する場合は、コマンドラインスクリプト、バックグラウンドデーモン、GUIなどのSQLAlchemy APIのみを使用できます。インタフェース駆動型アプリケーションなど
だから、あなたは次のように、追加することができる方法の両方で:フラスコ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
ただ
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
は、私はちょうどあなたが多くの方法を使用して追加することができますショーのために同じデータベースに接続していことを実現します。
使用した例についてもう少し説明してください。たとえば、あなたは「働いた」と言った。あなたは「働いた」とはどういう意味ですか? –
もう一度質問を確認してください、私はそれを例で更新しました。 – Ghooo