مرحبًا بكم في اليوم الثاني من 12 يومًا من DigitalOcean! بالأمس، بدأنا في بناء خدمة تذكير بعيد الميلاد—وهي تطبيق بسيط يرسل إشعارات SMS للأعياد القادمة. 🎉 لقد قمنا بإعداد قاعدة بيانات PostgreSQL على DigitalOcean لتخزين تفاصيل الاتصال.
اليوم، سنقوم بالاتصال بتلك القاعدة باستخدام Python وإعداد مشروعنا للحفاظ على بيانات الاعتماد الحساسة بأمان.
بنهاية هذه المقالة، سيكون لديك برنامج Python يسترجع البيانات من قاعدتك بشكل آمن وجاهز للتوسع عندما نستضيفه على DigitalOcean.
✨ لماذا هذه الخطوة؟
كان إعداد القاعدة مجرد البداية. لبناء أي تطبيق ذو معنى، نحتاج إلى وسيلة للتفاعل مع تلك البيانات برمجيًا. تجعل Python من السهل الاتصال بقواعد بيانات PostgreSQL، ومع مساعدة مكتبة مثل pg8000، يمكننا العمل مع قواعد بيانات PostgreSQL في بضع أسطر من الشيفرة فقط.
للحفاظ على الأمان، سنقوم بتخزين بيانات اعتماد قاعدة البيانات الخاصة بنا في ملف .env
وتحميلها إلى البرنامج النصي الخاص بنا باستخدام python-dotenv. هذا يضمن عدم ترميز بيانات الاعتماد في البرنامج النصي، مما يجعل من الآمن مشاركة التطبيق ونشره.
🚀 ما ستتعلمه
إليك الخطة لهذا اليوم:
- تخزين بيانات الاعتماد الحساسة في ملف
.env
. - استخدام
python-dotenv
لتحميل تلك البيانات إلى البرنامج النصي الخاص بك. - كتابة برنامج نصي بلغة بايثون للاتصال بشكل آمن بقاعدة بيانات PostgreSQL الخاصة بك باستخدام
pg8000
- جلب وعرض البيانات من جدول
contacts
بنهاية هذا، سيكون لديك أساس قوي لبناء منطق التطبيق.
🛠 ما ستحتاجه
قبل أن نبدأ، إليك ما ستحتاجه:
- قاعدة البيانات التي أعددناها في اليوم الأول. TODO: رابط إلى عنوان اليوم 1
- تم تثبيت Python على جهازك المحلي (نوصي باستخدام Python 3.8+).
🧑🍳 وصفة لليوم الثاني: الاتصال بـ PostgreSQL باستخدام Python
الخطوة 1: تثبيت المكتبات المطلوبة 📦
للربط بين Python و PostgreSQL والحفاظ على بيانات الاعتماد الخاصة بنا آمنة، سنستخدم مكتبتين رئيسيتين:
- pg8000: مكتبة Python نقية تسمح لك بالاتصال بقواعد بيانات PostgreSQL والتفاعل معها.
- python-dotenv: أداة لتحميل بيانات الاعتماد الحساسة (مثل أسماء المستخدمين وكلمات المرور لقواعد البيانات) من ملف
.env
، حتى لا تضطر إلى ترميزها في نصك.
دعنا نثبتها الآن. قم بتشغيل هذا الأمر في المحطة الطرفية الخاصة بك:
نصيحة احترافية: إذا كنت تستخدم بيئة افتراضية (وهو دائمًا فكرة جيدة!)، تأكد من تفعيلها قبل تشغيل الأمر أعلاه للحفاظ على تنظيم اعتماداتك.
الخطوة 2: إنشاء ملف .env 📂
في دليل مشروعك، أنشئ ملفًا باسم .env. هنا سنخزن بيانات اعتماد قاعدة البيانات الخاصة بنا. أضف ما يلي:
استبدل القيم النائبة ببيانات الاعتماد من اليوم الأول.
نصيحة احترافية: أضف .env
إلى ملف .gitignore
الخاص بك لضمان عدم دفع بيانات اعتمادك عن طريق الخطأ إلى نظام التحكم في الإصدارات.
الخطوة 3: إنشاء سكربت بايثون 🐍
أنشئ ملفًا جديدًا يسمى connect_to_db.py
، وقم بإعداد السكربت لتحميل بيانات الاعتماد من .env
باستخدام python-dotenv
، والاتصال بقاعدة البيانات الخاصة بنا.
إليك الكود للبدء:
يقوم هذا السكربت بعدة أشياء مهمة:
- يقوم بتحميل بيانات الاعتماد بشكل آمن من ملف
.env
. - يقوم بإنشاء اتصال بقاعدة البيانات الخاصة بك باستخدام
pg8000.connect()
. - يظهر رسالة نجاح أو خطأ حسب النتيجة.
الخطوة 4: اختبار الاتصال ✅
الآن، دعنا نتأكد من أن كل شيء يعمل. قم بتشغيل السكربت الخاص بك:
إذا كانت كل الإعدادات صحيحة، يجب أن ترى:
إذا كان هناك خطأ:
- تحقق مرة أخرى من القيم في ملف .env الخاص بك.
- تأكد من إضافة عنوان IP الخاص بك إلى المصادر الموثوقة لقاعدة البيانات (انظر الخطوة 6 من اليوم الأول).
الخطوة 5: جلب البيانات من قاعدة البيانات 🔍
الآن، دعنا نوسع السكربت لجلب البيانات. قم بتحديث سكربت connect_to_db.py
ليشمل ما يلي:
هذا السكربت الآن:
- ينفذ استعلامًا لاسترجاع جميع السجلات من جدول جهات الاتصال.
- يطبّع كل سجل على وحدة التحكم.
ملاحظة: إذا كان الجدول فارغًا، فلا داعي للقلق! يمكنك التحقق من أن السكربت يعمل دون أخطاء. للاختبار، يمكنك بسرعة إضافة جهة اتصال عينة من خلال فتح قاعدة البيانات الخاصة بك باستخدام psql
(أو الأداة المفضلة لديك) وتشغيل هذا الأمر SQL:
إذا كنت بحاجة إلى تجديد معلومات حول كيفية استخدام psql أو ترغب في استكشاف أدوات واجهة المستخدم مثل pgAdmin أو TablePlus، تحقق من التعليمات في اليوم الأول.
🎁 إنهاء
إليك ما أنجزته اليوم:
✅ تم تثبيت مكتبات بايثون المطلوبة.
✅ تم الاتصال بقاعدة بيانات PostgreSQL الخاصة بك على DigitalOcean باستخدام بايثون.
✅ تم استرجاع البيانات من جدول contacts
باستخدام استعلام بسيط.
التالي: غدًا، سنبدأ في إضافة منطق للعثور على أعياد الميلاد القادمة وإرسال إشعارات SMS باستخدام Twilio. هنا يبدأ التطبيق في الانطلاق – تابعونا! 🚀
Source:
https://www.digitalocean.com/community/tutorials/connecting-to-postgresql-database-with-python