मैं कहूंगा कि आपके प्रश्न का फ्लास्क से कोई लेना-देना नहीं है। उदाहरण के लिए, आपको टेम्प्लेट, रूट, व्यू या लॉगऑन डेकोरेटर से कोई समस्या नहीं है।
जहां आप संघर्ष करते हैं वह SQLAlchemy पर है।
तो मेरा सुझाव है कि फ्लास्क को कुछ समय के लिए अनदेखा करें और पहले SQLAlchemy की आदत डालें। आपको अपने मौजूदा डेटाबेस की आदत डालनी होगी और इसे SQLAlchemy से कैसे एक्सेस करना है। इसके आसपास अपना रास्ता खोजने के लिए कुछ MySQL दस्तावेज़ीकरण टूल का उपयोग करें। कुछ इस तरह से शुरुआत करें (ध्यान दें कि इसका फ्लास्क से कोई लेना-देना नहीं है ... अभी तक):
#!/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
लाइन में "engine =
"आपको अपने MySQL डेटाबेस को अपना पथ प्रदान करने की आवश्यकता है, ताकि SQLAlchemy इसे ढूंढ सके। मेरे मामले में मैंने पहले से मौजूद sqlite3 डेटाबेस का उपयोग किया था।
पंक्ति में "class Users(Base)
"आपको अपने MySQL डेटाबेस में मौजूदा तालिकाओं में से एक का उपयोग करने की आवश्यकता है। मुझे पता था कि मेरे sqlite3 डेटाबेस में "उपयोगकर्ता" नाम की एक तालिका थी।
इस बिंदु के बाद, SQLalchemy जानता है कि आपके MySQL डेटाबेस से कैसे जुड़ना है और यह तालिकाओं में से एक के बारे में जानता है। अब आपको उन सभी अन्य तालिकाओं को जोड़ने की आवश्यकता है जिनकी आप परवाह करते हैं। अंत में, आपको SQLalchemy से संबंध निर्दिष्ट करने की आवश्यकता है। यहाँ मेरा मतलब है एक-से-एक, एक-से-अनेक, अनेक-से-अनेक, माता-पिता-बच्चे इत्यादि। SQLAlchemy वेब साइट में इसके बारे में काफी लंबा खंड है।
लाइन के बाद "if __name__ == '__main__'
"बस कुछ परीक्षण कोड आता है। इसे निष्पादित किया जाएगा यदि मैं अपनी पायथन लिपि आयात नहीं करता, लेकिन चलाता हूं। यहां आप देखते हैं कि मैं एक डीबी सत्र बना रहा हूं और यह एक बहुत ही सरल क्वेरी के लिए है।
मेरा सुझाव है कि आप पहले SQLAlchemy के दस्तावेज़ीकरण के महत्वपूर्ण भागों के बारे में पढ़ें, उदाहरण के लिए वर्णनात्मक तालिका परिभाषा, संबंध मॉडल और क्वेरी कैसे करें। एक बार जब आप यह जान लेते हैं, तो आप मेरे उदाहरण के अंतिम भाग को नियंत्रक में बदल सकते हैं (उदाहरण के लिए पायथन के yield
का उपयोग करना विधि) और एक दृश्य लिखें जो उस नियंत्रक का उपयोग करता है।