به کتاب جنگو برای حرفه‌ای‌ها، راهنمای ساخت وب سایت‌های حرفه‌ای با جنگو که یک فریم‌ورک وب مبتنی بر پایتون است، خوش آمدید. شکاف بزرگی بین ساخت "اپلیکیشن‌های اسباب بازی" ساده که می‌توانند به‌سرعت ایجاد و مستقر شوند و آنچه برای ساختن یک اپلیکیشن وب "آماده تولید" مناسب به جهت استقرار برای هزاران یا حتی میلیون‌ها کاربر نیاز است، وجود دارد. این کتاب به شما نشان می‌دهد که چگونه می‌توانید این شکاف را در رایانه‌های Windows و macOS پر کنید.
هنگامی‌که برای اولین بار جنگو را نصب و یک پروژه جدید ایجاد می‌نمایید، تنظیمات پیش‌فرض متناسب با توسعه محلی می‌باشد و این منطقی است که نیازی به‌اضافه کردن تمام ویژگی‌های اضافی موردنیاز یک وب‌سایت بزرگ نیست، تا زمانی که بدانید به آن‌ها نیاز دارید. این پیش‌فرض‌ها شامل استفاده از SQLite به‌عنوان پایگاه داده پیش‌فرض، سرویس دهنده وب محلی، میزبانی دارایی استاتیک محلی، مدل User داخلی، حالت DEBUG روشن و بسیاری از تنظیمات دیگر است که به‌طور ضمنی تنظیم شده‌اند.
برای پروژه محیط تولید، بسیاری از این تنظیمات، حتی بیش تر آن‌ها، باید دوباره پیکربندی شوند. و حتی در این صورت نیز می‌تواند عدم توافق ناامیدکننده‌ای بین کارشناسان وجود داشته باشد. این کتاب به‌جای این که خواننده را با مجموعه کاملی از انتخاب‌های موجود نگران کند، یک رویکرد برای ایجاد یک وب‌سایت حرفه‌ای مبتنی بر بهترین شیوه‌های فعلی جامعه جنگو را نشان می‌دهد. موضوعات تحت پوشش شامل استفاده از داکر برای توسعه و استقرار محلی، PostgreSQL، یک مدل کاربر سفارشی، جریان احراز هویت کاربر قوی با ایمیل، تست‌های یک پارچه، متغیرهای محیطی، بهبود امنیت و عملکرد، و موارد دیگر می‌باشد.
تا پایان این کتاب قدم‌به‌قدم یک وب‌سایت حرفه‌ای ایجاد خواهید نمود و در مورد مباحث اضافی برای کاوش بیش¬تر خواهید آموخت. چه در حال شروع یک پروژه جدید باشید که امیدوارید به بزرگی اینستاگرام (در حال حاضر بزرگ‌ترین وب‌سایت جنگو در جهان) باشد، یا در حال انجام به‌روزرسانی‌های بسیار موردنیاز پروژه جنگو موجود می‌باشید، ابزار و دانش لازم برای انجام این کار را خواهید داشت.
پیش‌نیازها
اگر در جنگو یا توسعه وب کاملا تازه‌کار هستید، این کتاب برای شما مناسب نیست. سرعت پیش‌روی کتاب بسیار سریع خواهد بود. درحالی‌که می‌توانید هم‌زمان بخوانید، همه کدها را کپی کنید، و در پایان یک وب‌سایت کارآمد داشته باشید، در عوض توصیه می‌کنم با کتاب جنگو برای مبتدیان شروع کنید. این کتاب با اصول اولیه شروع می‌شود و به‌تدریج مفاهیم را از طریق ساختن پنج اپلیکیشن کاربردی جنگو به‌تدریج پیچیده معرفی می‌نماید. پس از تکمیل آن کتاب، برای کسب موفقیت با این کتاب آماده خواهید شد.
همچنین کتابی در مورد تبدیل وب‌سایت‌های جنگو به API‌های وب به نام جنگو برای APIها نوشته‌ام. در عمل اکثر توسعه‌دهندگان جنگو به‌جای اپلیکیشن‌های وب تمام پشته که نیاز به پیش خوان (فرانت) اختصاصی جاوا اسکریپت دارند، به‌صورت تیمی با توسعه‌دهندگان دیگر کار می‌کنند و بر روی API‌های پس خوان(بک اند) تمرکز می‌نمایند. بنابراین خواندن کتاب جنگو برای APIها برای آموزش شما به‌عنوان یک توسعه‌دهنده جنگو مفید می‌باشد، اما انجام این کار قبل از خواندن این کتاب لازم نمی‌باشد.
ما در بیش تر این کتاب از داکر استفاده خواهیم کرد، اما همچنان به‌طور خلاصه به نصب پایتون و جنگو به‌صورت محلی تکیه می‌کنیم. Git و خط فرمان نیز اجزای ضروری زنجیره ابزار توسعه‌دهندگان مدرن هستند و هر دو به‌طور گسترده در این کتاب استفاده خواهند شد.
ساختار کتاب
فصل 1 با راه‌اندازی رایانه محلی شما برای توسعه با استفاده از خط فرمان، نصب پایتون، پیکربندی Git و ایجاد محیط‌های مجازی شروع می‌شود. فصل 2 مقدمه‌ای بر داکر است و چگونگی "Dockerize" پروژه سنتی جنگو را بررسی می‌نماید. در فصل 3 پایگاه داده PostgreSQL معرفی‌شده است، پایگاه داده‌ای آماده برای تولید که می‌توانیم آن را به‌صورت محلی در محیط داکر خود اجرا و همچنین در محیط تولید مستقر کنیم. سپس فصل 4 پروژه اصلی کتاب را شروع می‌کند: کتاب‌فروشی آنلاین که دارای مدل کاربر سفارشی، جستجو، بار گزاری تصویر، مجوزها، و مجموعه‌ای از چیزهای دیگر است.
فصل 5 بر ایجاد اپلیکیشن Pages برای صفحه اصلی اولیه همراه با تست قوی که شامل تمام ویژگی‌های جدیدی است که در سایت گنجانده‌شده، تمرکز دارد. در فصل 6 جریان کامل ثبت‌نام کاربر از ابتدا با استفاده از اپلیکیشن داخلی auth برای ثبت‌نام، ورود به سیستم و خروج از سیستم پیاده سازی می‌گردد.
فصل 7 پیکربندی مناسب دارایی استاتیک برای CSS، جاوا اسکریپت، تصاویر و همچنین افزودن بوت‌استرپ برای استایل را معرفی می‌کند.
در فصل 8 تمرکز روی ثبت‌نام پیشرفته کاربر، شامل ورود فقط با ایمیل و احراز هویت اجتماعی از طریق بسته شخص ثالث django-allauth قرار می‌گیرد. فصل 9 متغیرهای محیطی را معرفی می‌کند، یک جزء کلیدی از توسعه اپلیکیشن دوازده عاملی و بهترین روشی که به‌طور گسترده در جامعه توسعه وب استفاده می‌شود. در پایان راه‌اندازی پروژه، فصل 10 بر ایمیل و اضافه کردن ارائه‌دهنده شخص ثالث اختصاصی تمرکز دارد.
ساختار نیمه اول کتاب هدف¬مند می‌باشد. وقتی نوبت به ساخت پروژه‌های جنگو می‌رسد، این احتمال وجود دارد که بسیاری از مراحل مشابه از فصل‌های 3 تا 9 را تکرار کنید. از این گذشته، هر پروژه جدید به پیکربندی مناسب، احراز هویت کاربر و متغیرهای محیطی نیاز دارد. بنابراین این فصل‌ها را به‌عنوان توضیح و راهنمای دقیق خود در نظر بگیرید. نیمه دوم کتاب بر ویژگی‌های خاص مربوط به وب‌سایت کتاب‌فروشی ما تمرکز دارد.
فصل 11 با ساختن مدل‌ها، تست‌ها و صفحات کتاب‌فروشی از طریق اپلیکیشن Books شروع می‌شود. همچنین بحثی در مورد URL‌ها و تغییر از id به Slug در UUID (Universally Unique IDentifier) در URL‌ها وجود دارد. فصل 12 شامل افزودن نظرات به کتاب‌فروشی ما و بحث در مورد کلیدهای خارجی است.
در فصل 13 بار گزاری تصویر اضافه شده است و در فصل 14 مجوزها در سراسر سایت برای قفل‌کردن آن قرار داده شده است. برای هر سایتی، به‌ویژه تجارت الکترونیک، جستجو یک جزء حیاتی می‌باشد و فصل 15 درباره ساخت یک فرم و فیلترهای جستجوی پیچیده‌تر برای سایت توضیح می‌دهد.
در فصل 16 روی بهینه‌سازی‌های عملکرد ازجمله افزودن django-debug-toolbar برای بررسی پرس‌و‌جوها و قالب‌ها، ایندکس‌های پایگاه داده، دارایی‌های پس خوان و چندین گزینه کش کردن داخلی تمرکز می‌شود. فصل 17 امنیت جنگو، هم گزینه‌های داخلی و هم پیکربندی‌های اضافی را که می‌توان و باید برای یک محیط تولید اضافه کرد را پوشش می‌دهد. بخش آخر، فصل 18، در مورد استقرار، ارتقاهای استاندارد موردنیاز برای مهاجرت از سرویس دهنده وب جنگو، مدیریت فایل استاتیک محلی، و پیکربندی ALLOWED_HOSTS می‌باشد.
فصل نتیجه‌گیری به مراحل مختلف بعدی پروژه و بهترین شیوه‌های جنگو اشاره می‌کند.
صفحه‌آرایی کتاب
نمونه کدهای زیادی در این کتاب وجود دارد که فرمت آن‌ها به شرح زیر می‌باشد:
# This is Python code
print("Hello, World!")
برای اختصار، از سه‌نقطه ... برای نشان دادن کد موجود که در یک مثال کد طولانی‌تر که بدون تغییر باقی می‌ماند، استفاده می‌کنیم. به‌عنوان‌مثال، در تابع زیر، محتوای قبلی بدون تغییر است و دستور print() اضافه شده است. در این موارد عبارت # new نیز وجود خواهد داشت که نشان می‌دهد کد جدید کجا اضافه شده است.
def make_my_website:
...
print("All done!") # new
کد منبع کامل کتاب را می‌توانید در مخزن رسمی Github پیدا کنید. این مکان خوبی برای بررسی این¬که آیا کد شما مشکلی دارد یا خیر می‌باشد.
انجمن
" برای فریم‌ورک بیا، برای جامعه بمان" جمله‌ای رایج در میان توسعه‌دهندگان جنگو می‌باشد. درحالی‌که اساس کد جنگو بسیار تاثیرگذار است، درنهایت سلامت پروژه تا این مرحله و در آینده به جامعه‌ای بستگی دارد که در اطراف آن رشد کرده است. توسعه جنگو به‌صورت عمومی در لیست django-developers اتفاق می‌افتد و پروژه توسط یک سازمان غیرانتفاعی به نام بنیاد نرم‌افزار جنگو نظارت می‌شود، که مشارکت‌ها را مدیریت می‌کند، کنفرانس‌های سالانه DjangoCon و جلسات محلی را پشتیبانی می‌نماید که در آن توسعه‌دهندگان برای به اشتراک گذاشتن دانش و بینش جمع می‌شوند. یک انجمن رسمی جنگو شامل تعداد زیادی از اعضای جامعه جنگو وجود دارد که مکانی ایده آل برای درخواست کمک می‌باشد.
صرف‌نظر از این‌که چه سطحی از تخصص فنی شما درگیر جنگو می‌شود، راهی عالی برای یادگیری، ملاقات با توسعه‌دهندگان دیگر و افزایش شهرت شما است.
نتیجه‌گیری
جنگو انتخابی عالی برای هر توسعه‌ دهنده‌ای است که می‌خواهد اپلیکیشن‌های وب مدرن و قوی با حداقل کد را بسازد. در فصل بعدی، قبل از این که در ادامه کتاب عمیقا وارد جنگو شویم، مطمئن خواهیم شد که رایانه شما برای توسعه وب به‌درستی تنظیم شده است.
مرتبط با این کتاب

نظرات کاربران
هنوز نظری برای این کتاب ثبت نشده است.