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 |
تطبق تطبيقات العميل/الخادم الخاصة بحساب الضرائب البنية التالية:

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

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