Skip to content

39. الخلاصة

دعونا نلخص العمل الذي تم إنجازه في هذا المستند:

الفصل
ملف
المحتوى
   
 
مقدمة عن المقرر
 
إعداد بيئة العمل
[bases]
أساسيات لغة Python – هياكل اللغة – أنواع البيانات – الدوال – عرض وحدة التحكم – سلاسل التنسيق – تغيير الأنواع – القوائم – القواميس – التعبيرات النمطية
[strings]
كتابة سلاسل الأحرف – طرق فئة <str> – ترميز/فك ترميز سلاسل الأحرف في UTF-8
[exceptions]
معالجة الاستثناءات
[fonctions]
نطاق المتغيرات – طريقة تمرير المعلمات – استخدام الوحدات النمطية – مسار Python – المعلمات المسماة – الدوال التكرارية
[fichiers]
قراءة/كتابة ملف نصي – إدارة الملفات المشفرة في UTF-8 – إدارة الملفات jSON
[impots/v01]
الإصدار 1 من تمرين التطبيق، حساب ضريبة الدخل. يتوفر التطبيق في 18 إصدارًا – الإصدار 1 ينفذ حلاً إجرائيًا
[imports]
إدارة تبعيات التطبيق عن طريق استيراد الوحدات النمطية – يتم عرض طريقة لإدارة التبعيات – تُستخدم هذه الطريقة في جميع أجزاء الوثيقة – إدارة مسار Python (Python Path)
[impots/v02]
تستند النسخة 2 من التطبيق إلى النسخة 1 من خلال تجميع جميع ثوابت التكوين في ملف تكوين واحد
[impots/v03]
تستند النسخة 3 من التطبيق إلى النسخة 2 باستخدام وظائف مغلفة في وحدة نمطية – تتم إدارة التبعيات عن طريق التكوين – إدخال ملف jSON لقراءة البيانات اللازمة لحساب الضريبة وكتابة نتائج الحسابات
[classes/01]
الفئات – التوريث – الطرق والخصائص – getters / setters – المنشئ – الخاصية [__dict__]
[classes/02]
عرض للفئتين [BaseEntity] و [MyException] المستخدمتين في بقية الوثيقة – [BaseEntity] تسهل عمليات التحويل بين الكائنات والقواميس
[troiscouches]
الهندسة الطبقية والبرمجة عبر الواجهات. يعرض هذا الفصل أساليب البرمجة المستخدمة في بقية الوثيقة
[impots/v04]
الإصدار 4 من التطبيق – ينفذ هذا الإصدار حلاً يعتمد على بنية الطبقات، والبرمجة عبر الواجهات، واستخدام الفئات المشتقة من [BaseEntity] و [MyException]
[databases/mysql]
تثبيت SGBD MySQL – الاتصال بقاعدة البيانات – إنشاء جدول – تنفيذ الأوامر SQL SELECT، UPDATE، DELETE، INSERT – المعاملة – الاستعلامات المحددة المعلمات SQL
[databases/postgresql]
تثبيت SGBD PostgreSQL – الاتصال بقاعدة البيانات – إنشاء جدول – تنفيذ الأوامر SQL SELECT، UPDATE، DELETE، INSERT – المعاملة – الاستعلامات المحددة المعلمات SQL
[databases/anysgbd]
كتابة كود مستقل عن SGBD
[databases/sqlalchemy]
ORM (أداة التعيين العلائقي للكائنات) SqlAlchemy – يتيح ORM العمل بشكل موحد مع مختلف SGBD - فئات التعيين / الجداول – عمليات على فئات الصور الخاصة بالجداول
[impots/v05]
الإصدار 5 من تطبيق حساب الضريبة – استخدام بنية الطبقات الخاصة بالإصدار 04 وORM وSqlAlchemy للعمل مع SGBD وMySQL وPostgreSQL
[inet]
برمجة الإنترنت – بروتوكول TCP / IP (بروتوكول التحكم في النقل / بروتوكول الإنترنت) – بروتوكولات HTTP (بروتوكول النقل HyperText) – SMTP (بروتوكول نقل البريد البسيط) – POP (بروتوكول مكتب البريد) – IMAP (بروتوكول الوصول إلى رسائل الإنترنت)
[flask]
خدمات الويب باستخدام إطار عمل Flask – عرض صفحة HTML – خدمة ويب jSON – الاستعلامات GET و POST – إدارة جلسة الويب
[impots/http-servers/01]
[impots/http-clients/01]
الإصدار 6 من التمرين التطبيقي - إنشاء خدمة ويب jSON لحساب الضريبة باستخدام بنية متعددة الطبقات - كتابة عميل ويب لهذا الخادم باستخدام بنية متعددة الطبقات – برمجة العميل/الخادم – استخدام الوحدة النمطية [requests]
[impots/http-servers/02]
[impots/http-clients/02]
الإصدار 7 من تمرين التطبيق – تم تحسين الإصدار 6: أصبح كل من العميل والخادم متعدد الخيوط – الأدوات المساعدة [Logger] لتسجيل التبادلات بين العميل والخادم – [SendMail] لإرسال بريد إلكتروني إلى مسؤول التطبيق
[impots/http-servers/03]
[impots/http-clients/03]
الإصدار 8 من تمرين التطبيق – تم تحسين الإصدار 7 باستخدام جلسة عمل
[xml]
الإدارة XML باستخدام الوحدة النمطية [xmltodict]
[impots/http-servers/04]
[impots/http-clients/04]
الإصدار 9 من التمرين التطبيقي – تم تعديل الإصدار 8 ليشمل التبادلات بين العميل والخادم في XML؛
[impots/http-servers/05]
[impots/http-clients/05]
الإصدار 10 من التمرين التطبيقي – بدلاً من معالجة N دافع ضرائب عبر N طلبات GET، يتم استخدام طلب واحد POST مع إدراج N دافع ضرائب في نص الطلب POST
[impots/http-servers/06]
[impots/http-clients/06]
الإصدار 11 من تمرين التطبيق – تم تعديل بنية العميل/الخادم للتطبيق: انتقلت الطبقة [métier] من الخادم إلى العميل
[impots/http-servers/07]
الإصدار 12 من التمرين التطبيقي – ينفذ هذا الإصدار خادم MVC (Model – View – وحدة التحكم) يقدم، بناءً على طلب العميل، jSON وXML وHTML دون تمييز. يُنفذ هذا الفصل الإصدارين jSON وXML من الخادم
[impots/http-clients/07]
تنفيذ عملاء jSON و XML لخادم MVC من الإصدار 12
[impots/http-servers/07]
تنفيذ الخادم HTML من الإصدار 12 – استخدام إطار العمل CSS Bootstrap
[impots/http-servers/08]
الإصدار 13 من التمرين التطبيقي - إعادة هيكلة كود الإصدار 12 – إدارة الجلسة باستخدام الوحدة النمطية [flask_session] وخادم Redis – استخدام كلمات مرور مشفرة
[impots/http-servers/09]
[impots/http-clients/09]
الإصدار 14 من التمرين التطبيقي – تنفيذ URL باستخدام رمز CSRF (تزوير الطلبات عبر المواقع)
[impots/http-servers/10]
الإصدار 15 من التمرين التطبيقي – إعادة هيكلة كود الإصدار 14 لإدارة نوعين من الإجراءات: ASV (إجراء عرض) التي تُستخدم فقط لعرض واجهة دون تغيير حالة الخادم، ADS (إجراء «Do Something») الذي يقوم بإجراء يغير حالة الخادم – تنتهي جميع هذه الإجراءات بإعادة توجيه إلى إجراء ASV – وهذا يسمح بإدارة عمليات تحديث الصفحة في متصفح العميل بشكل صحيح
[impots/http-servers/11]
الإصدار 16 من التطبيق – إدارة URL مع البادئة
[impots/http-servers/12]
الإصدار 17 من التطبيق – نقل الإصدار 16 إلى خادم Apache / Windows
[impots/http-servers/13]
الإصدار 18 من التطبيق – يصحح خللاً في الإصدار 17

تطبق تطبيقات العميل/الخادم الخاصة بحساب الضرائب البنية التالية:

Image

تم تنفيذ الطبقة [web] المذكورة أعلاه باستخدام بنية MVC:

Image

محتوى الوثيقة مكثف. سيحصل القارئ الذي سيقرأها حتى النهاية على فهم جيد لبرمجة الويب MVC بلغة Python / Flask، بالإضافة إلى فهم جيد لبرمجة الويب MVC بلغات برمجة أخرى.

يمكن العثور على معلومات إضافية حول إطار العمل Flask في الوثيقة [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world] للمؤلف ميغيل غرينبرغ. لقد قرأت بعض أجزاء من دروسه وبدت لي مفيدة جدًا من الناحية التعليمية. يعرض المؤلف العديد من المفاهيم التي لم يتم تناولها في هذه الوثيقة.