Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để xây dựng một ứng dụng flask xung quanh một cơ sở dữ liệu đã có sẵn?

Tôi muốn nói rằng câu hỏi của bạn không liên quan gì đến bình. Ví dụ:bạn không gặp vấn đề với các mẫu, tuyến đường, chế độ xem hoặc trình trang trí đăng nhập.

Nơi bạn đấu tranh là tại SQLAlchemy.

Vì vậy, gợi ý của tôi là bỏ qua Flask một thời gian và làm quen với SQLAlchemy trước. Bạn cần làm quen với cơ sở dữ liệu hiện có của mình và cách truy cập nó từ SQLAlchemy. Sử dụng một số công cụ tài liệu MySQL để tìm cách giải quyết vấn đề này. Bắt đầu với một cái gì đó như thế này (lưu ý rằng nó không liên quan gì đến Flask hỏi tất cả ... chưa):

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

Trong dòng "engine = "bạn cần cung cấp đường dẫn đến cơ sở dữ liệu MySQL của mình để SQLAlchemy tìm thấy nó. Trong trường hợp của tôi, tôi đã sử dụng cơ sở dữ liệu sqlite3 có từ trước.

Trong dòng "class Users(Base) "bạn cần sử dụng một trong các bảng hiện có trong cơ sở dữ liệu MySQL của mình. Tôi biết rằng cơ sở dữ liệu sqlite3 của tôi có một bảng có tên" người dùng ".

Sau thời điểm này, SQLalchemy biết cách kết nối với cơ sở dữ liệu MySQL của bạn và nó biết về một trong các bảng. Bây giờ bạn cần thêm tất cả các bảng khác mà bạn quan tâm. Cuối cùng, bạn cần chỉ định các mối quan hệ với SQLalchemy. Ở đây tôi muốn nói đến những thứ như một-một, một-nhiều, nhiều-nhiều, cha-con, v.v. Trang web SQLAlchemy chứa một phần khá dài dòng về điều này.

Sau dòng "if __name__ == '__main__' "chỉ có một số mã thử nghiệm. Nó sẽ được thực thi nếu tôi không nhập tập lệnh python của mình, nhưng chạy. Ở đây bạn thấy rằng tôi tạo một phiên DB và đó là phiên cho một truy vấn rất đơn giản.

Đề xuất của tôi là trước tiên bạn nên đọc về các phần quan trọng của tài liệu SQLAlchemy, ví dụ như định nghĩa bảng mô tả, mô hình mối quan hệ và cách truy vấn. Khi bạn biết điều này, bạn có thể thay đổi phần cuối cùng của ví dụ của tôi thành bộ điều khiển (ví dụ:sử dụng yield của Python ) và viết một dạng xem sử dụng bộ điều khiển đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để lấy số ngày chênh lệch giữa hai ngày trên MySQL?

  2. Sử dụng tham số giới hạn nhiều lần

  3. Chuyển đổi dấu thời gian thành ngày tháng trong truy vấn MySQL

  4. Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công

  5. Tập lệnh kiểm tra tình trạng sao chép MySQL