फ्लास्क और पोस्टग्रेज का उपयोग करके एक रेस्टफुल एपीआई बनाने का तरीका जानें, जिससे आपके ऐप और बाहरी सिस्टम के बीच सहज डेटा का आदान-प्रदान हो सके।

एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) विभिन्न प्रणालियों के निर्माण और कनेक्ट करने का एक महत्वपूर्ण हिस्सा हैं, जिससे आपके एप्लिकेशन अन्य सेवाओं के साथ संचार और डेटा का आदान-प्रदान कर सकते हैं।

जबकि बैकएंड डेवलपमेंट में सिर्फ एपीआई लिखने से ज्यादा शामिल है - इसमें सर्वर-साइड बिजनेस लॉजिक लिखना, कुशल सिस्टम डिजाइन करना भी शामिल है आर्किटेक्चर, और अन्य प्रमुख कार्य, फ्लास्क (एक हल्का पायथन फ्रेमवर्क), और पोस्टग्रेज के साथ एक सरल CRUD REST API बनाने का तरीका जानने के लिए आगे पढ़ें। डेटाबेस।

बैकएंड एपीआई बनाने के लिए फ्लास्क का उपयोग करना

फ्लास्क हल्का है पायथन ढांचा जो रिएक्ट और एंगुलर जैसी विभिन्न तकनीकों का उपयोग करके लिखे गए वेब क्लाइंट के लिए बैकएंड एपीआई लिखने को आसान बनाने के लिए कई सुविधाएँ प्रदान करता है।

आप इस प्रोजेक्ट का सोर्स कोड इसमें पा सकते हैं गिटहब रिपॉजिटरी.

यह मार्गदर्शिका आपको लेखन के माध्यम से चलाएगी REST API जो चार CRUD ऑपरेशनों को लागू करता है

instagram viewer
: पोस्टग्रेज डेटाबेस में संग्रहीत उपयोगकर्ता डेटा को प्रबंधित करने के लिए बनाएं, पढ़ें, अपडेट करें और हटाएं।

एक पोस्टग्रेज डेटाबेस सेट करें

आरंभ करने के लिए, पर जाएँ एलीफेंटएसक्यूएल, क्लाउड-आधारित डेटाबेस होस्टिंग समाधान जो क्लाउड पर पोस्टग्रेज डेटाबेस बनाने और प्रबंधित करने, साइन अप करने और आपके खाते के अवलोकन पृष्ठ पर लॉग इन करने के लिए एक मंच प्रदान करता है।

क्लिक करें नया उदाहरण बनाएँ आपके आवेदन के लिए एक नया उदाहरण बनाने के लिए बटन।

अपने इंस्टेंस का नाम प्रदान करें और मुफ्त योजना का चयन करें, और अंत में उस क्षेत्र का चयन करें जहां सेटअप प्रक्रिया को पूरा करने के लिए इंस्टेंस को होस्ट किया जाएगा।

उदाहरण बन जाने के बाद, सेटिंग पृष्ठ पर नेविगेट करें और कॉपी करें डेटाबेस यूआरएल, आप इसका उपयोग डेटाबेस के साथ संबंध स्थापित करने के लिए करेंगे।

फ्लास्क सर्वर सेट करें

अपने टर्मिनल पर, एक प्रोजेक्ट फ़ोल्डर बनाएँ, और वर्तमान निर्देशिका को उस नए फ़ोल्डर में बदलें।

फ्लास्क स्थापित करने से पहले, पुष्टि करें कि आप अपनी मशीन पर पायथन संस्करण 3.6+ चला रहे हैं। यदि नहीं, तो आपको नवीनतम स्थापित करने की आवश्यकता है अजगर संस्करण।

अजगर --संस्करण

बाद में स्थापित करें virtualenv, एक पृथक आभासी विकास वातावरण बनाने के लिए।

पिप वर्चुअलएन्व स्थापित करें

अगला, वर्चुअल वातावरण बनाने के लिए नीचे दी गई कमांड चलाएँ।

virtualenv venv

अंत में, आभासी वातावरण को सक्रिय करें।

# विंडोज़ पर: 
.\venv\Scripts\active
# यूनिक्स या MacOS पर:
स्रोत venv/bin/active

आवश्यक पैकेज स्थापित करें

अपने प्रोजेक्ट फ़ोल्डर की रूट डायरेक्टरी में, एक बनाएँ आवश्यकताएँ। txt फ़ाइल करें और इन पैकेजों को जोड़ें।

फ्लास्क
python-dotenv
psycopg2-बाइनरी

अगला, संकुल स्थापित करें।

पाइप इंस्टॉल -r आवश्यकताएँ। txt

psycopg2-बाइनरी एक पायथन लाइब्रेरी है जो एक मिडलवेयर के रूप में कार्य करती है, जिससे आप अपने पोस्टग्रेज डेटाबेस के साथ कनेक्शन स्थापित कर सकते हैं और विभिन्न डेटाबेस संचालन कर सकते हैं।

अंत में, एक बनाएँ .env फ़ाइल करें और अपना डेटाबेस URL पेस्ट करें।

DATABASE_URL= आपका डेटाबेस URL

कुप्पी सर्वर बनाएँ

अंत में, एक बनाएँ app.py रूट डायरेक्टरी में फाइल करें, और नीचे कोड जोड़ें।

आयात ओएस 
आयात psycopg2
से dotenv आयात load_dotenv
से फ्लास्क आयात कुप्पी, अनुरोध, jsonify

load_dotenv ()

ऐप = फ्लास्क (__name__)
url = os.getenv ("DATABASE_URL")
कनेक्शन = psycopg2.connect (यूआरएल)

@app.get("/")
डीईएफ़घर():
वापस करना"हैलो वर्ल्ड"

यह कोड फ्लास्क एप्लिकेशन का एक उदाहरण सेट करता है। यह तब URL स्ट्रिंग में निर्दिष्ट डेटाबेस से एक कनेक्शन बनाता है और अंत में, एक होम रूट सेट करता है जो प्रतिक्रिया के रूप में एक स्ट्रिंग देता है।

CRUD संचालन को सक्षम करने वाली REST API बनाएं

अब, REST API का निर्माण करें जो चार CRUD ऑपरेशनों को लागू करता है।

एक डेमो टेबल बनाएं

डेटाबेस के भीतर एक उपयोगकर्ता तालिका बनाएँ।

App.py फ़ाइल में, नीचे दिया गया कोड जोड़ें।

CREATE_USERS_TABLE = "मौजूद उपयोगकर्ता नहीं होने पर टेबल बनाएं (आईडी सीरियल प्राथमिक कुंजी, नाम टेक्स्ट);"

साथ कनेक्शन:
साथ कनेक्शन.कर्सर () जैसा कर्सर:
कर्सर निष्पादित करें (CREATE_USERS_TABLE)

  • यह कोड एक नया PostgreSQL टेबल बनाता है जिसे कहा जाता है उपयोगकर्ताओं दो कॉलम के साथ।
  • यह डेटाबेस के साथ संबंध स्थापित करने के लिए psycopg2 कनेक्शन विधि का उपयोग करता है और इसका उपयोग करके एक नया कर्सर ऑब्जेक्ट बनाता है कनेक्शन.कर्सर विधि जिसका उपयोग निष्पादन के लिए किया जाता है एसक्यूएल प्रश्न.

1. पोस्ट पद्धति को परिभाषित कीजिए

डेटा जोड़ने के लिए पोस्ट रूट बनाएं।

INSERT_USER_RETURN_ID = "उपयोगकर्ताओं (नाम) मूल्यों (%s) रिटर्निंग आईडी में डालें;"
@app.route("/api/user", तरीके=["POST"])
डीईएफ़उपयोगकर्ता बनाइये():
डेटा = अनुरोध.get_json ()
नाम = डेटा ["नाम"]
साथ कनेक्शन:
साथ कनेक्शन.कर्सर () जैसा कर्सर:
कर्सर निष्पादित करें (INSERT_USER_RETURN_ID, (नाम,))
user_id = कर्सर.fetchone () [0]
वापस करना {"पहचान": उपयोगकर्ता पहचान, "नाम": नाम, "संदेश": च" उपयोगकर्ता {नाम} बनाया था।"}, 201
  • SQL क्वेरी स्ट्रिंग एक SQL स्टेटमेंट को परिभाषित करती है जिसे उपयोग करके निष्पादित किया जाएगा कर्सर निष्पादित करें उपयोगकर्ता के नाम के साथ एक नई पंक्ति सम्मिलित करने की विधि उपयोगकर्ता' डेटाबेस में तालिका। यह नव निर्मित उपयोगकर्ता की आईडी लौटाता है।
  • उपयोगकर्ता बनाइये फ़ंक्शन डेटाबेस में स्टोर करने के लिए पैरामीटर के रूप में नाम लेता है जबकि कर्सर.fetchone विधि को नव निर्मित उपयोगकर्ता की आईडी पुनर्प्राप्त करने के लिए कहा जाता है। अंत में, नए बनाए गए उपयोगकर्ता की आईडी और नाम वाला एक शब्दकोश, एक संदेश के साथ जो यह दर्शाता है कि उपयोगकर्ता सफलतापूर्वक बनाया गया था, वापस आ गया है।

2. GET विधि को परिभाषित कीजिए

दो प्राप्त मार्गों को परिभाषित करें: एक, डेटाबेस में सभी डेटा को पुनः प्राप्त करने के लिए, और दो, आईडी के आधार पर डेटाबेस से विशिष्ट डेटा को पुनः प्राप्त करने के लिए।

SELECT_ALL_USERS = "उपयोगकर्ताओं से * चुनें;"

@app.route("/api/user", मेथड्स=["GET"])
डीईएफ़get_all_users():
साथ कनेक्शन:
साथ कनेक्शन.कर्सर () जैसा कर्सर:
कर्सर.निष्पादन (SELECT_ALL_USERS)
उपयोगकर्ता = कर्सर.फेटचॉल ()
अगर उपयोगकर्ता:
परिणाम = []
के लिए उपयोगकर्ता में उपयोगकर्ता:
परिणाम.परिशिष्ट({"पहचान": उपयोगकर्ता [0], "नाम": उपयोगकर्ता [1]})
वापस करना jsonify (परिणाम)
अन्य:
वापस करना jsonify({"गलती": एफ "उपयोगकर्ता नहीं मिला।"}), 404

@app.route("/api/user/", तरीके = ["प्राप्त करें"])
डीईएफ़get_user(उपयोगकर्ता पहचान):
साथ कनेक्शन:
साथ कनेक्शन.कर्सर () जैसा कर्सर:
कर्सर.निष्पादित ("उपयोगकर्ताओं से चुनें * जहां आईडी =% s", (उपयोगकर्ता पहचान,))
उपयोगकर्ता = कर्सर.fetchone ()
अगर उपयोगकर्ता:
वापस करना jsonify({"पहचान": उपयोगकर्ता [0], "नाम": उपयोगकर्ता [1]})
अन्य:
वापस करना jsonify({"गलती": च" आईडी के साथ उपयोगकर्ता {उपयोगकर्ता पहचान} नहीं मिला।"}), 404

  • यह पहला एपीआई मार्ग डेटाबेस से सभी उपयोगकर्ताओं को पुनः प्राप्त करने के लिए HTTP GET अनुरोधों को संभालता है। यह डेटाबेस से सभी उपयोगकर्ताओं को पुनः प्राप्त करता है और प्रतिक्रिया में JSON प्रारूप में परिणाम देता है।
  • यह दूसरा एपीआई मार्ग डेटाबेस से किसी विशिष्ट उपयोगकर्ता के डेटा को पुनः प्राप्त करने के लिए HTTP GET अनुरोधों को संभालता है। यह अंदर ले जाता है उपयोगकर्ता पहचान एक पैरामीटर के रूप में, डेटाबेस से उपयोगकर्ता के डेटा को पुनः प्राप्त करता है, और प्रतिक्रिया में JSON प्रारूप में परिणाम देता है।

3. पुट विधि को परिभाषित कीजिए

डेटाबेस में संग्रहीत डेटा को अपडेट करने के लिए पुट रूट बनाएं।

@app.route("/api/user/", विधियाँ = ["डालें"])
डीईएफ़update_user(उपयोगकर्ता पहचान):
डेटा = अनुरोध.get_json ()
नाम = डेटा ["नाम"]
साथ कनेक्शन:
साथ कनेक्शन.कर्सर () जैसा कर्सर:
कर्सर निष्पादित करें (UPDATE_USER_BY_ID, (नाम, user_id))
अगर कर्सर.रोकाउंट == 0:
वापस करना jsonify({"गलती": च" आईडी के साथ उपयोगकर्ता {उपयोगकर्ता पहचान} नहीं मिला।"}), 404
वापस करना jsonify({"पहचान": उपयोगकर्ता पहचान, "नाम": नाम, "संदेश": च" आईडी के साथ उपयोगकर्ता {उपयोगकर्ता पहचान} अपडेट किया गया।"})
  • update_user फ़ंक्शन उपयोगकर्ता आईडी पैरामीटर को इनपुट के रूप में लेता है और डेटाबेस में निर्दिष्ट उपयोगकर्ता के नाम को अपडेट करने के लिए इसका उपयोग करता है।
  • यदि अपडेट ऑपरेशन सफल होता है, तो यह अपडेटेड यूजर आईडी, नाम और प्रतिक्रिया में एक सफलता संदेश के साथ एक JSON ऑब्जेक्ट देता है।

4. DELETE विधि को परिभाषित करें

डेटाबेस में किसी विशिष्ट उपयोगकर्ता के संग्रहीत डेटा को हटाने के लिए डिलीट रूट को लागू करें।

@app.route("/api/user/", तरीके = ["हटाएं"])
डीईएफ़उपभोक्ता मिटायें(उपयोगकर्ता पहचान):
साथ कनेक्शन:
साथ कनेक्शन.कर्सर () जैसा कर्सर:
कर्सर निष्पादित करें (DELETE_USER_BY_ID, (user_id,))
अगर कर्सर.रोकाउंट == 0:
वापस करना jsonify({"गलती": च" आईडी के साथ उपयोगकर्ता {उपयोगकर्ता पहचान} नहीं मिला।"}), 404
वापस करना jsonify({"संदेश": च" आईडी के साथ उपयोगकर्ता {उपयोगकर्ता पहचान} हटा दिया।"})
  • यह एपीआई मार्ग डेटाबेस से किसी विशिष्ट उपयोगकर्ता की उनकी आईडी के आधार पर हटाने की कार्यक्षमता को संभालता है। यदि उपयोगकर्ता नहीं मिलता है, तो यह त्रुटि संदेश के साथ 404 स्थिति कोड लौटाता है। हालाँकि, यदि डिलीट ऑपरेशन सफल होता है, तो यह प्रतिक्रिया में एक सफल संदेश के साथ JSON ऑब्जेक्ट लौटाता है।

फ्लास्क के साथ REST API लिखना

यह मार्गदर्शिका दर्शाती है कि कैसे फ्लास्क और पोस्टग्रेज का उपयोग करके एक सरल CRUD REST API का निर्माण किया जाए, कैसे एक डेटाबेस कनेक्शन स्थापित करने और डेटा को पढ़ने और लिखने के लिए विभिन्न SQL प्रश्नों को निष्पादित करने के लिए a डेटाबेस। अब आप एक साधारण REST API बना सकते हैं जो किसी भी वेब एप्लिकेशन में आवश्यक चार CRUD संचालन को संभाल सकता है।

चाहे आप एक साधारण ब्लॉग बना रहे हों या एक जटिल वेब एप्लिकेशन, फ्लास्क और पोस्टग्रेज एक मजबूत बैकएंड सिस्टम बनाने के लिए आवश्यक शक्तिशाली सुविधाएँ और क्षमताएँ प्रदान करते हैं। वैकल्पिक रूप से, आप RESTful API बनाने के लिए FastAPI और MongoDB जैसी अन्य तकनीकों का उपयोग कर सकते हैं।