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

Bagaimana cara membangun aplikasi labu di sekitar database yang sudah ada?

Saya akan mengatakan pertanyaan Anda tidak ada hubungannya dengan labu sama sekali. Misalnya, Anda tidak memiliki masalah dengan template, rute, tampilan, atau dekorator logon.

Tempat Anda berjuang adalah di SQLAlchemy.

Jadi saran saya abaikan Flask sebentar dan biasakan dulu SQLAlchemy. Anda perlu membiasakan diri dengan database yang ada dan cara mengaksesnya dari SQLAlchemy. Gunakan beberapa alat dokumentasi MySQL untuk menemukan jalan keluarnya. Mulailah dengan sesuatu seperti ini (perhatikan bahwa ini tidak ada hubungannya dengan Flask ask all ... belum):

#!/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

Pada baris "engine = " Anda perlu menyediakan jalur Anda ke database MySQL Anda, sehingga SQLAlchemy menemukannya. Dalam kasus saya, saya menggunakan database sqlite3 yang sudah ada sebelumnya.

Pada baris "class Users(Base) " Anda perlu menggunakan salah satu tabel yang ada di database MySQL Anda. Saya tahu bahwa database sqlite3 saya memiliki tabel bernama "pengguna".

Setelah titik ini, SQLalchemy tahu bagaimana menghubungkan ke database MySQL Anda dan tahu tentang salah satu tabel. Anda sekarang perlu menambahkan semua tabel lain yang Anda pedulikan. Terakhir, Anda perlu menentukan hubungan ke SQLalchemy. Di sini saya maksudkan hal-hal seperti satu-ke-satu, satu-ke-banyak, banyak-ke-banyak, orang tua-anak dan seterusnya. Situs web SQLAlchemy berisi bagian yang agak panjang tentang ini.

Setelah baris "if __name__ == '__main__' " baru saja datang beberapa kode pengujian. Ini akan dieksekusi jika saya tidak mengimpor skrip python saya, tetapi jalankan. Di sini Anda melihat bahwa saya membuat sesi DB dan itu untuk kueri yang sangat sederhana.

Saran saya adalah Anda terlebih dahulu membaca tentang bagian penting dari dokumentasi SQLAlchemy, misalnya definisi tabel deskriptif, model hubungan, dan cara kueri. Setelah Anda mengetahui hal ini, Anda dapat mengubah bagian terakhir dari contoh saya menjadi pengontrol (mis. menggunakan yield Python metode) dan tulis tampilan yang menggunakan pengontrol itu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dalam SQL / MySQL, apa perbedaan antara ON dan WHERE dalam pernyataan bergabung?

  2. Pengecualian:Sudah ada DataReader terbuka yang terkait dengan Koneksi ini yang harus ditutup terlebih dahulu

  3. Cara Menginstal MySQL 8 di Ubuntu 20.04 LTS

  4. MySQL – MariaDB – Menulis Prosedur Tersimpan Pertama

  5. TIME_FORMAT() Contoh – MySQL