डेटाबेस तालिका बनाने और उसे डेटा से भरने के बारे में जानने के लिए इस ऐप का निर्माण करें।
पायथन की मानक लाइब्रेरी में उत्कृष्ट डेटाबेस समर्थन है, जिससे आप Django ORM जैसे बाहरी ढांचे पर भरोसा किए बिना डेटाबेस बना सकते हैं और उसके साथ इंटरैक्ट कर सकते हैं।
SQLite हल्का है और इसे Python के साथ एकीकृत करना आसान है। एक सरल उपयोगकर्ता पंजीकरण ऐप के साथ पायथन में डेटाबेस प्रोग्रामिंग के बुनियादी सिद्धांतों की खोज करें।
पायथन में डेटाबेस कैसे बनाएं
आप इस ट्यूटोरियल के लिए उपयोग किया गया कोड इसमें पा सकते हैं गिटहब रिपॉजिटरी
पायथन में डेटाबेस बनाने और उसके साथ इंटरैक्ट करने के लिए, आपको दो मुख्य चीज़ों की आवश्यकता होती है: a कनेक्शन और ए कर्सर.
एक कनेक्शन आपको मौजूदा डेटाबेस से जुड़ने या नया डेटाबेस बनाने में मदद करता है। SQLite के साथ Python में डेटाबेस कनेक्शन बनाने का तरीका यहां बताया गया है:
import sqlite3
# Connect to a (new) database
conn = sqlite3.connect('path/to/database.db')
# Close the connection
conn.close()
जोड़ना() विधि मौजूदा डेटाबेस का पथ लेती है। यदि निर्दिष्ट पथ पर कोई डेटाबेस नहीं है, तो यह एक डेटाबेस बनाएगा। जब आप डेटाबेस के साथ इंटरैक्ट करना समाप्त कर लें तो आपको अपना डेटाबेस कनेक्शन बंद कर देना चाहिए।
एक कर्सर आपको कनेक्टेड डेटाबेस के साथ इंटरैक्ट करने में मदद करता है। आप अपने पायथन प्रोग्राम में SQL क्वेरीज़ को निष्पादित करने के लिए एक कर्सर का उपयोग करेंगे। यहां कर्सर बनाने का तरीका बताया गया है:
cursor = conn.cursor()
# Close the cursor
cursor.close()
आप कॉल करके एक कर्सर बना सकते हैं कर्सर() एक खुले कनेक्शन ऑब्जेक्ट पर विधि।
पायथन में डेटाबेस लेनदेन कैसे निष्पादित करें
कर्सर का उपयोग करके, आप डेटा को पढ़ने या लिखने या डेटाबेस संरचना को बदलने के लिए SQL स्टेटमेंट, क्वेरीज़ या स्क्रिप्ट चला सकते हैं।
डेटाबेस लेनदेन निष्पादित करने के लिए आप तीन मुख्य तरीकों का उपयोग कर सकते हैं।
-
कर्सर.निष्पादित करें. यह विधि एकल SQL कथन चलाएगी। यहां बताया गया है कि आप इसका उपयोग कैसे करते हैं:
यह कोड कॉल करता है निष्पादित करना एक कर्सर पर विधि, इसे SQL स्टेटमेंट वाली एक स्ट्रिंग पास करना।cursor.execute(
CREATE TABLE IF NOT EXISTS users (
name TEXT,
age INTEGER
)
) -
कर्सर.executemany. यह विधि आपको एक ही SQL स्टेटमेंट को हर बार अलग-अलग पैरामीटर के साथ एक से अधिक बार चलाने की सुविधा देती है। इसमें दो तर्क लगते हैं: SQL कथन और एक पुनरावर्तनीय। इसका एक अच्छा उपयोग डेटाबेस में एक साथ कई ऑब्जेक्ट सम्मिलित करना है:
उपरोक्त कोड का उपयोग करता है कई निष्पादित करें डेटाबेस में कई बार मान डालने की विधि।data = [
('Alice', 25),
('Bob', 30),
('Charlie', 22)
]cursor.executemany(INSERT INTO users (name, age) VALUES (?, ?), data)
ध्यान दें ? SQL कथन में प्लेसहोल्डर। एक्जीक्यूटमैनी विधि इन्हें प्रत्येक ऑब्जेक्ट के लिए संबंधित मानों से बदल देगी।
-
कर्सर.executescript. जैसा कि नाम से पता चलता है, यह विधि आपके लिए एक SQL स्क्रिप्ट निष्पादित करेगी। आप अपने SQL स्टेटमेंट को एक अलग फ़ाइल में लिख सकते हैं और उन्हें चला सकते हैं निष्पादनस्क्रिप्ट तरीका:
with open("path/to/script.sql") as file:
sql_script = file.read()cursor.executescript(sql_script)
पायथन और SQLite3 के साथ एक पंजीकरण ऐप कैसे बनाएं
पंजीकरण ऐप के पीछे के तर्क में उपयोगकर्ता की जानकारी को पायथन के साथ प्राप्त करना और उन्हें डेटाबेस में संग्रहीत करना शामिल है। ये चरण आपको दिखाएंगे कि Python और SQLite3 के साथ एक सरल पंजीकरण प्रणाली कैसे बनाई जाए।
चरण 1: किसी मौजूदा डेटाबेस से कनेक्ट करें या एक नया डेटाबेस बनाएं
अपने ऐप के लिए एक डेटाबेस बनाकर या किसी मौजूदा से कनेक्ट करके शुरुआत करें:
import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# your app's code goes here
cursor.close()
conn.close()
उपरोक्त कोड कनेक्टेड डेटाबेस के साथ इंटरैक्ट करने के लिए एक कनेक्शन ऑब्जेक्ट और एक कर्सर बनाता है।
चरण 2: उपयोगकर्ताओं के लिए एक तालिका बनाएं
आपको पंजीकरण करते समय उपयोगकर्ताओं द्वारा प्रदान किए गए डेटा को संग्रहीत करने के लिए एक तालिका की आवश्यकता होगी। अपने कर्सर से इसे बनाने का तरीका यहां बताया गया है:
cursor.execute(
CREATE TABLE IF NOT EXISTS users (
first_name TEXT,
last_name TEXT,
email TEXT UNIQUE,
password TEXT
)
)
conn.commit()
यह कोड नामक एक तालिका बनाएगा उपयोगकर्ताओं यदि यह आपके डेटाबेस में मौजूद नहीं है। यह उपयोगकर्ता की जानकारी रखने के लिए तालिका में चार कॉलम बनाता है। उपयोगकर्ताओं को एक ही ईमेल से एकाधिक खाते बनाने से रोकने के लिए ईमेल फ़ील्ड अद्वितीय है।
को कॉल conn.commit क्वेरी को डेटाबेस में दर्ज करना महत्वपूर्ण है। इसके बिना डेटाबेस में कोई बदलाव नहीं होगा.
यदि आप एक्ज़ीक्यूटस्क्रिप्ट विधि का उपयोग करते हैं, तो आप अपनी SQL फ़ाइल के अंत में COMMIT कीवर्ड जोड़ सकते हैं, ताकि आपको conn.commit पर कॉल न करना पड़े।
चरण 3: उपयोगकर्ता डेटा एकत्र करें
पायथन फ़ंक्शंस कोड का पुन: उपयोग करना आसान बनाते हैं, इसलिए पंजीकरण सुविधा को संभालने के लिए एक फ़ंक्शन बनाना एक अच्छा विचार है। यह फ़ंक्शन उपयोगकर्ता का पहला नाम, अंतिम नाम, ईमेल और पासवर्ड एकत्र करता है।
defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")
चरण 4: पासवर्ड की शुद्धता की जाँच करें
संशोधित करें रजिस्टर_उपयोगकर्ता यह सुनिश्चित करने के लिए फ़ंक्शन कि उपयोगकर्ता एक ही पासवर्ड दो बार दर्ज करता है। यदि वे नहीं करते हैं तो आपको उन्हें पासवर्ड दोबारा दर्ज करने के लिए कहना चाहिए। आप इसे इस तरह एक लूप के साथ प्राप्त कर सकते हैं:
defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")whileTrue:
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")
# Check password correctness
if password1 == password2:
print("You have successfully registered!")
break
else:
print("Your passwords must match")
इस परिवर्तन के साथ, कोई उपयोगकर्ता तब तक पंजीकरण नहीं कर सकता जब तक कि उनके पासवर्ड मेल नहीं खाते।
चरण 5: ईमेल विशिष्टता की जाँच करें
उपयोगकर्ता तालिका बनाने वाला SQL कथन ईमेल फ़ील्ड को अद्वितीय के रूप में परिभाषित करता है। इसका मतलब यह है कि यदि कोई उपयोगकर्ता पहले से मौजूद ईमेल से साइन अप करता है तो डेटाबेस एक त्रुटि लौटाएगा। उचित रूप से कार्य करने के लिए, आपको इसकी आवश्यकता है पायथन अपवाद को संभालें:
defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")whileTrue:
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")
# Check password correctness
if password1 == password2:
try:
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")
else:
print("Your passwords must match.")
यह कोड डुप्लिकेट ईमेल से होने वाली त्रुटि को संभालने के लिए ट्राई-एक्सेप्ट ब्लॉक का उपयोग करता है। यदि डेटाबेस एक IntegrityError फेंकता है, तो while लूप जारी रहेगा, जो उपयोगकर्ता को एक अलग ईमेल पता दर्ज करने के लिए प्रेरित करेगा।
इस नमूना ऐप के लिए, यह मान लेना सुरक्षित है कि इंटीग्रिटी एरर केवल डुप्लिकेट ईमेल पते के परिणामस्वरूप होगा। एक वास्तविक ऐप में, आप संभवतः होने वाली अन्य समस्याओं से निपटने के लिए अधिक उन्नत त्रुटि-प्रबंधन का उपयोग करेंगे।
चरण 6: उपयोगकर्ता का डेटा डेटाबेस में डालें
अब जब आपने उपयोगकर्ता का डेटा एकत्र और सत्यापित कर लिया है, तो इसे डेटाबेस में जोड़ने का समय आ गया है। आप उपयोग कर सकते हैं एक SQL क्वेरी ऐसा करने के लिए। अपने प्रयास-छोड़कर ब्लॉक को इस तरह संशोधित करें:
try:
cursor.execute(
INSERT INTO users (first_name, last_name, email, password)
VALUES (?,?,?, ?)
, (first_name, last_name, email, password2))
conn.commit()
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")
संशोधित ट्राई-एक्सेप्ट ब्लॉक में, कर्सर एक SQL इंसर्ट ऑपरेशन निष्पादित करता है। अंततः conn.commit विधि SQL ऑपरेशन को डेटाबेस में भेजती है।
यदि आपने उपरोक्त सभी चरणों का पालन किया है, तो आपके पास एक एप्लिकेशन होना चाहिए जो उपयोगकर्ताओं को पंजीकृत करता है और उन्हें डेटाबेस में सहेजता है। आप जैसे ऐप का उपयोग कर सकते हैं SQLite के लिए DB ब्राउज़र अपने डेटाबेस की सामग्री देखने के लिए:
संग्रह प्रकारों के बजाय डेटाबेस का उपयोग करना
सरल डेटाबेस के लिए, आपको अपना कोड रोल करना आसान हो सकता है। हालाँकि, जैसे-जैसे आपका एप्लिकेशन बढ़ता है और आपका डेटाबेस अधिक जटिल होता जाता है, कार्य को सरल बनाने के लिए Django ORM जैसे टूल का उपयोग करने पर विचार करें।
अपने निम्न-स्तरीय डेटाबेस कौशल का अभ्यास जारी रखने के लिए, पंजीकरण कार्यक्रम के पूरक के लिए एक लॉगिन प्रणाली लागू करने का प्रयास करें।