<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های رضا رضایی</title>
        <link>https://virgool.io/feed/@rezarezaeedev</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 01:37:34</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>رضا رضایی</title>
            <link>https://virgool.io/@rezarezaeedev</link>
        </image>

                    <item>
                <title>فصل اول - اپیزود ۵ - ترجمه کتاب Django 5 By Example</title>
                <link>https://virgool.io/@rezarezaeedev/%D9%81%D8%B5%D9%84-%D8%A7%D9%88%D9%84-%D8%A7%D9%BE%DB%8C%D8%B2%D9%88%D8%AF-%DB%B5-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-django-5-by-example-django-settings-vevejrzvgngm</link>
                <description>توی این اپیزود سعی داریم تنظیمات پروژه جنگو را یاد بگیریم و کمی بیشتر درمورد فایل settings.py و موارد داخلش بدونیم.ترجمه کتاب Django 5 By Example - فصل اول - اپیزود ۵ - یادگیری تنظیمات جنگو و فایل settings.pyبیایید فایل settings.py را باز کنیم و نگاهی به تنظیمات پروژه بیندازیم.جنگو تعدادی تنظیمات را به‌صورت پیش‌فرض در این فایل قرار می‌دهد، اما این‌ها فقط بخشی از تمام تنظیمات موجود در Django هستند.شما می‌توانید همه‌ی تنظیمات و مقادیر پیش‌فرض جنگو را در این آدرس ببینید:https://docs.djangoproject.com/en/5.0/ref/settings/بیایید برخی از تنظیمات مهم پروژه را بررسی کنیم:DEBUG: حالت خطایابی - یک مقدار بولین (True / False) است که حالت دیباگ پروژه را فعال یا غیرفعال می‌کند.اگر مقدار آن True باشد، زمانی که در برنامه خطای مدیریت‌نشده‌ای (uncaught exception) رخ دهد، جنگو صفحه‌ی خطای کامل و جزئیات فنی را نمایش می‌دهد.وقتی پروژه را به محیط production منتقل می‌کنید، باید مقدار آن را False قرار دهید. هرگز وبسایتی را با حالت DEBUG = True در محیط production منتشر نکنید، چون ممکن است اطلاعات حساس پروژه نمایش داده شود.ALLOWED_HOSTS: تا زمانی که حالت خطایابی فعال باشد یا تست‌ها درحال اجرا باشند، این تنظیم اعمال نمی‌شود.اما وقتی پروژه را به production منتقل کنید و DEBUG=False شود، باید دامنه یا هاست سایت خود را در این لیست قرار دهید تا جنگو اجازه دهد درخواست‌ها از آن دامنه مجاز به سرویس‌دهی شوند.INSTALLED_APPS: کی از تنظیماتی است که تقریباً در همه پروژه‌ها باید آن را ویرایش کنید.این تنظیم مشخص می‌کند که کدام اپلیکیشن‌ها در سایت فعال هستند.به‌صورت پیش‌فرض Django این اپلیکیشن‌ها را اضافه می‌کند:django.contrib.admin - پنل مدیریت وبسایتdjango.contrib.auth - فریم‌ورک احراز هویت (authentication)django.contrib.contenttypes - سیستم مدیریت انواع محتوا در جنگوdjango.contrib.sessions - سیستم مدیریت سشن هاdjango.contrib.messages - سیستم ارسال پیام‌ها بین درخواست‌هاdjango.contrib.staticfiles - سیستمی برای مدیریت فایل‌های استاتیکMIDDLEWARE: لیستی از میان‌افزارها است که هنگام پردازش درخواست‌ها اجرا می‌شوند.ROOT_URLCONF: ماژول پایتونی را مشخص می‌کند که URLهای اصلی پروژه در آن تعریف شده‌اند.DATABASES: یک دیکشنری شامل تنظیمات تمام پایگاه‌های داده‌ی پروژه است.همیشه باید حداقل یک دیتابیس با نام default وجود داشته باشد.تنظیمات پیش‌فرض جنگو استفاده از SQLite3 است.LANGUAGE_CODE: زبان پیشفرض پروژه جنگو را مشخص میکند.USE_TZ: مشخص می‌کند که آیا پشتیبانی از timezone فعال باشد یا خیر.جنگو به‌صورت پیش‌فرض از دیتابیس‌های وابسته به timezone (timezone‑aware) پشتیبانی می‌کند.این متغیر زمانی که پروژه را به وسیله دستور startproject ایجاد میکنید مقدار True قرار میگیرد.اگر در حال حاضر چیز زیادی از آنچه در این پست می‌بینید متوجه نمی‌شوید، نگران نباشید.در فصل‌های بعدی بیشتر با تنظیمات مختلف جنگو آشنا خواهید شد.پست قبلی: (فصل اول - اپیزود ۴ - ایجاد اولین پروژه جنگو)پست بعدی: (فصل اول - اپیزود ۶ - ایجاد اپ بلاگ و توضیح موارد آن )</description>
                <category>رضا رضایی</category>
                <author>رضا رضایی</author>
                <pubDate>Sun, 17 May 2026 01:10:30 +0330</pubDate>
            </item>
                    <item>
                <title>فصل اول - اپیزود ۴ - ترجمه کتاب Django 5 By Example</title>
                <link>https://virgool.io/@rezarezaeedev/%D9%81%D8%B5%D9%84-%D8%A7%D9%88%D9%84-%D8%A7%D9%BE%DB%8C%D8%B2%D9%88%D8%AF-%DB%B4-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-django-5-by-example-django-architecture-django-migrations-rzvb17f2gthw</link>
                <description>ترجمه کتاب Django 5 By Example - فصل اول - اپیزود ۴ - ساخت اولین پروژه در جنگوایجاد اولین پروژه جنگواولین پروژه‌ای که با جنگو می‌سازید یک اپلیکیشن وبلاگ خواهد بود. این پروژه یک مقدمه‌ی خوب برای آشنایی با قابلیت‌ها و امکانات جنگو فراهم می‌کند.وبلاگ‌نویسی نقطه‌ی شروع بسیار مناسبی برای ساخت یک پروژه‌ی کامل با جنگو است، چون طیف گسترده‌ای از قابلیت‌ها را در بر می‌گیرد؛ از مدیریت ساده‌ی محتوا گرفته تا امکانات پیشرفته‌تری مثل کامنت‌گذاری، اشتراک‌گذاری پست‌ها، جستجو و پیشنهاد پست‌های مرتبط به کاربران.پروژه‌ی وبلاگ در سه فصل اولِ این کتاب بررسی می‌شود.در فصل فعلی اقدامات زیر را انجام خواهیم داد:ابتدا یک پروژه جنگو ایجاد می‌کنیم و یک اپلیکیشن برای وبلاگ می‌سازیم.سپس مدل‌های داده (Data Models) را تعریف کرده و آن‌ها را با پایگاه داده هماهنگ می‌کنیم.در نهایت Viewها، Templateها و URLها را میسازیم و همچنین یک پنل مدیریت برای مدیریت محتوای وبلاگ ایجاد می‌کنیم.شکل زیر نمای کلی اپلیکیشن وبلاگی که قرار است بسازید را نشان میدهد:اپلیکیشن وبلاگ شامل یک صفحه لیست تمامی پست‌ها خواهد بود که در آن اطلاعاتی مانند عنوان پست، تاریخ انتشار، نویسنده، خلاصه‌ای از متن پست (excerpt) و یک لینک برای خواندن کامل پست نمایش داده می‌شود. صفحه‌ی لیست پست‌ها با استفاده از view ای به نام post_list پیاده‌سازی خواهد شد. در این فصل یاد می‌گیرید که چگونه در جنگو یک View ایجاد کنید.وقتی کاربران روی لینک یک پست در صفحه‌ی لیست همه پست‌ها کلیک کنند، به صفحه‌ی نمایش جزئیات همان پست (detail view) هدایت می‌شوند. در این صفحه عنوان پست، تاریخ انتشار، نویسنده و متن کامل پست نمایش داده خواهد شد.اکنون بیایید یک پروژه‌ی جنگو برای وبلاگمان ایجاد کنیم. فریمورک جنگو دستوری فراهم کرده که با استفاده از آن می‌توانید ساختار اولیه‌ی فایل‌های یک پروژه را به‌صورت خودکار ایجاد کنید.دستور زیر را در خط فرمان سیستم خود اجرا کنید:django-admin startproject mysiteاین دستور یک پروژه جنگو به نام mysite ایجاد میکند.نکته: از نام‌گذاری پروژه‌ها مشابه با نام ماژول‌های داخلی پایتون یا جنگو خودداری کنید، زیرا ممکن است باعث تداخل و خطا شود.ساختار پروژه:بیایید نگاهی به ساختار پروژه ایجاد شده بیاندازیمmysite/
   manage.py
   mysite/
     ــinitــ.py
     asgi.py
     settings.py
     urls.py
     wsgi.pyپوشه‌ی بیرونی /mysite به‌عنوان جعبه اصلی پروژه عمل می‌کند و شامل فایل‌های زیر است:manage.py: یک ابزار خط فرمان برای تعامل با پروژه است. معمولاً نیازی نیست این فایل را ویرایش کنید./mysite: این پوشه در واقع پکیج پایتون پروژه است و شامل فایل‌های زیر می‌شود:init___.py___: ک فایل خالی است که به پایتون می‌گوید پوشه‌ی mysite باید به‌عنوان یک ماژول پایتون در نظر گرفته شود.asgi.py: تنظیمات لازم برای اجرای پروژه به‌عنوان یک اپلیکیشن ASGI با وب‌سرورهایی که از ASGI پشتیبانی می‌کنند.ASGI استاندارد جدید پایتون برای وب‌سرورهای asynchronous و اپلیکیشن‌های وب محسوب می‌شود.settings.py: شامل تنظیمات و پیکربندی پروژه است و تنظیمات پیش‌فرض اولیه‌ی جنگو در آن قرار دارد.urls.py: جایی است که الگوهای URL پروژه تعریف می‌شوند. هر URL در اینجا به یک view متصل (map) می‌شود.wsgi.py: تنظیمات لازم برای اجرای پروژه به‌عنوان یک اپلیکیشن WSGI با وب‌سرورهایی که از WSGI پشتیبانی می‌کنند.اعمال مایگریشن‌های اولیه‌ی پایگاه دادهاپلیکیشن‌های جنگو برای ذخیره‌ی داده‌ها به پایگاه داده نیاز دارند. فایل settings.py شامل تنظیمات مربوط به پایگاه داده‌ی پروژه است که در متغیر DATABASES تعریف می‌شود.تنظیمات پیش‌فرض جنگو استفاده از پایگاه داده SQLite3 است.SQLite همراه با Python 3 ارائه می‌شود و می‌توان از آن در هر برنامه‌ی پایتونی استفاده کرد.SQLite یک پایگاه داده‌ی سبک (lightweight) است که برای محیط توسعه (development) در پروژه های جنگو بسیار مناسب است.اما اگر قصد دارید اپلیکیشن خود را در محیط نهایی محصول (production) منتشر کنید، بهتر است از یک پایگاه داده‌ی کامل‌تر مانند موارد زیر استفاده کنید:PostgreSQLMySQLOracleاطلاعات بیشتر درباره‌ی راه‌اندازی پایگاه داده در جنگو را می‌توانید در مستندات مربوطه پیدا کنید.https://docs.djangoproject.com/en/5.0/topics/install/#database-installationهمچنین فایل settings.py شامل متغیری از جنس لیست به نام INSTALLED_APPS است که تعدادی از اپلیکیشن‌های رایج جنگو را در بر دارد و به‌صورت پیش‌فرض به پروژه‌ی شما اضافه می‌شوند.بعداً در بخش تنظیمات پروژه این اپلیکیشن‌ها را به‌طور کامل بررسی خواهیم کرد.اپلیکیشن‌های پیشفرض موجود در پروژه جنگو شامل مدل‌های داده (Data Models) هستند که به جداول دیتابیس تطبیق داده می‌شوند.شما مدل‌های خودتان را در بخش &quot;ایجاد مدل های وبلاگ&quot; ایجاد خواهید کرد. اما برای کامل شدن راه‌اندازی پروژه، ابتدا باید جدول‌های مربوط به مدل‌های اپلیکیشن‌های پیش‌فرض جنگو که در تنظیم INSTALLED_APPS قرار دارند، در پایگاه داده ایجاد شوند.جنگو دارای سیستمی به نام مهاجرت | migration است که به شما کمک می‌کند تغییرات مربوط به ساختار پایگاه داده را مدیریت کنید.خط فرمان را باز کنید و دستورات زیر را اجرا کنید:cd mysite
python manage.py migrateشما باید خروجی مشابه زیر را ببینیدApplying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OKخطوطی که در بالا دیدید مربوط به مهاجرت‌های دیتابیس (database migrations) هستند که توسط جنگو اعمال می‌شوند.با اجرای مهاجرت‌های اولیه، جدول‌های مربوط به اپلیکیشن‌هایی که در تنظیمات INSTALLED_APPS قرار دارند در دیتابیس ایجاد می‌شوند.در بخش Creating and applying migrations این فصل، بیشتر درباره دستور مدیریتیmigrateیاد خواهید گرفت.اجرای سرور توسعهجنگو به‌صورت پیش‌فرض یک وب‌سرور سبک داخلی دارد که به شما اجازه می‌دهد بدون نیاز به تنظیمات پیچیده‌ی سرورهای production، خیلی سریع کدتان را اجرا کنید.وقتی سرور توسعه‌ی جنگو را اجرا می‌کنید، این سرور به‌طور مداوم تغییرات کدنویسی را بررسی می‌کند. اگر تغییری در کد ایجاد شود، سرور به‌صورت خودکار باز-اجرا (reload) می‌شود و نیازی نیست بعد از هر تغییر، آن را بطور دستی ریستارت کنید.با این حال، در بعضی موارد مثل اضافه کردن فایل جدید به پروژه، ممکن است سرور متوجه تغییر نشود؛ در این حالت باید سرور را به‌صورت دستی ریستارت کنید.به وسیله دستور زیر در خط فرمان، سرور توسعه شما اجرا خواهد شد:python manage.py runserverهمچنین باید خروجی مشابه زیر ببینید:Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
January 01, 2024 - 10:00:00
Django version 5.0, using settings &#039;mysite.settings&#039;
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.اکنون در مرورگر خود به آدرس لوکال هاست با پورت ۸۰۰۰ بروید.http://127.0.0.1:8000/یاhttp://localhost:8000/درنهایت صفحه ابتدایی جنگو را میبینید که نشان از اجرای موفق‌آمیز پروژه است.(مانند تصویر زیر)اسکرین‌شاتی که در بالا دیدید نشان می‌دهد که جنگو در حال اجرا است. اگر به کنسول (console) خود نگاه کنید، درخواست GET که توسط مرورگر شما ارسال شده است را خواهید دید.(چیزی شبیه به زیر)[01/Jan/2024 10:00:15] &quot;GET / HTTP/1.1&quot; 200 16351هر درخواست HTTP توسط سرور توسعه‌ی جنگو در کنسول ثبت (log) می‌شود. همچنین هر خطایی که هنگام اجرای سرور توسعه رخ دهد نیز در کنسول نمایش داده می‌شود.شما می‌توانید سرور توسعه‌ی جنگو را روی یک host و پورت دلخواه اجرا کنید یا به جنگو بگویید یک فایل تنظیمات (settings) خاص را بارگذاری کند، به شکل زیر:python manage.py runserver 127.0.0.1:8001 --settings=mysite.settingsنکته: زمانی که با محیط‌های مختلفی سر و کار دارید که نیاز به تنظیمات متفاوتی دارند، می‌توانید برای هر محیط یک فایل تنظیمات (settings file) جداگانه ایجاد کنید.(مانند محیط‌های توسعه، خطایابی، پروداکشن و ...)این سرور (سرور توسعه‌ی جنگو) فقط برای محیط توسعه (development) در نظر گرفته شده و برای استفاده در محیط واقعی (production) مناسب نیست.برای استقرار(deploy) جنگو در محیط production، باید آن را به‌عنوان یک برنامه WSGI با استفاده از یک وب‌سرور مانند Apache، Gunicorn یا uWSGI، یا به‌عنوان یک برنامه ASGI با استفاده از سروری مثل Daphne یا Uvicorn اجرا کنید.اطلاعات بیشتر در مورد چگونگی راه‌اندازی جنگو با وب‌سرورهای مختلف را می‌توانید در آدرس زیر پیدا کنید:https://docs.djangoproject.com/en/5.0/howto/deployment/wsgi/همچنین، در فصل ۱۷ با عنوان راه‌اندازی-نهایی|Going Live، نحوه‌ی آماده‌سازی محیط production برای پروژه‌های جنگوی شما را توضیح می‌دهد.مطالعه ادامه ترجمه کتابپست قبلی: (فصل اول - اپیزود ۳ - مرور کلی بر جنگو و معماری آن )پست بعدی: (فصل اول - اپیزود ۵ - تنظیمات پروژه و فایل settings.py)</description>
                <category>رضا رضایی</category>
                <author>رضا رضایی</author>
                <pubDate>Sat, 16 May 2026 17:02:46 +0330</pubDate>
            </item>
                    <item>
                <title>فصل اول - اپیزود ۳ - ترجمه کتاب Django 5 By Example</title>
                <link>https://virgool.io/@rezarezaeedev/%D9%81%D8%B5%D9%84-%D8%A7%D9%88%D9%84-%D8%A7%D9%BE%DB%8C%D8%B2%D9%88%D8%AF-%DB%B3-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-django-5-by-example-new-features-in-django-kshnrxqsjcoq-kshnrxqsjcoq</link>
                <description>توی این اپیزود مرور کوتاهی داریم بر جنگو و معماری MVT و همچنین ویژگی های جدید جنگو ۵ رو بررسی میکنیم.مرور کلی بر جنگوجنگو یک فریم‌ورک است که از مجموعه‌ای از مؤلفه‌ها تشکیل شده و مشکلات رایج توسعه‌ی وب را حل می‌کند.مؤلفه‌های جنگو به‌صورت loosely coupled (یعنی با اتصال ضعیف به یکدیگر) طراحی شده‌اند، به این معنا که هر کدام می‌توانند به‌طور مستقل مدیریت شوند. این ویژگی کمک می‌کند وظایف لایه‌های مختلف فریم‌ورک از هم جدا باشند؛ به‌عنوان مثال، لایه‌ی پایگاه داده هیچ اطلاعی از نحوه‌ی نمایش داده‌ها ندارد، سیستم قالب‌بندی (template system) هیچ شناختی از درخواست‌های وب ندارد، و به همین ترتیب سایر بخش‌ها نیز مستقل هستند.جنگو با پیروی از اصل DRY (don’t repeat yourself / خودت را تکرار نکن)، حداکثر قابلیت استفاده مجدد از کد را فراهم می‌کند.جنگو به توسعه سریع برنامه‌ها کمک می‌کند و با استفاده از قابلیت‌های پویای پایتون، مانند introspection، این امکان را می‌دهد که با کدنویسی کمتر کارهای بیشتری انجام دهید.همنچنین شما میتوانید درمورد فلسفه های جنگو بخوانید.https://docs.djangoproject.com/en/5.0/misc/design-philosophies/نکته: دقت کنید که لینک بالا، در نسخهٔ فعلی جنگو هشدار می‌دهد که این نسخه از جنگو دیگر پشتیبانی نمی‌شود و بهتر است به نسخهٔ جدیدتر ارتقا داده شود. اما چون در متن کتاب بود و هدف ترجمه این کتاب هست حذفش نکردم.اجزای اصلی فریم‌ورک جنگوجنگو از الگوی MTV (Model‑Template‑View) پیروی می‌کند. این الگو تا حدی شبیه الگوی شناخته‌شدهٔ MVC (Model‑View‑Controller) است؛ با این تفاوت که در جنگو Template نقش View را دارد و خود فریم‌ورک نقش Controller را ایفا می‌کند.در الگوی MTV جنگو، مسئولیت‌ها به شکل زیر تقسیم می‌شوند:Model: ساختار منطقی داده‌ها را تعریف می‌کند و به‌عنوان واسطهٔ مدیریت داده‌ها بین پایگاه داده و View عمل می‌کند.Template: لایهٔ نمایش (presentation layer) است. جنگو از یک سیستم قالب مبتنی بر متن ساده استفاده می‌کند که هر چیزی را که در مرورگر نمایش داده می‌شود مدیریت می‌کند.View: از طریق Model با پایگاه داده ارتباط برقرار می‌کند و داده‌ها را برای نمایش به Template ارسال می‌کند.خود فریم‌ورک نقش Controller را دارد. فریم‌ورک بر اساس تنظیمات URL در جنگو، درخواست را به View مناسب ارسال می‌کند.هنگام توسعهٔ هر پروژهٔ جنگو، همیشه با مدل‌ها، ویوها، تمپلیت‌ها و URLها کار خواهید کرد. در این فصل یاد می‌گیرید که این بخش‌ها چگونه در کنار یکدیگر قرار می‌گیرند.معماری جنگو چگونه کار میکندشکل زیر نشان می‌دهد که جنگو چگونه درخواست‌ها را پردازش می‌کند و چرخهٔ درخواست/پاسخ (request/response cycle) چگونه با استفاده از اجزای اصلی جنگو—یعنی URLها، ویوها، مدل‌ها و تمپلیت‌ها—مدیریت می‌شود.معماری جنگو - چرخه درخواست تا پاسخ در جنگوفرآیند مدیریت درخواست‌های HTTP و تولید پاسخ در جنگو به این صورت انجام می‌شود:یک مرورگر وب با استفاده از یک URL صفحه‌ای را درخواست می‌کند و وب‌سرور این درخواست HTTP را به جنگو ارسال می‌کند.جنگو الگوهای URL پیکربندی‌شده را بررسی می‌کند و وقتی به اولین الگویی برسد که با URL درخواستی مطابقت دارد، متوقف می‌شود.جنگو View مربوط به آن الگوی URL را اجرا می‌کند.View در صورت نیاز از مدل‌های داده (Models) برای دریافت اطلاعات از پایگاه داده استفاده می‌کند.مدل‌های داده ساختار داده‌ها و رفتار آن‌ها را تعریف می‌کنند و برای پرس‌وجو(Query) از پایگاه داده به کار می‌روند.View یک Template (معمولاً HTML) را برای نمایش داده‌ها پردازش (Render) می‌کند و آن را در قالب یک پاسخ HTTP برمی‌گرداند.در پایان این فصل و در بخش چرخهٔ درخواست/پاسخ (The request/response cycle) دوباره به این فرآیند بازخواهیم گشت.همچنین جنگو در فرایند درخواست/پاسخ نقاط اتصالی دارد که میان‌افزار(Middleware) نام دارد. اما برای ساده بودن نمودار بالا، بطور موقت حذف شده و در فصول بعدی بطور کامل به آن میپردازیم.(به فصل ۱۷ مراجعه کنید)تا اینجا عناصر پایه‌ای جنگو و نحوه پردازش درخواست‌ها توسط آن را بررسی کرده‌ایم. اکنون بیایید ویژگی‌های جدید معرفی‌شده در Django 5 را بررسی کنیم.ویژگی‌های جدید در جنگو ۵جنگو ۵ چندین قابلیت مهم جدید معرفی می‌کند که در مثال‌های این کتاب از آن‌ها استفاده خواهید کرد.این نسخه همچنین برخی قابلیت‌ها را منسوخ (deprecated) اعلام کرده و بعضی از قابلیت‌هایی را که قبلاً منسوخ شده بودند، به‌طور کامل حذف کرده است.ویژگی‌های جدید و مهم Django 5.0:فیلترهای Facet در پنل مدیریت:اکنون می‌توان فیلترهای Facet را به بخش مدیریت جنگو اضافه کرد. وقتی این قابلیت فعال باشد، برای فیلترهایی که در لیست اشیای Admin اعمال شده‌اند، تعداد نتایج هر فیلتر نیز نمایش داده می‌شود. این قابلیت در بخش Added facet counts to filters همین فصل توضیح داده شده است.ساده‌تر شدن قالب‌های رندر فیلدهای فرم:رندر کردن فیلدهای فرم ساده‌تر شده است. اکنون می‌توان گروه‌هایی از فیلدها (field groups) را تعریف کرد که هرکدام قالب (template) مخصوص خود را دارند. این کار باعث می‌شود اجزای مرتبط با یک فیلد فرم مانند label، widget، متن راهنما (help text) و خطاها راحت‌تر و منظم‌تر نمایش داده شوند. نمونه‌ای از استفاده از field groups در بخش Creating templates for the comment form در فصل ۲ کتاب آورده شده است.مقادیر پیش‌فرض محاسبه‌شده در دیتابیس:جنگو اکنون از مقادیر پیش‌فرضی پشتیبانی می‌کند که توسط خود دیتابیس محاسبه می‌شوند. نمونه‌ای از این قابلیت در بخش Adding datetime fields همین فصل ارائه شده است.فیلدهای مدل که توسط دیتابیس تولید می‌شوند:یک نوع جدید از فیلدها معرفی شده است که به شما اجازه می‌دهد ستون‌هایی در دیتابیس داشته باشید که مقدارشان به‌صورت خودکار توسط دیتابیس تولید می‌شود. مقدار این فیلدها با استفاده از یک عبارت(expression) تعیین می‌شود و هر بار که مدل تغییر کند، مقدار آن بر اساس همان عبارت دوباره محاسبه می‌شود. این کار با استفاده از دستورات SQL به نام GENERATED ALWAYS انجام می‌شود.گزینه‌های بیشتر برای تعریف choices در فیلدهای مدل:در فیلدهایی که از choices پشتیبانی می‌کنند، دیگر لازم نیست برای دسترسی به enumها از ویژگی choices. استفاده کنید. اکنون می‌توان به‌جای یک iterable، مستقیماً از mapping یا callable استفاده کرد تا enumها گسترش داده شوند. مثال این تغییر در بخش Adding a status field همین فصل آمده است.بهبود پشتیبانی از برنامه‌نویسی ناهمزمان در جنگو ۵جنگو ۵ همچنین چند بهبود در زمینه پشتیبانی از پردازش ناهمزمان (asynchronous) ارائه کرده است.پشتیبانی از ASGI (Asynchronous Server Gateway Interface) اولین بار در Django 3 معرفی شد و در Django 4.1 بهبود پیدا کرد؛ در آن نسخه قابلیت‌هایی مثل هندلرهای async برای viewهای مبتنی بر کلاس (Class-Based Views) و همچنین رابط ORM به‌صورت asynchronous اضافه شدند.در Django 5 نیز پیشرفت‌های جدیدی اضافه شده است:اضافه شدن توابع async به سیستم احراز هویت جنگو (authentication framework)پشتیبانی از ارسال سیگنال‌ها به‌صورت asynchronousاضافه شدن پشتیبانی async به چندین decorator داخلی جنگوبه‌طور خلاصه، جنگو در هر نسخه بیشتر به سمت پشتیبانی کامل از معماری async پیش می‌رود تا بتواند بهتر با WebSocketها، درخواست‌های همزمان زیاد، و سیستم‌های real‑time کار کند.نکته: جنگو ۵.۰ دیگر از پایتون در نسخه های 3.8 و 3.9 پشتیبانی نمی‌کند.لیست تمامی تغییرات و ویژگی‌های جنگو ۵.۰ را میتوانید از این لینک بخوانید:https://docs.djangoproject.com/en/5.0/releases/5.0از آنجا که انتشار Django بر اساس زمان‌بندی انجام می‌شود در نسخه ۵ تغییرات اساسی و بزرگی وجود ندارد. به همین دلیل ارتقای پروژه‌هایی که با Django 4 ساخته شده‌اند به Django 5.0 معمولاً ساده و مستقیم است.اگر بخواهید یک پروژه‌ی موجود Django را سریع به نسخه 5.0 ارتقا دهید، می‌توانید از ابزار django-upgrade استفاده کنید. این پکیج فایل‌های پروژه‌ی شما را بررسی کرده و با اعمال مجموعه‌ای از fixerها (اصلاحات خودکار کد) آن‌ها را به نسخه‌ی هدف بازنویسی می‌کند.طریقه استفاده از django-upgrade را می‌توانید در صفحه مستندات رسمی مطالعه کنید:https://github.com/adamchainz/django-upgradeابزار django-upgrade با الهام از پکیجی به نام pyupgrade ساخته شده است.با استفاده از pyupgrade می‌توانید به‌صورت خودکار ساختارهای قدیمی کد پایتون را به سینتکس نسخه‌های جدیدتر پایتون ارتقا دهید.برای کسب اطلاعات بیشتر درمورد pyupgrade به صفحه مستندات با لینک زیر مراجعه کنید:https://github.com/asottile/pyupgradeمطالعه ادامه ترجمه کتابپست قبلی: (فصل اول - اپیزود ۲ - نصب جنگو)پست بعدی: (فصل اول - اپیزود ۴ - ایجاد اولین پروژه جنگویی)</description>
                <category>رضا رضایی</category>
                <author>رضا رضایی</author>
                <pubDate>Fri, 15 May 2026 17:40:18 +0330</pubDate>
            </item>
                    <item>
                <title>فصل اول - اپیزود ۲ - ترجمه کتاب Django 5 By Example</title>
                <link>https://virgool.io/@rezarezaeedev/httpsvirgooliorezarezaeedev%D9%81%D8%B5%D9%84-%D8%A7%D9%88%D9%84-%D8%A7%D9%BE%DB%8C%D8%B2%D9%88%D8%AF-%DB%B2-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-django-5-by-example-installing-django-c2kjc5irkpeq-c2kjc5irkpeq</link>
                <description>ترجمه کتاب Django 5 By Example - نصب جنگونصب جنگواگر قبلا جنگو نسخه ۵ را در سیستمتان نصب کرده اید میتوانید مستقیما به اپیزود بعدی(معرفی جنگو ۵ و ویژگی های جدید جنگو) بروید و نیازی نیست این اپیزود را مطالعه کنید.جنگو به‌صورت یک ماژول پایتون ارائه می‌شود، بنابراین می‌توان آن را در هر محیط پایتونی نصب کرد. اگر هنوز جنگو را نصب نکرده‌اید، ادامه‌ی مطلب یک راهنمای نصب سریع برای شماست.نصب جنگو به وسیله pipسیستم مدیریت نسخه pip بهترین روش نصب جنگو است. پایتون 3.12 به بعد بطور پیشفرض pip را نصب میکند اما شما میتوانید مستندات نصب pip را از وبسایت رسمی آن بخوانید:https://pip.pypa.io/en/stable/installation/به وسیله اجرای کد زیر در خط فرمان میتوانید جنگو را نصب کنید:python -m pip install Django~=5.0.4این دستور آخرین نسخه جنگو ۵ را در پوشه site-packages در پوشه مربوط به محیط مجازی پایتون شما نصب میکند.اکنون بررسی میکنیم که آیا جنگو به درستی نصب شده است یا خیر! کد زیر را در خط فرمان اجرا کنید.python -m django --versionاگر خروجی آن با ۵.۰ شروع شده باشد، جنگو به درستی نصب شده است و قابل استفاده میباشد. اما اگر پیغامی شبیه به No module named Django مشاهده کردید به این معناست که هیچ ماژولی به نام جنگو وجود ندارد و جنگو به درستی نصب نشده است.اگر در مراحل نصب مشکلی داشتید میتوانید روش های نصب متفاوتی را امتحان کنید که در لینک روبرو قابل مطالعه میباشد.https://docs.djangoproject.com/en/5.0/intro/install/نکته: تمام پکیج های استفاده شده در این فصل با شماره نسخه آن در فایل requirements.txt سورس کد پروژه فصل ۱ قرار دارد. (لینک دسترسی به سورس کد پروژه این فصل)همچنین شما میتوانید نصب پکیج ها را بصورت قدم به قدم با روند آموزشی پیش بروید و یا بصورت یکجا با دستور زیر تمامی پکیج های فایل نیازمندی ها را نصب کنید:pip install -r requirements.txtمطالعه ادامه ترجمه کتابپست قبلی: (فصل اول - اپیزود ۱ - نصب پایتون در ویندوز/لینوکس/مک)پست بعدی: (فصل اول - اپیزود ۳ - معرفی جنگو ۵ و ویژگی های جدید جنگو)</description>
                <category>رضا رضایی</category>
                <author>رضا رضایی</author>
                <pubDate>Thu, 14 May 2026 01:08:00 +0330</pubDate>
            </item>
                    <item>
                <title>فصل اول - اپیزود ۱ - ترجمه کتاب Django 5 By Example</title>
                <link>https://virgool.io/@rezarezaeedev/httpsvirgooliorezarezaeedev%D9%81%D8%B5%D9%84-%D8%A7%D9%88%D9%84-%D8%A7%D9%BE%DB%8C%D8%B2%D9%88%D8%AF-%DB%B1-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%AC%D9%86%DA%AF%D9%88-%DB%B5-%D8%A8%D8%A7-%D9%85%D8%AB%D8%A7%D9%84-install-python-virtualenv-ahda7rrtzdtn-ahda7rrtzdtn-ahda7rrtzdtn-ahda7rrtzdtn</link>
                <description>ترجمه کتاب جنگو ۵ با مثال - Django 5 by example - فصل اول اپیزود اولفصل اول ترجمه کتاب Django 5 By Example اثر آنتونیو مله شروع میکنیم و این کتاب رو فصل به فصل ترجمه میکنم و هر فصل رو در چند اپیزود به ترتیب منتشر میکنم که ترتیب مطالب و صفحات رو متوجه بشید.فصل ۱ - ساخت یک اپلیکیشن وبلاگدر این کتاب یاد می‌گیرید چگونه با استفاده از فریم‌ورک Django پروژه‌های وب حرفه‌ای بسازید. در این فصل اول، قدم‌به‌قدم با اجزای اصلی یک برنامه Django آشنا می‌شوید؛ از نصب اولیه گرفته تا راه‌اندازی و آماده‌سازی برای اجرا.اگر هنوز Django را روی سیستم خود نصب نکرده‌اید، در بخش «نصب Django» نحوه نصب آن به‌صورت کامل توضیح داده شده است.قبل از اینکه اولین پروژه Django خود را شروع کنیم، بهتر است بدانیم در این فصل قرار است چه چیزهایی یاد بگیریم. این فصل یک دید کلی از ساختار و نحوه کار Django به شما می‌دهد و اجزای اصلی لازم برای ساخت یک وب‌اپلیکیشن کامل را معرفی می‌کند. این اجزا شامل موارد زیر هستند:مدل‌ها (Models)، قالب‌ها (Templates)، ویوها (Views) و آدرس‌ها (URLs).همچنین در این فصل درک بهتری از نحوه کار Django و ارتباط بین بخش‌های مختلف آن پیدا می‌کنید.در ادامه با تفاوت بین «پروژه» (Project) و «اپلیکیشن» (Application) در Django آشنا می‌شوید و مهم‌ترین تنظیمات این فریم‌ورک را بررسی می‌کنید.در طول این فصل یک اپلیکیشن ساده برای وبلاگ می‌سازیم. این وبلاگ به کاربران اجازه می‌دهد همه نوشته‌های منتشرشده را ببینند و هر پست را به‌صورت جداگانه مطالعه کنند. علاوه بر این، یک پنل مدیریت ساده نیز ایجاد می‌کنیم تا بتوانید پست‌های وبلاگ را مدیریت و منتشر کنید.در دو فصل بعدی، همین اپلیکیشن وبلاگ را گسترش می‌دهیم و قابلیت‌های پیشرفته‌تری به آن اضافه خواهیم کرد.این فصل را مثل یک نقشه‌راه در نظر بگیرید؛ مسیری که قدم‌به‌قدم شما را به ساخت یک اپلیکیشن کامل و کاربردی با Django می‌رساند. اگر در ابتدا بعضی مفاهیم یا بخش‌ها کمی مبهم به نظر برسند، نگران نباشید. در طول کتاب هرکدام از این بخش‌ها را با جزئیات کافی بررسی می‌کنیم تا کاملاً روشن شوند.در این فصل، با موضوعات زیر آشنا می‌شوید:نصب Pythonایجاد یک محیط مجازی (Virtual Environment) در پایتوننصب Djangoایجاد و تنظیم یک پروژه Djangoساخت یک اپلیکیشن در Djangoطراحی مدل‌های دادهایجاد و اعمال مهاجرت‌های مدل (Migrations)راه‌اندازی بخش مدیریت (Admin) برای مدل‌هاکار با QuerySet‌ها و مدیرهای مدل (Model Managers)ساخت ویوها، قالب‌ها و مسیرها (Views, Templates, URLs)درک چرخه درخواست/پاسخ در Djangoدر پایان این بخش، کار را با نصب Python روی سیستم‌تان شروع کنید.همچنین سورس‌کد پروژه این فصل رو میتونید از لینک روبرو در گیتهاب دانلود کنید. (سورس‌کد فصل اول)اسامی تمام پکیج‌های پایتونی که در این فصل استفاده می‌شوند، در فایلrequirements.txtقرار داده شده‌اند. این فایل در پوشه پروژه این فصل وجود دارد.شما می‌توانید طبق راهنمایی‌های هر بخش، پکیج‌ها را به‌صورت جداگانه نصب کنید. اما یک راه ساده‌تر هم وجود دارد: نصب همه آن‌ها به‌صورت یکجا.برای این کار کافی است دستور زیر را اجرا کنید:python -m pip install -r requirements.txtبا اجرای این دستور، pip تمام کتابخانه‌های موردنیاز پروژه را بر اساس فایل requirements.txt دانلود و نصب می‌کند.نصب پایتون:جنگو 5 از پایتون نسخه های ۳.۱۰، ۳.۱۱ و ۳.۱۲ پشتیبانی میکند. در مثال‌های این کتاب، از پایتون 3.12 استفاده خواهیم کرد.اگر از لینوکس یا مک استفاده می‌کنید، احتمال زیادی وجود دارد که پایتون از قبل روی سیستم شما نصب باشد. اما اگر کاربر ویندوز هستید، می‌توانید فایل نصبی Python را از وب‌سایت رسمی پایتون دانلود کنید. (دانلود فایل نصبی پایتون)برای شروع، ترمینال یا خط فرمان سیستم خود را باز کنید:در مک کلیدهای Command + Space را بزنید، عبارت Terminal را جستجو و برنامه Terminal.app را اجرا کنید.در ویندوز منوی Start را باز کرده و عبارتpowers را جستجو کنید، سپس برنامه Windows PowerShell را اجرا کنید.همچنین می‌توانید با جستجوی cmd، محیط ساده‌تر Command Prompt را باز کنید.بعد از باز کردن ترمینال، برای بررسی نصب بودن Python 3 دستور زیر را اجرا کنید:python3 --versionاگر خروجی مشابه زیر را مشاهده کردید، یعنی Python 3 روی سیستم شما نصب است:Python 3.12.3اگر خطا دریافت کردید، به‌جای python3 دستور python را امتحان کنید. در ویندوز هم بهتر است از دستور py استفاده کنید.اگر نسخه پایتون نصب‌شده شما پایین‌تر از 3.12 است یا پایتون روی سیستم شما نصب نیست، نسخه پایتون ۳.۱۲ را از سایت رسمی دانلود و نصب کنید. (دانلود پایتون از وبسایت رسمی)در این صفحه، نسخه‌های مخصوص ویندوز، لینوکس و مک در دسترس هستند.اگر از لینوکس یا مک استفاده می‌کنید ممکن است نسخه پیش‌فرض پایتون سیستم شما هنوز پایتون نسخه ۲ باشد، باید برای اجرای نسخه جدید از دستور python3 استفاده کنید.توجه داشته باشید که پشتیبانی رسمی از پایتون نسخه ۲ از ژانویه ۲۰۲۰ به پایان رسیده و دیگر نباید از آن استفاده شود.در ویندوز، دستور python به فایل اجرایی نسخه پیش‌فرض پایتون که روی سیستم نصب شده اشاره می‌کند، اما دستور py در واقع لانچر پایتون است.لانچر پایتون برای ویندوز از نسخه Python 3.3 معرفی شد. این ابزار به‌صورت خودکار بررسی می‌کند چه نسخه‌هایی از پایتون روی سیستم شما نصب شده‌اند و اجرای دستورات را به جدیدترین نسخه موجود هدایت می‌کند.به همین دلیل، اگر از ویندوز استفاده می‌کنید، پیشنهاد می‌شود همیشه از دستور py استفاده کنید.برای اطلاعات بیشتر درباره لانچر پایتون در ویندوز، می‌توانید مستندات رسمی را مطالعه کنید: (مستندات رسمی لانچر پایتون در ویندوز)در ادامه، قرار است یک محیط مجازی پایتون (Python Virtual Environment) برای پروژه ایجاد کنیم و کتابخانه‌های موردنیاز را نصب کنیم.ایجاد محیط مجازی پایتون برای پروژه:وقتی با پایتون برنامه می‌نویسی میکنید، معمولاً از پکیج‌ها و ماژول‌هایی استفاده می‌کنید که جزو کتابخانه استاندارد پایتون نیستند. از طرفی ممکن است هر پروژه به نسخه متفاوتی از یک پکیج نیاز داشته باشد.مشکل اینجاست که اگر یک ماژول را به‌صورت سراسری روی سیستم نصب کنید، فقط یک نسخه از آن قابل استفاده خواهد بود. در نتیجه اگر برای یک پروژه نسخه جدیدتری از یک پکیج را نصب یا به‌روزرسانی کنید، ممکن است پروژه‌های دیگر که به نسخه قدیمی‌تر همان پکیج وابسته هستند دچار مشکل شوند.برای حل این مسئله، میتوانید از قابلیتی به نام محیط مجازی یا Virtual Environment در پایتون استفاده کنید.با استفاده از محیط مجازی، می‌توانید پکیج‌های موردنیاز هر پروژه را در یک فضای جدا و ایزوله نصب کنید، بدون اینکه روی نصب پایتون اصلی سیستم شما تأثیر بگذارد. هر محیط مجازی، نسخه اجرایی پایتون مخصوص خودش را دارد و مجموعه پکیج‌های نصب‌شده آن نیز به‌صورت مستقل در مسیر site-packages همان محیط نگهداری می‌شود.پایتون از نسخه 3.3 به بعد، به‌صورت پیش‌فرض کتابخانه venv را در اختیار شما قرار می‌دهد. این ابزار برای ساخت محیط‌های مجازی سبک و ایزوله استفاده می‌شود.با استفاده از venv می‌توانید برای هر پروژه، پکیج‌ها و نسخه‌های مخصوص همان پروژه را داشته باشید. یکی دیگر از مزیت‌های مهم آن این است که برای نصب پکیج‌ها داخل محیط مجازی، معمولاً نیازی به دسترسی ادمین یا Administrator ندارید.اگر از لینوکس یا مک استفاده می‌کنید، برای ساخت یک محیط مجازی ایزوله از دستور زیر استفاده کنید:python -m venv my_envنکته: به یاد داشته باشید اگر سیستم عامل شما به‌طور پیش‌فرض با Python 2 عرضه شده و خودتان Python 3 را نصب کرده‌اید، باید به‌جای دستورpython از python3 استفاده کنید.(توضیح کوتاه مترجم: در بسیاری از سیستم‌های لینوکسی قدیمی، دستور python به Python 2 اشاره می‌کند)اگر از ویندوز استفاده می‌کنید، دستور زیر را اجرا کنید:py -m venv my_envاین دستور از Python Launcher در ویندوز استفاده می‌کند.دستوری که در مرحله قبل اجرا کردید، یک محیط مجازی پایتون در پوشه‌ای به نام my_env ایجاد می‌کند.تا زمانی که محیط مجازی شما فعال است، کتابخانه ها و پکیج هایی که نصب میکنید در مسیر پکیج های محیط مجازی قرار میگیرند. آدرس مسیر بدین صورت است: my_env/lib/python3.12/site-packagesبه این ترتیب، پکیج‌های پروژه شما از سایر پروژه‌ها و همچنین از نصب اصلی Python روی سیستم جدا خواهند بود.برای فعال کردن محیط مجازی:در لینوکس و مک از دستور زیر استفاده کنید:source my_env/bin/activate• در Windows از دستور زیر استفاده کنید:.\my_env\Scripts\activateبعد از فعال‌سازی، نام محیط مجازی در ابتدای خط فرمان نمایش داده می‌شود؛ چیزی شبیه به این:(my_env) zenx@pc:~ zenx$وجود (my_env) یعنی اکنون تمام پکیج‌هایی که نصب می‌کنید داخل همین محیط مجازی نصب خواهند شد.هر زمان که خواستید از محیط مجازی خارج شوید، کافی است دستور زیر را اجرا کنید:deactivateبرای مطالعه بیشتر درباره venv می‌توانید مستندات رسمی پایتون را بخوانید: (مستدات رسمی venv در پایتون)سخن مترجم: برای این اپیزود کافیه. تا اینجا کمی با پایتون و محیط مجازیش در سیستم عامل های مختلف آشنا شدیم . انشاالله اپیزود بعدی ترجمه بخش نصب جنگو و ایجاد پروژه جنگو را باهاتون به اشتراک میگذارم.درنهایت اگر سوال فنی و یا درمورد ترجمه و کتاب دارید و یا ایراد و مشکل و پیشنهادی درمورد محتوای ترجمه میبینید کامنت بگزارید.- با سپاس از حسن توجه تون💐مطالعه ادامه ترجمه کتابپست قبلی: (معرفی کتاب Django 5 By Example)پست بعدی: (فصل اول - اپیزود ۲ - نصب جنگو و شیوه های آن)</description>
                <category>رضا رضایی</category>
                <author>رضا رضایی</author>
                <pubDate>Tue, 12 May 2026 15:25:24 +0330</pubDate>
            </item>
                    <item>
                <title>ترجمه کتاب جنگو ۵ با مثال | Django 5 By Example</title>
                <link>https://virgool.io/@rezarezaeedev/%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%AC%D9%86%DA%AF%D9%88-%DB%B5-%D8%A8%D8%A7-%D9%85%D8%AB%D8%A7%D9%84-django-5-by-example-tpen4nwcywuo</link>
                <description>کتاب جنگو ۵ با مثال - Django 5 By Example اثر آنتونیو ملهدر این سلسله پست ها قصد دارم ترجمه کتاب Django 5 by example اثر آنتونیو مله رو باهاتون به اشتراک بزارم.ابتدا خودم شروع به خوندن این کتاب کردم و سپس تصمیم گرفتم درکنار مطالعه خودم، ترجمه اش رو هم با شما به اشتراک بزارم بلکه به کامیونیتی پایتون و جنگو فارسی کمکی کرده باشم(در حد خودم).کتاب معروف و شناخته شده ای هست اما به عنوان معرفی و یک تبلیغ واسه افرادی که این کتاب رو نمیشناسند توضیحاتی میدهم:کتاب به وسیله ۴ پروژه واقعی روی بخش‌های مهمی مثل:ساخت اپلیکیشن‌های وب با Djangoکار با مدل‌ها، ویوها، تمپلیت‌هااحراز هویت کاربرانپنل ادمینORMکش، Redis، CeleryAPI و قابلیت‌های عملی برای محصول واقعیتمرکز دارد.سبک کتاب بیشتر کاربردی و hands-on است تا آکادمیک. یعنی کتاب بیشتر روی یادگیری با ساختن تمرکز دارد، نه فقط توضیح مفاهیم.موضوعات ۴ پروژه هم به شرح ذیل است:وبلاگ (Blog Application)یک وبلاگ کامل برای یادگیری مبانی جنگو: مدل‌ها، ویوها، URLها، فرم‌ها، سیستم کامنت، تگ‌گذاری و جستجو.(فصل ۱ تا ۳)شبکه اجتماعی تصویری (Image Bookmark / Social Website)سایتی شبیه بوکمارک یا اشتراک‌گذاری تصویر که در آن کاربران ثبت‌نام می‌کنند، تصویر ذخیره می‌کنند، لایک می‌زنند و فعالیت کاربران دنبال می‌شود.(فصل ۴تا ۷)فروشگاه آنلاین (Online Shop / E-commerce)یک فروشگاه اینترنتی با سبد خرید، سفارش، کوپن تخفیف، اتصال به درگاه پرداخت و مدیریت فرایند خرید.(فصل ۸تا ۱۱)سامانه آموزش آنلاین (E-learning Platform)پلتفرمی برای ساخت و فروش یا ارائه دوره‌ها؛ شامل دوره، ماژول، محتوا، ثبت‌نام کاربران و مدیریت آموزشی.(فصل ۱۲تا ۱۷).حدود ۸۰۰ صفحه است این کتاب(نسخه اصلی).فایل این کتابم میتونید از وبسایت دانلودلی یا فروشگاه فقط-کتاب دانلود کنید. یا حتی نسخه ترجمه بهترشم آقای حسین یعسوبی زحمت کشیده و در دیجی کالا و وبسایت انتشارات پندار پارس موجود هست.درنهایت دوست دارم بهترین ترجمه این کتاب رو منتشر کنم و با دانش ناقصم هرگز قادر به این امر نیستم و ممنون میشم اگر پیشنهادی دارید و یا مشکلی در محتوا برخورد کردید حتما بهم اطلاع بدید تا با کمک شما این ترجمه به بهترین شکل منتشر بشه.ادامه کتاب را از لینک زیر بخوانید:پست بعدی: نصب پایتون و محیط مجازی آن</description>
                <category>رضا رضایی</category>
                <author>رضا رضایی</author>
                <pubDate>Sat, 09 May 2026 02:30:16 +0330</pubDate>
            </item>
            </channel>
</rss>