sql >> データベース >  >> RDS >> Mysql

FlaskSQLAlchemyを使用したSQLiteからMySQLへの切り替え

    あなたが指摘したチュートリアルは、SQLAlchemyを使用してMySQLに接続する正しい方法を示しています。以下は、ほとんど変更を加えていないコードです。

    私の仮定は、MySQLサーバーがFlaskが実行されているのと同じマシンで実行されており、データベース名がdb_nameであるということです。サーバーが同じマシンでない場合は、localhostの代わりにサーバーIPを配置します 。

    from flask import Flask
    from flask.ext.sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:[email protected]/db_name'
    db = SQLAlchemy(app)
    
    
    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
    
    admin = User('admin', '[email protected]')
    
    db.create_all() # In case user table doesn't exists already. Else remove it.    
    
    db.session.add(admin)
    
    db.session.commit() # This is needed to write the changes to database
    
    User.query.all()
    
    User.query.filter_by(username='admin').first()
    

    SQLAlchemyで使用されるデフォルトのドライバーが偶然に発生しました (mqsqldb )、仮想環境でコンパイルされません。だから私は完全なPython実装pymysqlを備えたMySQLドライバーを選びました 。 pip install pymysqlを使用してインストールしたら 、SQLALCHEMY_DATABASE_URIは次のように変更されます:

    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:[email protected]/db_name'
    

    SQLAlchemyのようなORMを使用する目的は、ほとんどの場合、ほとんどまたはまったく変更を加えることなく、別のデータベースを使用できることです。だから、私の答えはイエスです。 sqliteコードを使用して、上記のコードのようにマップされたURIを使用してMySQLを操作できるはずです。



    1. パーセントを計算する方法は?

    2. CLOBをOracleデータベースに挿入します

    3. Oracle SQLクエリの数値に先行ゼロを追加するにはどうすればよいですか?

    4. SQLcl(Oracle)を使用しているときにクエリ結果を.txtファイルにエクスポートする方法