2016-05-02 15 views
-2

私はFlaskにSQLAlchemyを使用していましたが、psycopg2を使用してデータベースから値を挿入して返しました。私は、SQLAlchemyを使用しなくなったので、私のModel.pyとdbオブジェクトのクラスがどのように変わるべきなのか疑問に思っていました。もうこれらも必要なの?私のモデルファイル内SQLalchemyからpsycopg2への遷移

app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite') 
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True 
db.SQLALCHEMY(app) 

クラスのサンプル:

class User(UserMixin, db.Model): 
    __tablename__ = 'users' 
    id = db.Column(db.Integer, primary_key=True) 
    email = db.Column(db.String(64), unique=True, index=True) 
    username = db.Column(db.String(64), unique=True, index=True) 
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id')) 
    zipAddress = db.Column(db.String(64)) 
+2

あなたはpsycopg2とSQLAlchemyで生のクエリを実行することができますか?実際の質問については、SQLAlchemyを使用していないため、SQLAlchemyモデルを使用しないでください。 – davidism

答えて

0

私はあなたがPostgreSQLの代わりにsqliteの権利を使用したい理解したよう

は、dbオブジェクトを設定しますか?はいの場合は、 SQLALCHEMY_DATABASE_URI = 'postgresql uri thatsを変更する必要があります。 既に使用したくない場合は、psycopg2 の設定を行う必要があります。しかし、 SQLAlchemyを使用することをお勧めします。データの保存には posgresqlを使用し続けることができます。sqlalchemyを続行する場合は、そのファイル(Models.py)およびdbインスタンスを削除することはできません。 sqlalchemyを使用すると、必要に応じて簡単にテーブルを変更して新しいテーブルを追加できます。 最後に、sqlalchemyを使用するときにpostgresqlを使用できないということはありません。 SQLalchemyだけのフレームワークと sqlitemysqlpostgresqlのためのコードの基礎作品は、それらのすべてをあなたがテーブルを作成する DATABASE_URIを変更する必要があります。 私はチェックすることをお勧めします flask-sqlalchemy

+0

そうです。私はすでに私のpostgresテーブルが作成されているので、私はSQLAlchemyを使用し続けるべきかどうかはわかりません。私はSQLAlchemyが私のModel.pyのクラスに基づいてデータベースを作成することを知っているので、そのファイルはもう必要ですか? SQLAlchemyを使用していない場合、dbオブジェクトを持つ目的もありますか? – Brosef

+0

ありがとうございます。 postgresqlとpsycopg2でSQLAlchemyを使用すると、SQLAlchemyが提供する主な利点は何ですか? – Brosef

+0

@Brosef SQLAlchemyは、それ以上の複雑さをもたらすもう一つのソフトウェア層です。投げ捨てて適切なSQLを使用してください。 –