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

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

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