Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Flask SQLAlchemy nie zamyka połączeń z bazą danych MySQL

W końcu znalazłem rozwiązanie powyższego problemu.

Użyłem modelu deklaratywnego zdefiniowanego w tutaj zamiast postępować zgodnie z dokumentacją szybkiego startu dla Flask-SQLAlchemy podaną tutaj .

Zmienione pliki są następujące:

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)

Do zapytania o rekordy możemy użyć User.query.filter_by().all() lub db_engine.execute() .

Aby zapisać nowe dane do bazy danych, możemy użyć:

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. „pobierz” w PDO daje tylko jeden wynik

  2. Laravel Eloquent LEWY DOŁĄCZ GDZIE NULL

  3. Znajdź następnym razem, gdy firma będzie otwarta; Obliczanie godzin mysql

  4. JSON_PRETTY() – Formatuj dokumenty JSON dla łatwiejszej czytelności w MySQL

  5. Dlaczego mój ciąg SQL powoduje komunikat o błędzie:Błąd analizy:błąd składni w PHP?