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

Jak zbudować aplikację kolbową wokół już istniejącej bazy danych?

Powiedziałbym, że twoje pytanie nie ma w ogóle nic wspólnego z kolbą. Na przykład nie masz problemu z szablonami, trasami, widokami lub dekoratorami logowania.

Zmagasz się w SQLAlchemy.

Więc moja sugestia to zignorowanie Flask przez jakiś czas i przyzwyczajenie się najpierw do SQLAlchemy. Musisz przyzwyczaić się do istniejącej bazy danych i dostępu do niej z SQLAlchemy. Użyj jakiegoś narzędzia dokumentacji MySQL, aby znaleźć sposób na obejście tego. Zacznij od czegoś takiego (zauważ, że nie ma to nic wspólnego z Flask, zapytaj wszystkich ... jeszcze):

#!/usr/bin/python
# -*- mode: python -*-

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:///webmgmt.db', convert_unicode=True, echo=False)
Base = declarative_base()
Base.metadata.reflect(engine)


from sqlalchemy.orm import relationship, backref

class Users(Base):
    __table__ = Base.metadata.tables['users']


if __name__ == '__main__':
    from sqlalchemy.orm import scoped_session, sessionmaker, Query
    db_session = scoped_session(sessionmaker(bind=engine))
    for item in db_session.query(Users.id, Users.name):
        print item

W wierszu „engine = " musisz podać swoją ścieżkę do bazy danych MySQL, aby SQLAlchemy ją znalazł. W moim przypadku użyłem istniejącej bazy danych sqlite3.

W wierszu „class Users(Base) " musisz użyć jednej z istniejących tabel w bazie danych MySQL. Wiedziałem, że moja baza danych sqlite3 zawiera tabelę o nazwie "users".

Po tym punkcie SQLalchemy wie, jak połączyć się z bazą danych MySQL i wie o jednej z tabel. Musisz teraz dodać wszystkie inne tabele, na których Ci zależy. Na koniec musisz określić relacje z SQLalchemy. Mam tu na myśli takie rzeczy jak jeden do jednego, jeden do wielu, wiele do wielu, rodzic-dziecko i tak dalej. Strona internetowa SQLAlchemy zawiera dość obszerną sekcję na ten temat.

Po wierszu „if __name__ == '__main__' " po prostu pojawia się kod testowy. Zostanie on wykonany, jeśli nie zaimportuję mojego skryptu Pythona, ale go uruchomię. Tutaj widzisz, że tworzę sesję DB i jest to bardzo proste zapytanie.

Sugeruję, abyś najpierw przeczytał o ważnych częściach dokumentacji SQLAlchemy, na przykład opisowej definicji tabeli, modelu relacji i sposobie wykonywania zapytań. Kiedy już to wiesz, możesz zmienić ostatnią część mojego przykładu na kontroler (np. używając yield Pythona metody) i napisz widok, który używa tego kontrolera.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć bazę danych w MySQL Workbench za pomocą GUI

  2. Pole liczb całkowitych MySQL jest zwracane jako ciąg znaków w PHP

  3. Przygotowane oświadczenia MySQL

  4. Zapytanie MySQL, aby uzyskać najlepiej sprzedające się produkty

  5. Jak dodać całkowity wiersz w MySQL