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 đó.