39. نتیجهگیری
بیایید کارهای انجامشده در این سند را مرور کنیم:
فصل | فایل | فهرست |
نمای کلی دوره | ||
راهاندازی محیط کار | ||
[bases] | مبانی زبان پایتون – ساختارهای زبان – انواع داده – توابع – خروجی کنسول – رشتههای قالببندی – تبدیل نوع – لیستها – دیکشنریها – عبارتهای منظم | |
[strings] | نوتاسیون رشتهای – متدهای کلاس <str> – رمزگذاری/رمزگشایی رشتهها در UTF-8 | |
[exceptions] | مدیریت استثنا | |
[fonctions] | دامنه متغیرها – ارسال پارامتر – استفاده از ماژولها – مسیر پایتون – پارامترهای نامگذاریشده – توابع بازگشتی | |
[fichiers] | خواندن/نوشتن یک فایل متنی – کار با فایلهای رمزگذاریشده در UTF-8 – کار با فایلها در jSON | |
[impots/v01] | نسخهٔ ۱ تمرین عملی: محاسبهٔ مالیات بر درآمد. این برنامه در ۱۸ نسخه موجود است – نسخهٔ ۱ یک راهحل رویهای را پیادهسازی میکند | |
[imports] | مدیریت وابستگیهای برنامه با وارد کردن ماژولها – روشی برای مدیریت وابستگیها ارائه شده است – این روش در سراسر سند به کار رفته است – مدیریت مسیر پایتون | |
[impots/v02] | نسخهٔ ۲ برنامه بر پایهٔ نسخهٔ ۱ ساخته شده است و تمام ثابتهای پیکربندی را در یک فایل پیکربندی واحد تجمیع میکند | |
[impots/v03] | نسخهٔ ۳ برنامه بر پایهٔ نسخهٔ ۲ ساخته شده است و از توابعی استفاده میکند که در یک ماژول قرار گرفتهاند – مدیریت وابستگیها از طریق پیکربندی انجام میشود – معرفی فایل jSON برای خواندن دادههای مورد نیاز جهت محاسبهٔ مالیات و نوشتن نتایج محاسبات | |
[classes/01] | کلاسها – ارثبری – متدها و ویژگیها – گترها/ستورها – سازنده – ویژگی [__dict__] | |
[classes/02] | مروری بر کلاسهای [BaseEntity] و [MyException] که در ادامه این سند استفاده میشوند – [BaseEntity] تبدیلهای شیء/فرهنگ لغت را تسهیل میکند | |
[troiscouches] | معماری لایهای و برنامهنویسی مبتنی بر رابط. این فصل روشهای برنامهنویسی مورد استفاده در سایر بخشهای این سند را ارائه میدهد | |
[impots/v04] | نسخهٔ ۴ برنامه – این نسخه راهحلی را با استفاده از معماری لایهای، برنامهنویسی مبتنی بر رابط و کلاسهایی مشتقشده از [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 مختلف فراهم میکند - نگاشت کلاسها/جدولها SQL – عملیات بر روی کلاسهای تصویر جدول SQL | |
[impots/v05] | نسخهٔ ۵ برنامهٔ محاسبهٔ مالیات – با استفاده از معماری لایهای نسخهٔ ۰۴ و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] | نسخه ۶ تمرین عملی – ایجاد یک سرویس وب jSON برای محاسبه مالیات با استفاده از معماری چندلایه – نوشتن یک کلاینت وب برای این سرور با استفاده از معماری چندلایه – برنامهنویسی کلاینت/سرور – استفاده از ماژول [requests] | |
[impots/http-servers/02] [impots/http-clients/02] | نسخهٔ ۷ تمرین برنامه – بهبودی نسبت به نسخهٔ ۶: کلاینت و سرور چندرشتهای هستند – ابزارهای [Logger] برای ثبت تبادلهای کلاینت/سرور – [SendMail] برای ارسال ایمیل به مدیر برنامه | |
[impots/http-servers/03] [impots/http-clients/03] | ورژن ۸ تمرین برنامه – ورژن ۷ با استفاده از یک جلسه بهبود یافته است | |
[xml] | مدیریت XML با ماژول [xmltodict] | |
[impots/http-servers/04] [impots/http-clients/04] | نسخه ۹ تمرین کاربردی – نسخه ۸ برای گنجاندن مبادلات کلاینت/سرور در XML اصلاح شده است؛ | |
[impots/http-servers/05] [impots/http-clients/05] | نسخه ۱۰ تمرین عملی – به جای پردازش N مؤدی از طریق N درخواست GET، از یک درخواست واحد POST استفاده میشود که در متن درخواست POST، N مؤدی گنجانده شدهاند | |
[impots/http-servers/06] [impots/http-clients/06] | نسخه ۱۱ برنامه – معماری کلاینت/سرور برنامه اصلاح شده است: لایه [métier] از سرور به کلاینت منتقل شده است | |
[impots/http-servers/07] | نسخه ۱۲ تمرین عملی – این نسخه یک سرور MVC را پیادهسازی میکند (مدل – نما – کنترلکننده) معماری را پیادهسازی میکند که بنا به درخواست کلاینت، یکی از نسخههای jSON، XML یا HTML را ارائه میدهد. این فصل نسخههای jSON و XML از سرور را پیادهسازی میکند | |
[impots/http-clients/07] | پیادهسازی کلاینتهای jSON و XML برای سرور MVC، نسخه ۱۲ | |
[impots/http-servers/07] | پیادهسازی سرور HTML در نسخه ۱۲ – با استفاده از چارچوب Bootstrap CSS – | |
[impots/http-servers/08] | نسخه ۱۳ تمرین عملی – بازسازی کد از نسخه ۱۲ – مدیریت جلسه با استفاده از ماژول [flask_session] و سرور Redis – استفاده از گذرواژههای رمزگذاریشده | |
[impots/http-servers/09] [impots/http-clients/09] | نسخه 14 تمرین عملی – پیادهسازی URL با توکن CSRF (جعلیسازی درخواست بینسایتی) | |
[impots/http-servers/10] | نسخه ۱۵ تمرین عملی – بازسازی کد نسخه ۱۴ برای رسیدگی به دو نوع اقدام: ASV (اقدام نمایش نما)، که صرفاً برای نمایش یک نما بدون تغییر وضعیت سرور استفاده میشوند، ADS (اقدام انجام یک کار)، که عملی را انجام میدهد که وضعیت سرور را تغییر میدهد – تمام این اقدامات با هدایت به یک اقدام ASV پایان مییابند – این امر تضمین میکند که تازهسازی صفحات در مرورگر کلاینت به درستی مدیریت شود | |
[impots/http-servers/11] | نسخه ۱۶ برنامه – رسیدگی به URL با پیشوند | |
[impots/http-servers/12] | نسخه ۱۷ برنامه – انتقال نسخه ۱۶ به سرور آپاچی/ویندوز | |
[impots/http-servers/13] | نسخه ۱۸ برنامه – رفع یک باگ در نسخه ۱۷ |
برنامههای محاسبه مالیات مبتنی بر مدل مشتری/سرور معماری زیر را پیادهسازی کردهاند:

لایه بالایی [web] با استفاده از معماری MVC پیادهسازی شده است:

محتوای این سند فشرده است. خوانندگانی که تا انتها با دقت مطالعه کنند، درک خوبی از برنامهنویسی وب MVC در پایتون/فلسک و به تبع آن، درک خوبی از برنامهنویسی وب MVC در سایر زبانها به دست خواهند آورد.
اطلاعات بیشتر درباره فریمورک Flask را میتوان در سند [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world] اثر نویسنده، میگل گرینبرگ، یافت. من برخی از بخشهای دوره او را خواندهام و آنها را بسیار آموزنده یافتهام. نویسنده به بسیاری از مفاهیمی میپردازد که در این سند به آنها پرداخته نشده است.