Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Flask SQLAlchemy tidak menutup koneksi database MySQL

Saya akhirnya menemukan perbaikan untuk masalah di atas.

Saya menggunakan model deklaratif yang didefinisikan dalam di sini daripada mengikuti dokumentasi quickstart untuk Flask-SQLAlchemy yang diberikan di sini .

File yang diubah adalah sebagai berikut:

db.py :

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine(DB_URI, convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False,
                                         autoflush=False,
                                         bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()

def init_db():
    import user
    Base.metadata.create_all(bind=engine)

main.py :

from db import init_db, db_session

init_db()

@app.teardown_appcontext
def shutdown_session(exception=None):
    db_session.remove()

user.py :

from sqlalchemy import Column, Integer, String
from data_models.db import Base
class User(Base):
    id = db.Column(Integer, primary_key=True)
    username = db.Column(String(80), unique=True, nullable=False)
    email = db.Column(String(120), unique=True, nullable=False)

Untuk meminta catatan, kita bisa menggunakan User.query.filter_by().all() atau db_engine.execute() .

Untuk menulis data baru ke dalam database, kita dapat menggunakan yang berikut ini:

new_user_entry = User(username = "abc", email = "[email protected]")
db_session.add(new_user_entry)
db_session.commit()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python + MySQLdb mengeksekusi banyak

  2. JDBC ERROR:08S01 terkadang terjadi

  3. Bagaimana cara mempercepat kueri sql? Indeks?

  4. MySQL:Indeks optimal untuk antar kueri

  5. perintah mysql untuk menampilkan variabel konfigurasi saat ini