Skip to content

39. الخلاصة

دعونا نستعرض العمل المنجز في هذا المستند:

الفصل
مستودع الكود
المحتويات
   
 
نظرة عامة على المقرر
 
إعداد بيئة العمل
[الأساسيات]
أساسيات لغة Python
– هياكل اللغة – أنواع البيانات
– الدوال – إخراج وحدة التحكم –
سلاسل التنسيق – تحويل الأنواع
– القوائم – القواميس –
التعبيرات
[سلاسل]
ترميز السلسلة – طرق فئة
فئة <str> – ترميز/فك ترميز
السلاسل في UTF-8
[الاستثناءات]
معالجة الاستثناءات
[الوظائف]
نطاق المتغيرات – المعلمات
التمرير – استخدام الوحدات النمطية – مسار
مسار Python – المعلمات
المعلمات –
التكرارية
[الملفات]
قراءة/كتابة ملف نصي –
التعامل مع الملفات المشفرة بـ UTF-8
التعامل مع ملفات JSON
[taxes/v01]
الإصدار 1 من التطبيق
تمرين: حساب ضريبة الدخل
. التطبيق متوفر في 18
إصدارات – الإصدار 1 يطبق
حل إجرائي
[الواردات]
إدارة تبعيات التطبيق
التبعيات عن طريق استيراد
الوحدات النمطية – يتم عرض طريقة
طريقة لإدارة التبعيات
– يتم استخدامها في جميع أنحاء
الوثيقة – إدارة
مسار Python
[impots/v02]
الإصدار 2 من التطبيق
تستند إلى الإصدار 1 من خلال تجميع
جميع ثوابت التكوين في
ملف تكوين يقوم أيضًا
مسار Python
[impots/v03]
الإصدار 3 من التطبيق
تستند إلى الإصدار 2 باستخدام
الوظائف المُغلفة في
وحدة نمطية — تتم
يتم التعامل مع إدارة التبعيات عبر
التكوين — إدخال
ملف JSON لقراءة البيانات المطلوبة
لحساب الضرائب وكتابة
نتائج الحساب
[classes/01]
الفئات – الوراثة – الطرق
والخصائص – أدوات الاسترجاع/التعيين –
المنشئ – [__dict__]
الخاصية
[classes/02]
مقدمة إلى فئتي [BaseEntity]
و [MyException] المستخدمتين
في بقية
الوثيقة – [BaseEntity]
تسهل تحويلات الكائنات/القواميس
التحويلات
[ثلاث طبقات]
البنية الطبقية و
البرمجة القائمة على الواجهة.
يقدم هذا الفصل
طرق البرمجة المستخدمة
في بقية
الوثيقة
[taxes/v04]
الإصدار 4 من التطبيق – هذا
تنفذ هذه النسخة حلاً
بهيكلية متعددة الطبقات،
والبرمجة القائمة على الواجهات، و
استخدام فئات مشتقة من
[BaseEntity] و
[MyException]
[قواعد البيانات/mysql]
تثبيت نظام إدارة قواعد البيانات MySQL
الاتصال بقاعدة البيانات –
إنشاء جدول – تنفيذ
أوامر SQL SELECT و UPDATE و DELETE
و INSERT
المعاملات – استعلامات
استعلامات SQL
[قواعد البيانات/postgresql]
تثبيت نظام إدارة قواعد البيانات PostgreSQL
– الاتصال بقاعدة البيانات –
إنشاء جدول – تنفيذ
أوامر SQL SELECT و UPDATE و DELETE
و INSERT
المعاملات – استعلامات
استعلامات SQL
[قواعد البيانات/أي نظام إدارة قواعد البيانات]
كتابة كود مستقل عن نظام إدارة قواعد البيانات
[قواعد البيانات/sqlalchemy]
SqlAlchemy ORM (Object-
) – ORM
يتيح نهجًا موحدًا لـ
العمل مع أنظمة إدارة قواعد البيانات المختلفة –
ربط الفئات بجداول SQL
العمليات على الفئات
تمثل جداول SQL
[taxes/v05]
الإصدار 5 من تطبيق حساب الضرائب
– استخدام بنية الطبقات
من الإصدار 04 و
SqlAlchemy ORM للعمل
مع أنظمة إدارة قواعد البيانات MySQL وPostgreSQL
أنظمة إدارة قواعد البيانات
[inet]
البرمجة على الويب – بروتوكول TCP/IP
(بروتوكول التحكم في الإرسال
/ بروتوكول الإنترنت) –
بروتوكولات HTTP (بروتوكول نقل النص التشعبي
) – SMTP
(بروتوكول نقل البريد البسيط)
POP (بروتوكول مكتب البريد) –
IMAP (بروتوكول الوصول إلى رسائل الإنترنت
)
[flask]
خدمات الويب باستخدام إطار عمل الويب Flask
– عرض
صفحة HTML – خدمة ويب JSON
– طلبات GET و POST
إدارة جلسة الويب
[impots/http-servers/01]
[taxes/http-clients/01]
الإصدار 6 من التطبيق
تمرين – إنشاء خدمة ويب JSON
لحساب الضرائب باستخدام
بنية متعددة الطبقات – كتابة
عميل ويب لهذا الخادم باستخدام
بنية متعددة الطبقات –
برمجة العميل/الخادم –
باستخدام وحدة [requests]
[taxes/http-servers/02]
[الضرائب/عملاء HTTP/02]
الإصدار 7 من التطبيق
تمرين – تم تحسين الإصدار 6:
العميل والخادم
متعدد الخيوط – [Logger]
أدوات لتسجيل تبادلات العميل/الخادم
التبادلات – [SendMail] لإرسال
رسالة بريد إلكتروني إلى
التطبيق
[taxes/http-servers/03]
[الضرائب/عملاء http/03]
الإصدار 8 من التطبيق
تمرين – تم تحسين الإصدار 7
باستخدام جلسة ويب
[xml]
إدارة XML (لغة الترميز الموسعة
) باستخدام وحدة
وحدة [xmltodict]
[taxes/http-servers/04]
[impots/http-clients/04]
الإصدار 9 من التطبيق
تمرين – تم تعديل الإصدار 8
لتضمين التبادلات بين العميل والخادم
في XML؛
[taxes/http-servers/05]
[الضرائب/عملاء http/05]
الإصدار 10 من التطبيق
تمرين – بدلاً من معالجة N
دافع ضرائب عبر N طلبات GET، يتم استخدام
يتم استخدام طلب POST واحد مع
مع دافعي الضرائب N في نص
.
[taxes/http-servers/06]
[الضرائب/عملاء HTTP/06]
الإصدار 11 من التطبيق
تمرين –
بنية العميل/الخادم
: تنتقل طبقة [الأعمال]
من الخادم إلى
العميل
[الضرائب/خوادم http/07]
الإصدار 12 من
تمرين – هذا الإصدار يطبق
خادم MVC (نموذج – عرض –
) يقدم
JSON و XML و HTML
بشكل متبادل، اعتمادًا على
طلب العميل. هذا الفصل
يُنفذ إصداري JSON و XML
للخادم
[impots/http-clients/07]
تنفيذ عملاء JSON و
XML لخادم MVC
في الإصدار 12
[impots/http-servers/07]
تنفيذ خادم HTML
في الإصدار 12 – باستخدام
إطار عمل Bootstrap CSS
[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 (عرض الإجراء
Show View)، والتي تُستخدم فقط
لعرض طريقة عرض دون
تعديل حالة الخادم، و
ADS (Action Do Something
والتي تقوم بتنفيذ إجراء
يغير حالة الخادم — تنتهي جميع هذه
تنتهي جميعها بإعادة توجيه إلى
إجراء ASV — وهذا يسمح
التعامل السليم مع عمليات تحديث الصفحة
في متصفح العميل
[impots/http-servers/11]
الإصدار 16 من التطبيق –
إدارة عناوين URL باستخدام البادئات
[impots/http-servers/12]
الإصدار 17 من التطبيق –
نقل الإصدار 16 إلى
خادم Apache/Windows
[impots/http-servers/13]
الإصدار 18 من التطبيق –
يصلح خطأ في الإصدار 17

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

Image

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

Image

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

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