flask database handling how use flask with database
इस फ्लास्क डेटाबेस ट्यूटोरियल में, विभिन्न डेटाबेस, जैसे फ्लास्क MySQL, फ्लास्क MongoDB, SQLite, आदि के साथ फ्लास्क का उपयोग करना सीखें।
हम अपने पहले फ्लास्क पायथन ट्यूटोरियल में शामिल अवधारणाओं का विस्तार करेंगे। हम एक दस्तावेज़-आधारित NoSQL डेटाबेस, जिसमें NoSQL न केवल SQL के लिए है, के साथ फ्लास्क का उपयोग करके शुरू करते हैं।
सबसे पहले, हम डेटाबेस के साथ जुड़ने की अवधारणा को कवर करते हैं, और फिर हम आपको एक डेटाबेस के साथ लॉक नहीं होने का पता करते हैं। यदि आवश्यक हो, तो हम डेटाबेस बैकएंड को बदलने के लिए केवल कॉन्फ़िगरेशन को संशोधित कर सकते हैं।
=> यहां परफेक्ट फ्लास्क ट्रेनिंग गाइड देखें
आप क्या सीखेंगे:
फ्लास्क डेटाबेस ट्यूटोरियल
इस ट्यूटोरियल में, पाठक चर्चा किए गए डेटाबेस के बीच तुलना कर सकते हैं। इसके अलावा, हम फ्लास्क-मोंगोएंगाइन, फ्लास्क-एसक्यूएलकेमी और फ्लास्क मोंगोअल्केमी के बारे में बात करते हैं। ये दोनों ओआरएम यानी ऑब्जेक्ट रिलेशन मैपर काफी लोकप्रिय हैं।
हुड के तहत ORM पारदर्शी रूप से ऑब्जेक्ट्स (डेटाबेस मॉडल) को डेटाबेस कमांड या SQL स्टेटमेंट में ट्रांसलेट करते हैं।
ORM का उपयोग करने के लाभ नीचे सूचीबद्ध हैं:
- डेवलपर्स टेबल और एसक्यूएल के बजाय ऑब्जेक्ट्स के साथ काम कर सकते हैं।
- डेटाबेस अपडेट का ट्रैक रखने के लिए माइग्रेशन का उपयोग करें।
- यह विकास लागत और समय को कम करता है।
- यह डेटाबेस-विशिष्ट SQL अंतरों को मात देता है।
ओआरएम का उपयोग करते समय, प्रोग्रामर को जटिल एसक्यूएल प्रश्नों और कमांड को आधार एसक्यूएल कमांड करने के लिए लिखने की आवश्यकता नहीं होती है।
डेटाबेस से कनेक्ट करें
कॉन्फ़िगरेशन फ़ाइल खोलें और नीचे बताए गए मूल्यों पर ध्यान दें। फ्लास्क-एपीबिल्डर उल्लिखित मान से कनेक्शन स्ट्रिंग पर डेटाबेस का विवरण लेता है।
# The MongoEngine connection string. MONGODB_SETTINGS = { 'DB': 'mydb', 'connect': False, }
ORM द्वारा डेटाबेस प्रबंधन की सभी निम्न-स्तरीय विशेषताओं को फ्लास्क क्लिक कमांड के तहत लपेटा गया है, जिसे हम कमांड लाइन पर फ्लास्क फैब-एलपीपी का उपयोग करके देख सकते हैं।
फ्लास्क MongoDB
इस खंड में, हम सीखेंगे कि फ्लास्क में डेटाबेस के साथ काम करने के लिए कच्ची एसक्यूएल स्क्रिप्ट का उपयोग करने के बजाय ओआरएम का उपयोग कैसे करें।
MongoDB एक गैर-संबंधपरक दस्तावेज़-आधारित डेटाबेस है। हमने पहले ही इसे अपने वर्तमान फ्लास्क ट्यूटोरियल उदाहरण एप्लिकेशन के साथ कॉन्फ़िगर कर लिया है।
स्थानीय मशीन पर MongoDB सर्वर का प्रबंधन करने के लिए नीचे दिए गए आदेशों का उपयोग करें।
sudo systemctl start mongod # to start MongoDB sudo systemctl stop mongod # to stop MongoDB sudo systemctl status mongod # to check status MongoDB
हमने दो प्रसिद्ध ORM पर चर्चा की है जिनका उपयोग आप MongoDB और फ्लास्क के साथ कर सकते हैं।
परीक्षण डेटा प्रबंधन उपकरण खुला स्रोत
डेटाबेस डिज़ाइनर का उपयोग करते हुए, हमने एल्बम और सॉन्ग नामक दो टेबल बनाए और एल्बम और सॉन्ग के बीच एक-से-कई संबंधों को परिभाषित किया। नीचे दी गई छवि उसी का चित्रण है।

फ्लास्क MongoEngine
अब हमारा पहला MongoEngine DB मॉडल बनाएं।
एप्लिकेशन डायरेक्टरी के तहत फाइल मॉडर्म्सडोम बनाएं या संपादित करें और निम्न कोड जोड़ें।
from mongoengine import Document from mongoengine import DateTimeField, StringField, ReferenceField, ListField, IntField class Album(Document): name = StringField(unique=True, required=True, max_lenth=100) def __str__(self): return self.name class Song(Document): title = StringField(max_lenth=200, required=True, unique=True) rating = IntField(default=0,max_lenth=1) # 1 to 9 album = ReferenceField(Album) def __str__(self): return self.title
हमने दो MongoEngine मॉडल बनाए हैं जिन्हें एल्बम और सॉन्ग कहा जाता है। ये मॉडल MongoDB में संबंधित दस्तावेजों के अनुरूप हैं।
एल्बम में कुछ बाधाओं के साथ टाइप स्ट्रिंग का एक क्षेत्र है।
- एल्बम का नाम अद्वितीय है।
- एल्बम का नाम रिक्त नहीं हो सकता।
- एल्बम का नाम अधिकतम सौ वर्णों का हो सकता है।
इसी तरह, डॉक्यूमेंट सॉन्ग में एक शीर्षक, एक रेटिंग फ़ील्ड और एक संदर्भ फ़ील्ड है जो किसी अन्य दस्तावेज़, एल्बम को इंगित करता है। आइए इस फाइल को सेव करें और इन दो मॉडलों का उपयोग करके डेटा बनाएं। प्रोजेक्ट की मूल निर्देशिका पर जाएं और फ्लास्क शेल कमांड का उपयोग पायथन शेल में फ्लास्क एप्लिकेशन तक पहुंचने के लिए करें।
एक बार जब आप शेल में प्रवेश करते हैं, तो नीचे दिए गए कथनों का उपयोग मोंगोन्जाइन मॉडल तक पहुंचने और नीचे दिखाए गए अनुसार नमूना डेटा बनाने के लिए करें।
>>> from app.models import Album, Song >>> album1 = Album(name='Album1') >>> album1.save() >>> song1 = Song(title='Song1', rating=9, album=album1) >>> song1.save()
अब हम Mongo क्लाइंट का उपयोग करके डेटाबेस तक पहुँचते हैं और देखते हैं कि ऊपर दिए गए कथनों के परिणामस्वरूप डेटा सहेजा गया है या नहीं। उपरोक्त कोड में, हम पहले एल्बम और सॉन्ग को आयात करते हैं, फिर मापदंडों के आवश्यक मानों के साथ उनकी वस्तुओं का निर्माण करते हैं।
यहां पैरामीटर्स मॉडल में परिभाषित फ़ील्ड नाम हैं, और हम उन मापदंडों के मान के रूप में हमारे डेटा का उल्लेख करते हैं। एक बार ऑब्जेक्ट निर्माण सफल होने के बाद, हम डेटाबेस में दस्तावेजों को बचाने के लिए संबंधित ऑब्जेक्ट्स पर सेव विधि को कॉल करते हैं।
MongoDB तक पहुँचने के लिए मोंगो कमांड का उपयोग करें। एक बार जब आप mongo क्लाइंट का उपयोग कर सर्वर से कनेक्ट होते हैं, तो नीचे दिए गए कमांड का उपयोग करें।
# 1) डेटाबेस की सूची की जाँच करें
> show dbs #----- output ---- admin 0.000GB config 0.000GB local 0.000GB mydb 0.001GB #----- output ----
# 2) mydb नामक हमारे डेटाबेस का उपयोग करें
> use mydb #----- output ---- switched to db mydb #----- output ----
# 3) RDBMS में a.k.a तालिकाओं के संग्रह की जाँच करें
> show collections #----- output ---- album permission permission_view role song user view_menu #----- output ----
# 4) एल्बम संग्रह में किसी एक दस्तावेज़ को सूचीबद्ध करें।
> db.album.findOne() #----- output ---- { '_id' : ObjectId('5eddb43b8b1e179bef87d41d'), 'name' : 'Album1' } #----- output ----
# 5) गीत संग्रह में किसी एक दस्तावेज़ को सूचीबद्ध करें।
> db.song.findOne() #----- output ---- { '_id' : ObjectId('5eddb74b0177c8f096d880ec'), 'title' : 'Song1', 'rating' : 9, 'album' : ObjectId('5eddb43b8b1e179bef87d41d') } #----- output ----
यदि आपने Django के साथ काम किया है, तो आपको एहसास होगा कि MongoEngine, Django के इनबिल्ट ORM के समान है। अंतिम आउटपुट में, जब हमने एक गीत को उद्धृत किया, तो ध्यान दें कि एल्बम फ़ील्ड के लिए किसी अन्य दस्तावेज़ का संदर्भ कैसा है।
अब एक और एल्बम बनाते हैं और मौजूदा गीत दस्तावेज़ पर एक अपडेट करते हैं।
>>> from app.models import Album, Song >>> album2 = Album(name='Album2') >>> album2.save() >>> songs_q = Song.objects(title='Song1') # query the database >>> songs_q.count() 1 >>> song1 = songs_q(0) >>> song1.album = album2 # update the album field >>> song1.save()
हम दोनों मॉडल्स यानि एल्बम और सॉन्ग को इंपोर्ट करते हैं। फिर एक नया दस्तावेज़ बनाएं, जिसे एल्बम 2 कहा जाता है। डेटाबेस में क्वेरी सॉन्ग संग्रह और इसके शीर्षक का उपयोग करके गीत प्राप्त करें। फिर हम क्वेरी परिणाम के एक सरणी इंडेक्स का उपयोग करके ऑब्जेक्ट तक पहुंचते हैं, असाइनमेंट ऑपरेटर का उपयोग करके अपडेट करते हैं, और अपडेट किए गए दस्तावेज़ को सहेजते हैं।
अब संग्रहित संग्रह की जाँच करने के लिए फिर से मानगो ग्राहक का उपयोग करें।
सबसे अच्छा डीवीडी कॉपी सॉफ्टवेयर क्या है
> db.album.find().pretty() ## output { '_id' : ObjectId('5eddb43b8b1e179bef87d41d'), 'name' : 'Album1' } { '_id' : ObjectId('5eddbaab9fd7d3ec78b2fd8f'), 'name' : 'Album2' } > db.song.find().pretty() ## output { '_id' : ObjectId('5eddb74b0177c8f096d880ec'), 'title' : 'Song1', 'rating' : 9, 'album' : ObjectId('5eddbaab9fd7d3ec78b2fd8f') }
उपरोक्त स्निपेट में दूसरी क्वेरी के आउटपुट में, Song1 दस्तावेज़ के अपडेट किए गए एल्बम फ़ील्ड पर ध्यान दें।
अब एल्बम और गीत संग्रह दोनों में दस्तावेज़ों को हटा दें। रिकॉर्ड्स निकालने के लिए नीचे दिए गए कोड का उपयोग करें। यदि आप अभी भी फ्लास्क शेल में हैं, तो किसी दस्तावेज़ को हटाने और हटाने को सत्यापित करने के लिए नीचे बताई गई कमांड का उपयोग करें।
>>> song1.delete() >>> songs_q = Song.objects(title='Song1') >>> songs_q.count() 0 >>>
हम गीत संग्रह पर दस्तावेज़ को हटाने के लिए गीत 1 पर डिलीट विधि का उपयोग करते हैं। हम एक फ्लास्क शेल का उपयोग करके सभी बुनियादी CRUD ऑपरेशन कर सकते हैं। इसके अलावा, हम डेटाबेस मॉडल को विचारों के रूप में प्रदर्शित करने के लिए फ्लास्क_एपबिल्डर के मॉडल व्यू वर्ग का उपयोग कर सकते हैं।
मॉडल-आधारित दृश्य बनाएं, जैसा कि नीचे दिए गए कोड में दिखाया गया है।
from app.models import Album, Song from flask_appbuilder import ModelView from flask_appbuilder.models.mongoengine.interface import MongoEngineInterface class SongsView(ModelView): datamodel = MongoEngineInterface(Song) class AlbumView(ModelView): datamodel = MongoEngineInterface(Album)
हम पहले ModelView और MongoEngineInterface के साथ डेटाबेस मॉडल आयात करते हैं। फिर हम ModelView को उप-वर्ग करते हैं और विशेष रूप से हमारे विचारों के डेटा मॉडल विशेषता के लिए MongoEngineInterface उदाहरण प्रस्तुत करते हैं।
अब मेन्यू के साथ SongsView और AlbumView को एक ही श्रेणी के तहत नीचे दिखाए अनुसार रजिस्टर करें।
appbuilder.add_view(AlbumView, 'Album View', category='Model Views') appbuilder.add_view(SongsView, 'Song View', category='Model Views')
एप्लिकेशन पर उन विचारों को एक्सेस करने के लिए, http: // localhost: 8080 / पर नेविगेट करें, व्यवस्थापक क्रेडेंशियल्स का उपयोग करके ऐप में लॉग इन करें, और डिफ़ॉल्ट डेटाबेस मॉडल-आधारित विचारों को समझने के लिए नीचे दिए गए चरणों का पालन करें।
चरण 1: मॉडल दृश्य मेनू पर क्लिक करें

चरण 2: एल्बम देखें सबमेनू पर क्लिक करें।

चरण 3: दस्तावेज़ या रिकॉर्ड बनाने के लिए प्लस आइकन पर क्लिक करें।

चरण 4: एल्बम का नाम दर्ज करें और इसे सहेजें।
उपरोक्त चरणों के समान, आप इन दृश्यों का उपयोग करके सभी CRUD ऑपरेशन कर सकते हैं। इसलिए, हम नीचे दिए गए चित्र में दिखाए गए अनुसार सॉन्ग व्यू सबमेनू का उपयोग करके एक गीत बनाते हैं। ध्यान दें, कैसे संबंधित डेटाबेस मॉडल का एक संदर्भ क्षेत्र ड्रॉपडाउन में प्रदर्शित होता है। कुछ और एल्बम और गाने बनाने की कोशिश करें।

आप आगे MongoAlchemy का उपयोग करके समान अवधारणाओं का पता लगा सकते हैं; एक और उपयोग करने में आसान है, और इसी तरह का ORM पायथन का उपयोग करके आसान MongoDB डेटाबेस एक्सेस और हेरफेर के लिए बनाया गया है।
कृपया MongoAlchemy के प्रलेखन की जाँच करें यहां । हालांकि, हम पहले खंड के नीचे से गुजरकर फ्लास्क-एसक्यूएलकेमी की एक बुनियादी समझ बनाने की सलाह देते हैं।
फ्लास्क Sqlite या फ्लास्क MySQL
इस खंड में, हम बैकएंड इंजन के रूप में SQLAlchemy के लिए एक ही आवेदन का पुन: उपयोग करते हैं। इसलिए, कृपया अब तक के अपने सभी परिवर्तन करें और एक अलग Git शाखा ट्यूटोरियल-3-वर्गला बनाएं। फ्लास्क एक बैकएंड डेटाबेस के रूप में SQLite और MySQL का उपयोग कर सकता है। हम अनुशंसा करते हैं कि आप इन संबंधपरक डेटाबेस के साथ ORM के रूप में SQLAlchemy का उपयोग करें।
चलिए उन बदलावों से शुरू करते हैं जो आपको एक नई शाखा की जाँच के बाद करने की आवश्यकता है।
कॉन्फ़िग
प्रोजेक्ट की रूट डायरेक्टरी में config.py खोलें और MongoDB के कनेक्शन स्ट्रिंग को हटा दें। फ्लास्क SQLite या फ्लास्क MySQL के लिए कनेक्शन स्ट्रिंग के साथ config.py अद्यतन करें।
# The SQLAlchemy connection string. SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db') # SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
App __init__.py
अब खुले एप्लिकेशन / __ init__.py फ़ाइल और दूरस्थ MongoEngine संबंधित आयात, और SQLA आयात करें जैसा कि नीचे दिखाया गया है।
#from flask_appbuilder.security.mongoengine.manager import SecurityManager from flask_appbuilder import AppBuilder, SQLA #from flask_mongoengine import MongoEngine # other lines of code #db = MongoEngine(app) db = SQLA(app) #appbuilder = AppBuilder(app, security_manager_class=SecurityManager) appbuilder = AppBuilder(app, db.session)
फ्लास्क मॉडल
निम्नलिखित कोड के साथ मॉडल थिंकपैड अपडेट करें और MongoEngine से संबंधित कोड को हटा दें।
from flask_appbuilder import Model from sqlalchemy import Column, Integer, String, ForeignKey from sqlalchemy.orm import relationship
फ्लास्क दृश्य
निम्न कोड के साथ view.py का अद्यतन करें।
from flask_appbuilder import ModelView from app.models import Album, Song class AlbumView(ModelView): datamodel = SQLAInterface(Album) class SongsView(ModelView): datamodel = SQLAInterface(Song) appbuilder.add_view(AlbumView, 'Album View', category='Model Views') appbuilder.add_view(SongsView, 'Song View', category='Model Views')
ध्यान दें कि हमने एक ही ModelView क्लास का उपयोग किया है लेकिन SQLAInterface के साथ MongoEngineInterface को बदल दिया है।
तालिकाओं और उनके संबंधित रिश्तों को बनाने के लिए, हम डेटाबेस ऑब्जेक्ट बनाने के लिए नीचे बताए गए कमांड को निष्पादित करते हैं।
flask fab create-db
याद रखें कि हमने डेटाबेस बैकएंड को बदल दिया है। इसलिए, व्यवस्थापक उपयोगकर्ता बनाने के लिए फ्लास्क फैब क्रिएट-एडमिन कमांड का उपयोग करें। अब पहले की तरह विकास सर्वर शुरू करें; अजगर run.py का उपयोग कर। Http: // localhost: 8080 पर नेविगेट करें।
यहां इस बिंदु पर, हमारा एप्लिकेशन काम करेगा क्योंकि यह MongoDB के मामले में काम करता है। सभी CRUD ऑपरेशन के साथ इसका परीक्षण करें, जैसा कि हमने पिछले अनुभागों में किया था।
फुर्तीली विकृति पद्धति पर साक्षात्कार प्रश्न
इसके अलावा, हमने SQLite DB ब्राउज़र का उपयोग करते हुए डेटाबेस मॉडल के लिए दोनों संबंधित तालिकाओं को दिखाया है।


फ्लास्क MySQL
डेटाबेस बैकएंड के रूप में MySQL का उपयोग करने के लिए, जब हम फ्लास्क-SQLAlchemy का उपयोग करते हैं, तो हमें केवल config config डेटाबेस में डेटाबेस से संबंधित एक कॉन्फ़िगरेशन को अपडेट करने की आवश्यकता होती है।
SQLALCHEMY_DATABASE_URI = 'mysql://myapp@localhost/myapp'
दिए गए कनेक्शन स्ट्रिंग के अनुसार, डेटाबेस का नाम myapp है। डेटाबेस से जुड़ने वाला उपयोगकर्ता myapp @ localhost है। हालाँकि, ये दोनों आवश्यक शर्तें हैं, और हमें नीचे दिए गए विवरणों का उपयोग करके बनाना चाहिए।
इसलिए, फ्लास्क MySQL डेटाबेस को एक-दूसरे के साथ काम करने के लिए एक उपयोगकर्ता और एक डेटाबेस बनाने के लिए नीचे दिए गए प्रश्नों का उपयोग करें। इन प्रश्नों को MySQL क्लाइंट में निष्पादित करें।
CREATE USER 'myapp'@'localhost' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO 'myapp'@'localhost'; FLUSH PRIVILEGES; CREATE DATABASE myapp;
हमें Python3 mysqlclient स्थापित करने की भी आवश्यकता है। नीचे दिए गए आदेशों में दिए गए अनुसार विकास शीर्षलेख और पुस्तकालय स्थापित करें।
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential pip install mysqlclient
अब क्योंकि हमने डेटाबेस बैकएंड को बदल दिया है, हमें डेटाबेस मॉडल के अनुरूप टेबल बनाने की आवश्यकता है। हमें एक फ्लास्क व्यवस्थापक उपयोगकर्ता बनाने की भी आवश्यकता है क्योंकि सभी पंजीकृत मेनू आइटम संरक्षित हैं और आवेदन में केवल मौजूदा उपयोगकर्ता द्वारा ही पहुँचा जा सकता है।
नीचे दी गई ये कमांड टेबल को छोड़ने और बनाने के लिए निचले स्तर के एसक्यूएल स्टेटमेंट को छिपाती हैं।
flask fab create-db flask fab create-admin
उपरोक्त सभी चरणों के सफल समापन पर, हम फिर से http: // localhost: 8080 पर नेविगेट कर सकते हैं। अब आवेदन को एक्सेस करें क्योंकि हमने फ्लास्क SQLite के मामले में प्राप्त किया था।
फ्लास्क माइग्रेट
किसी एप्लिकेशन के शुरुआती विकास के दौरान, डेटाबेस के स्कीमा में कई बदलाव होते हैं। विकास के समय में काफी बदलाव लाने वाले डेवलपर्स को इन परिवर्तनों को अक्सर करने की आवश्यकता होती है। ऐसे ही परिदृश्यों में, फ्लास्क-माइग्रेट प्लगइन काफी मददगार है।
फ्लास्क-माइग्रेट स्थापित करें।
pip install flask-migrate
सफल स्थापना पर, एक db उपकमांड जोड़ा जाता है। नीचे बताए गए कोड का उपयोग करके इस db उपकमांड में जोड़े जाने वाले कमांड-लाइन उपयोगिताओं की जांच करें।
flask db --help
सबसे पहले, हमें एक माइग्रेट ऑब्जेक्ट बनाना होगा, जैसा कि ऐप / __ init__.py में नीचे दिखाया गया है।
from flask import Flask from flask_migrate import Migrate app = Flask(__name__) migrate = Migrate(app, db)
आइए हम डेटाबेस के साथ कुछ आदेशों को आज़माएं जो हमारे आवेदन में हैं।
एक अलग माइग्रेशन रिपॉजिटरी शुरू करें।
flask db init
उपरोक्त आदेशों के समान, माइग्रेशन बनाने और अपग्रेड कमांड का उपयोग करके उन्हें लागू करने के लिए कमांड हैं। जब भी आवश्यकता होगी हम इन माइग्रेशन कमांड का उपयोग अपने बाद के ट्यूटोरियल में वर्कफ़्लो के एक भाग के रूप में करेंगे।
बार बार पूछे जाने वाले प्रश्न
आप फ्लास्क के साथ डेटाबेस के उपयोग से संबंधित कुछ प्रश्नों के उत्तर दे सकते हैं।
Q # 1) फ्लास्क किस डेटाबेस का उपयोग करता है?
उत्तर: फ्लास्क SQLAlchemy द्वारा समर्थित सभी डेटाबेस का समर्थन करता है, जो कि पायथन के लिए एक डेटाबेस टूलकिट है, और एक ORM (ऑब्जेक्ट रिलेशन मैपर) है। हम SQLAlchemy के साथ काम करने के लिए PyPI से फ्लास्क-SQLAlchemy स्थापित कर सकते हैं।
फ्लास्क-अल्केमी एक फ्लास्क प्लगइन है और इसकी स्थापना के अलावा न्यूनतम कॉन्फ़िगरेशन की आवश्यकता होती है। कुछ प्रचलित डेटाबेस जो डेवलपर्स फ्लास्क-SQLAlchemy के साथ उपयोग करते हैं, वे SQLite, PostgreSQL, MySQL आदि हैं।
फ्लास्क में नोस्क्यू डॉक्यूमेंट-आधारित डेटाबेस जैसे MongoDB, और CouchDB के साथ काम करने के लिए प्लग-फ्लास्क-मोंगोइंगाइन, फ्लास्क-मोंगोअल्केमी, फ्लास्क-काउचडीबी आदि प्लगइन्स भी हैं।
Q # 2) मैं फ्लास्क में एक डेटाबेस कैसे बनाऊं?
उत्तर: फ्लास्क में एक डेटाबेस का निर्माण आमतौर पर इसी फ्लास्क प्लगइन के बाद के पैटर्न पर निर्भर करता है। लगभग सभी प्लगइन्स प्रोजेक्ट में फ्लास्क कॉन्फ़िगरेशन में परिभाषित डेटाबेस कनेक्शन सेटिंग्स के आधार पर डेटाबेस बनाते हैं।
हालाँकि, आप प्लगइन का उपयोग न करने पर फ्लास्क में एक डेटाबेस बनाने के लिए अपनी खुद की विधि लिख सकते हैं।
हमने नीचे एक SQLite उदाहरण बनाने का एक तुच्छ उदाहरण दिया है। यह उदाहरण डेटाबेस कनेक्शन के संदर्भ को रखने के लिए जी ऑब्जेक्ट का उपयोग करता है।
import sqlite3 from flask import g # g and current_app object current_app.config('DATABASE') = 'MYDB' # Name of the database def get_db(): '''A method to get the database connection''' if 'db' not in g: g.db = sqlite3.connect( current_app.config('DATABASE'), detect_types=sqlite3.PARSE_DECLTYPES ) g.db.row_factory = sqlite3.Row return g.db def close_db(e=None): '''A method to close the database connection''' db = g.pop('db', None) if db is not None: db.close()
Q # 3) फ्लास्क में डेटाबेस से डेटा कैसे प्रदर्शित करते हैं?
उत्तर: फ्लास्क में, डेवलपर्स विभिन्न ऑब्जेक्ट रिलेशनल मैपर का उपयोग करते हैं, जिसे ओआरएम भी कहा जाता है। इन ओआरएम में आम तौर पर एक परिभाषित डेटाबेस मॉडल से डेटा पढ़ने के लिए क्वेरी विशेषता का उपयोग करके डेटाबेस तक पहुंचने के लिए एपीआई है। पायथन की डेटा संरचनाओं में संग्रहीत प्रश्नों के परिणाम फ्लास्क टेम्पलेट की मदद से प्रदर्शित किए जाते हैं।
हालांकि, डेटाबेस मॉडल का परीक्षण करते समय, परिणाम कंसोल फ्लास्क शेल में भी मुद्रित किए जा सकते हैं।
फ्लास्क-SQLAlchemy में क्वेरीज़ API का उपयोग करके डेटा को क्वेरी करने का एक ऐसा उदाहरण नीचे दिया गया है।
>>> user1 = User.query.filter_by(username='testuser').first() >>> user1.id 2 >>> user1.email u'user1@example.org'
निष्कर्ष
इस ट्यूटोरियल में, हमने एक ही प्रोजेक्ट लेआउट का उपयोग करके विभिन्न डेटाबेस से जुड़ने से संबंधित अवधारणाओं को कवर किया। हम कोड के अंदर कच्चे एसक्यूएल प्रश्नों को लिखने के प्रतिमान से दूर चले गए।
मॉडल के रूप में टेबल लिखने के लिए एक दृष्टिकोण हमें अधिक चुस्त बनाता है। हमने माइग्रेशन के रूप में डेटाबेस जानकारी संग्रहीत करने की अवधारणाओं को भी कवर किया। माइग्रेशन आगे हमारे विकास वर्कफ़्लो में अधिक लचीलापन जोड़ते हैं।
अब तक, हमने एक ऐसे श्लोक पर काम किया है जो स्वचालित रूप से फ्लास्क ऐप बिल्डर द्वारा उत्पन्न होता है। इस श्रृंखला में हमारे अगले ट्यूटोरियल में, हम एक और कदम उठाते हैं और अन्य फ्लास्क बॉयलरप्लेक और फ्लास्क ब्लूप्रिंट के साथ काम करने की अवधारणाओं पर चर्चा करते हैं।
=> सभी फ्लास्क ट्यूटोरियल यहां देखें
अनुशंसित पाठ
- पायथन फ्लास्क ट्यूटोरियल - शुरुआती के लिए फ्लास्क का परिचय
- फ्लास्क एपीआई ट्यूटोरियल उदाहरण के साथ | एपीआई के साथ फ्लास्क का विस्तार
- फ्लास्क ऐप और फ्लास्क प्रोजेक्ट लेआउट ब्लूप्रिंट और बूटस्ट्रैप के साथ
- शीर्ष 31 लोकप्रिय पायथन फ्लास्क साक्षात्कार प्रश्न उत्तर के साथ
- शीर्ष 10 डेटाबेस डिज़ाइन उपकरण जटिल डेटा मॉडल बनाने के लिए
- MongoDB डेटाबेस ट्यूटोरियल बनाएँ
- MongoDB डेटाबेस बैकअप बनाएँ