کتاب Django for Beginners, 5th Edition: Build Modern Web Applications with Python (جنگو برای مبتدیان، ویرایش پنجم: ساخت برنامههای وب مدرن با پایتون) به صورت پروژه محور به آموزش توسعه وب با استفاده از فریم ورک جنگو میپردازد.
کتاب Django for Beginners با رویکردی گام به گام، از پروژههای ساده تا پروژههای پیچیدهتر، مفاهیم اصلی جنگو را آموزش میدهد. خوانندگان با ساخت شش برنامه وب مختلف، از جمله یک وبسایت ساده تا یک وبسایت روزنامه، با جنبههای مختلف جنگو، از جمله مدلها، نماها، URLها، قالبها، فرمها، احراز هویت کاربران، و استقرار آشنا میشوند. این کتاب حتی برای افرادی که هیچ پیشزمینهای در توسعه وب یا پایتون ندارند نیز قابل فهم است و با تمرکز بر عملی بودن و پروژه محور بودن، به خوانندگان در ساخت و استقرار برنامههای وب مدرن کمک میکند.
نکته: نسخه 4 این کتاب برای دانلود موجود میباشد.
در ادامه مقدمهای از کتاب Django for Beginners را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Django for Beginners:
به دنیای جنگو برای مبتدیان خوش آمدید، رویکردی مبتنی بر پروژه برای یادگیری توسعه وب با جنگو، یک چارچوب وب آزاد و متنباز نوشته شده به زبان پایتون. جنگو توسط همه، از دانشجویان و بنیانگذاران استارتآپها تا بزرگترین وبسایتهای جهان، از جمله اینستاگرام، یوتیوب، ردیت، نتفلیکس، دراپباکس و اسپاتیفای استفاده میشود. رویکرد «باتریدار» آن تمام قابلیتهای داخلی مورد نیاز برای ایجاد برنامههای وب قدرتمند و واقعی را بهسرعت فراهم میکند، از این رو شعار آن «چارچوب وب برای کمالگرایان در موعد مقرر» است.
فراوانی ویژگیهای جنگو میتواند برای افراد تازه وارد گیجکننده باشد. راهنمای رسمی نظرسنجی و مستندات رسمی برای توسعهدهندگان وب با سطح متوسط تا پیشرفته در نظر گرفته شدهاند، نه مبتدیان.
خبر خوب این است که، به عنوان یک چارچوب «شُل مرتبط»، اجزای جنگو بهطور مستقل یا با هم کار میکنند و درجه بالایی از ماژولاریتی را ارائه میدهند. به عبارت دیگر، شما فقط باید از آنچه نیاز دارید استفاده کنید (و یاد بگیرید). حتی توسعهدهندگان حرفهای با سالها تجربه تنها از برخی از قابلیتهای ارائه شده توسط چارچوب استفاده میکنند؛ بهسادگی خیلی بزرگ و گسترده است که تمام ویژگیهای آن در یک پروژه واحد جای نگیرد.
با این حال، خواهید دید که الگوها و وظایف مشابه در تقریباً هر وبسایت جنگو وجود دارد: ایجاد و ساختاردهی یک پروژه جدید، اتصال به پایگاه داده و پرسوجو از آن، افزودن منطق، انجام عملیات CRUD (ایجاد-خواندن-بهروزرسانی-حذف)، مدیریت حسابهای کاربری و فرمها و غیره.
جنگو نباید گیجکننده باشد؛ در واقع، نباید باشد! برای تقریباً هر مورد استفاده قابل تصوری راهحل داخلی وجود دارد: این همان چیزی است که مستندات برای آن هستند! اما هیچکس، حتی خالقان اصلی و توسعهدهندگان اصلی که بخش اعظم مستندات را نوشتهاند، نمیتوانند همه چیز را در ذهن خود نگه دارند. شما هم نباید تلاش کنید که این کار را انجام دهید!
کتاب Django for Beginners به عنوان یادداشتهای شخصی من در مورد ساخت پروژههای جنگو آغاز شد. زمان زیادی طول کشید تا ساختار جنگو را درونی کرده و با آن احساس راحتی کنم. بهترین راه برای تقویت درک من، ایجاد پروژههای فزایندهای پیچیده بود که روی یک مفهوم یا مهارت جدید تمرکز داشتند. در نهایت، یادداشتهای خود را به عنوان مجموعهای از پستهای وبلاگ منتشر کردم و بر اساس محبوبیت آنها، این کتاب را که اکنون در پنجمین نسخه خود است، ایجاد کردم.
در کتاب Django for Beginners، یاد خواهید گرفت که چگونه شش برنامه وب به طور فزایندهای پیچیده بسازید، آزمایش کنید و مستقر کنید. ما با یک برنامه «سلام دنیا» شروع میکنیم و با یک وبسایت روزنامه واقعی به پایان میرسیم که تمام مفاهیم و تکنیکهای اساسی پوشش داده شده در کتاب، از جمله مدلها، نماها، URLها، قالبها، فرمها، حسابهای کاربری، مجوزها و موارد دیگر را به هم پیوند میدهد.
در پایان کتاب Django for Beginners، باید در ایجاد پروژههای جنگو از ابتدا احساس اطمینان کنید و پیشزمینه لازم را برای پر کردن هرگونه شکاف دانش با منابع آموزشی پیشرفتهتر داشته باشید.
چرا جنگو را یاد بگیریم؟
جنگو در پاییز 2003 در روزنامه Lawrence Journal-World ایجاد شد و به نام گیتاریست مشهور جاز، ژانگو رینهارد نامگذاری شد؛ در جولای 2005 به عنوان یک پروژه آزاد و متنباز منتشر شد. این بدان معناست که تقریباً بیست ساله است، از نظر نرمافزار کاملاً بالغ است، اما همچنان به رشد خود ادامه داده است و میتوان گفت امروزه از هر زمان دیگری پویاتر است. هر هفته، دهها ارسال کد جدید در چارچوب پذیرفته میشود، بهروزرسانیهای امنیتی و رفع اشکال ماهانه و یک نسخه جدید اصلی هر هشت ماه. یک اکوسیستم وسیع از بستههای شخص ثالث، قابلیتهای فراتر از چارچوب اصلی را ارائه میدهد.
جنگو به زبان برنامهنویسی پایتون نوشته شده است که فوقالعاده قابل خواندن و قدرتمند است و میتوان گفت محبوبترین زبان در جهان امروز است. پایتون انتخاب پیشفرض در بیشتر برنامههای درسی علوم کامپیوتر دانشگاهی است، زبان غالب برای علم داده و هوش مصنوعی و بهطور گسترده در تحقیقات علمی استفاده میشود. سهولت استفاده و کاربرد گسترده آن، پایتون را برای تقریباً هر کاری مناسب میکند.
جنگو رویکرد «باتریدار» پایتون را به ارث برده است و طیف وسیعی از ویژگیهای داخلی را برای وظایف معمول در توسعه وب ارائه میدهد، از جمله:
- ORM ( نگاشت شیء-رابطهای): بهجای SQL خام، از پایتون برای ایجاد و پرسوجو از جداول پایگاه داده استفاده کنید.
- احراز هویت: یک سیستم کامل و ایمن برای حسابهای کاربری، گروهها، مجوزها و جلسات کاربری مبتنی بر کوکی.
- موتور قالبسازی: یک نحو ساده برای افزودن متغیرها و منطق برای ایجاد HTML پویا.
- فرمها: یک کتابخانه فرم قدرتمند که رندر و اعتبارسنجی را مدیریت میکند.
- مسیریابی URL: یک طرح URL تمیز و زیبا که نگهداری و استدلال در مورد آن آسان است.
- رابط کاربری مدیریت: یک روش بصری برای تعامل با تمام دادههای وبسایت، از جمله کاربران و جداول پایگاه داده.
- بینالمللیسازی: پشتیبانی چندزبانه به علاوه قالببندی خاص منطقهای تاریخ، زمان، اعداد و مناطق زمانی.
- امنیت: محافظت در برابر تزریق SQL، اسکریپتنویسی بین سایتی، جعل درخواست بین سایتی، کلیکجکینگ و اجرای کد از راه دور.
این رویکرد به توسعهدهندگان وب اجازه میدهد تا روی آنچه که یک برنامه وب را منحصر به فرد میکند تمرکز کنند، نه اینکه هر بار چرخ را از نو اختراع کنند. میلیونها کاربر قبلاً از کد مورد نیاز استفاده کردهاند و آن را آزمایش کردهاند، بنابراین میدانید که ایمن و کارآمد خواهد بود.
در مقابل، برخی از چارچوبهای وب مانند Flask، رویکرد میکروچارچوب را اتخاذ میکنند که فقط حداقل مورد نیاز برای یک صفحه وب ساده را ارائه میدهند. Flask بسیار سبکتر از جنگو است و حداکثر انعطافپذیری را ارائه میدهد.
با این حال، این با هزینهای برای توسعهدهنده همراه است. ساخت یک وبسایت ساده Flask نیاز به افزودن دهها بسته شخص ثالث دارد که ممکن است بهروز، ایمن یا قابل اعتماد نباشند. فقدان خطوط راهنما نیز به این معنی است که ساختار پروژه Flask بسیار متفاوت است، که باعث میشود در هنگام جابجایی بین پروژههای مختلف، حفظ بهترین شیوهها دشوار شود. Flask انتخاب خوبی برای یک چارچوب وب است؛ فقط نقاط قوت و ضعف متفاوتی نسبت به یک گزینه کامل مانند جنگو دارد.
در میان توسعهدهندگان قدیمی جنگو، یک ضربالمثل وجود دارد: «برای چارچوب بیا، برای جامعه بمان.» و این درست است! جنگو یک جامعه غیرمعمول گرم و پذیرا برای همه سطوح برنامهنویس دارد که در کنفرانسهای سالانه DjangoCon که توسط داوطلبان در چند قاره برگزار میشود، یک انجمن فعال برای بحث و گفتگو و جلسات منظم در شهرهای بزرگ نشان داده میشود.
بر خلاف سایر پروژههای متنباز که توسط شرکتها یا افراد اداره میشوند، جنگو به عنوان یک سازمان غیرانتفاعی از طریق بنیاد نرمافزار جنگو سازماندهی شده است که هدف آن ارتقاء، حمایت و پیشبرد چارچوب وب است. هیئت مدیره آن بهصورت سالانه توسط جامعه انتخاب میشود.
میلیونها برنامهنویس قبلاً از جنگو برای ساخت وبسایتهای خود استفاده کردهاند و میلیونها نفر دیگر هر سال به آن روی میآورند، زیرا زمانی که میتوانید به یک جامعه بزرگ از توسعهدهندگان درخشان که قبلاً کار سخت را برای ما انجام دادهاند، تکیه کنید، هیچ منطقی برای اختراع مجدد چرخ وجود ندارد.
پیشنیازها
برای تکمیل کتاب Django for Beginners به تجربه قبلی در پایتون یا توسعه وب نیاز ندارید. حتی کسی که تازه با برنامهنویسی و توسعه وب آشنا شده است، میتواند از آن پیروی کند و جادوی نوشتن برنامههای وب از ابتدا را احساس کند.
با این حال، آشنایی با پایتون، HTML و CSS اساسی تا حد زیادی به تقویت درک شما از مفاهیم اصلی کمک خواهد کرد. در سراسر کتاب Django for Beginners هر زمان که جنگو با سایر چارچوبهای وب تفاوت داشته باشد، مراجعی وجود دارد. واضحترین مثال این است که جنگو از رویکرد MVT (مدل-نما-قالب) کمی متفاوت از الگوی غالب MVC (مدل-نما-کنترلر) استفاده میکند. پس از شروع نوشتن کد، به طور کامل به این تفاوتها خواهیم پرداخت.
چه چیزی در جنگو 5 جدید است؟
جنگو 5.0 در دسامبر 2023 منتشر شد و از پایتون 3.10، 3.11 و 3.12 پشتیبانی رسمی میکند. لازم به ذکر است که سیاست نسخهبندی جنگو مبتنی بر زمان است نه مبتنی بر ویژگی. تقریباً هر هشت ماه، یک نسخه جدید با ویژگیهای جدید منتشر میشود، همراه با رفع اشکال و وصلههای امنیتی ماهانه در صورت نیاز. جنگو همچنین الگوی .0، .1، .2 و سپس بازگشت به .0 را برای انتشارات ویژگیها دنبال میکند، به این معنی که میتوانید انتظار جنگو 5.1 را در آگوست 2024، جنگو 5.2 را در آوریل 2025، جنگو 6.0 را در دسامبر 2025 و غیره داشته باشید.
جنگو جامعهای بسیار بزرگ و فعال از مشارکتکنندگان دارد که سالها پیش تصمیم گرفته شد که بر انتشارات منظم تمرکز شود تا اینکه منتظر تکمیل ویژگیهای خاص باشیم.
نسخههای خاص (آنهایی که با .2 ختم میشوند، مانند جنگو 5.2 و 6.2) به عنوان نسخههای پشتیبانی بلندمدت (LTS) تعیین میشوند و رفع اشکال امنیتی و از دست رفتن دادهها را برای یک دوره تضمینشده، معمولاً سه سال دریافت میکنند. این سیاست برای شرکتهای بزرگتر که برای همگام شدن با برنامه انتشار سریع جنگو تلاش میکنند، طراحی شده است. با این حال، بهترین سیاست امنیتی این است که اگر میتوانید در آخرین نسخه ممکن باشید، نه در یک نسخه LTS.
پس چه چیزی در جنگو 5.0 جدید است؟ قابل توجه ترین تغییر، رندر فیلد فرم است که اکنون بسیار ساده شده است. فیلترهای Facet به ادمین اضافه شدهاند تا فیلترینگ UI آسانتر شود، مقادیر پیشفرض محاسبه شده توسط پایگاه داده اکنون امکانپذیر است و پشتیبانی رسمی برای پایتون 3.10، 3.11 و 3.12 وجود دارد.
جنگو بهتدریج در طول سالها پشتیبانی ناهمگام را اضافه کرده است و این نسخه یک تابع ناهمگام جدید را به ماژول auth اضافه میکند که احراز هویت کاربر را کنترل میکند. اما شاید قابل توجه ترین تغییر برای توسعه دهندگان که به آخرین نسخه ارتقا میدهند این باشد که لینک های خروج از سیستم اکنون باید درخواست های POST باشند نه GET.
جنگو یک چارچوب وب بالغ است که تلاش میکند پایدار بماند و در کنار وب مدرن پیشرفت کند. اگر خود را در پروژهای با نسخه قدیمیتر جنگو میبینید، دستورالعملهای مفصلی برای بهروزرسانی به آخرین نسخه وجود دارد.
ساختار کتاب
کتاب Django for Beginners با نشان دادن نحوه پیکربندی یک محیط توسعه محلی برای ویندوز و macOS در فصل 1 کتاب Django for Beginners آغاز میشود. سپس در مورد خط فرمان قدرتمند، Git، پیکربندی ویرایشگرهای متن و نحوه نصب آخرین نسخههای پایتون و جنگو یاد میگیریم.
در فصل 2 کتاب Django for Beginners، قبل از اینکه به بررسی معماری جنگو بپردازیم، نحوه کار وبسایتها و چارچوبهای وب را بررسی میکنیم. از آنجا، اولین پروژه خود را، یک وبسایت حداقل «سلام دنیا»، میسازیم، در حالی که در مورد نماها، URL و برنامهها یاد میگیریم. ما حتی کار خود را با Git ذخیره میکنیم و یک کپی را به مخزن کد از راه دور در GitHub آپلود میکنیم.
در فصل 3 کتاب Django for Beginners، یک وبسایت شخصی میسازیم، آزمایش میکنیم و مستقر میکنیم که نماهای مبتنی بر تابع، قالبها و زبان قالبسازی جنگو را معرفی میکند. متن قالب را بررسی میکنیم و اولین آزمایشهای خود را با استفاده از چارچوب آزمایش داخلی جنگو مینویسیم.
نماهای مبتنی بر کلاس، وراثت قالب و الگوهای آزمایش پیشرفتهتر در فصل 4 کتاب Django for Beginners پوشش داده شده است، جایی که ما یک وبسایت شرکتی میسازیم. این آخرین پروژه قبل از اینکه به مدلهای جنگو و وبسایتهای پشتیبان پایگاه داده بپردازیم، است.
اولین پروژه پشتیبان پایگاه داده خود را در فصل 5 کتاب Django for Beginners، یک وبسایت پیامرسانی، میسازیم. جنگو یک ORM (نگاشت شیء-رابطهای) قدرتمند ارائه میدهد که نیاز به نوشتن SQL خام را برای ما از بین میبرد.
در عوض، میتوانیم پایتون را در یک فایل models.py بنویسیم که ORM آن را بهطور خودکار به SQL صحیح برای چندین بکاند پایگاه داده (PostgreSQL، MySQL، SQLite، MariaDB و Oracle) ترجمه میکند. برنامه ادمین داخلی را که یک روش گرافیکی برای تعامل با دادهها ارائه میدهد، بررسی خواهیم کرد. البته، ما همچنین برای تمام کد خود آزمایش مینویسیم و یک کپی از راه دور در GitHub ذخیره میکنیم.
در فصلهای 6-8 کتاب Django for Beginners، آماده یک وبسایت وبلاگ هستیم که قابلیت CRUD (ایجاد-خواندن-بهروزرسانی-حذف) را پیادهسازی میکند. با استفاده از نماهای مبتنی بر تابع و سپس تغییر به نماهای مبتنی بر کلاس عمومی جنگو، فقط باید مقدار کمی کد واقعی برای این کار بنویسیم. سپس، فرمها را اضافه میکنیم و سیستم احراز هویت داخلی کاربر جنگو را برای ثبت نام، ورود و خروج ادغام میکنیم.
بقیه کتاب Django for Beginners به ساخت و استقرار یک وبسایت روزنامه آماده برای تولید اختصاص دارد. فصل 9 کتاب Django for Beginners نحوه راهاندازی یک پروژه جدید با استفاده از یک مدل کاربری سفارشی و آزمایشهای مناسب را نشان میدهد.
فصل 10 کتاب Django for Beginners یک جریان کامل احراز هویت کاربر از ورود، خروج و ثبت نام را پوشش میدهد، در حالی که فصل 11 Bootstrap را برای سبکسازی CSS پیشرفته اضافه میکند.
فصل 12 ریست و تغییر رمز عبور را از طریق ایمیل پیادهسازی میکند و در فصلهای 13-15، مقالات، نظرات، مجوزها و مجوزهای مناسب را اضافه میکنیم. در نهایت، در فصل 16 کتاب Django for Beginners استقرار آماده برای تولید پوشش داده شده است.
نتیجهگیری، مروری بر مفاهیم اصلی معرفی شده در کتاب Django for Beginners و فهرستی از منابع پیشنهادی برای یادگیری بیشتر ارائه میدهد. در حالی که ممکن است وسوسه شوید که در این کتاب به اطراف بپرید، توصیه میکنم فصلها را به ترتیب بخوانید. هر فصل کتاب Django for Beginners مفهومی جدید را معرفی میکند و بر آموزشهای گذشته بنا مینهد.
در پایان کتاب Django for Beginners، درک جامعی از جنگو، توانایی ساخت برنامههای خود و پیشزمینه مورد نیاز برای استفاده کامل از منابع اضافی برای یادگیری تکنیکهای جنگو در سطح متوسط و پیشرفته خواهید داشت.
سرفصلهای کتاب Django for Beginners:
- Foreword
- Chapter 0: Introduction
- Chapter 1: Initial Set Up
- Chapter 2: Hello, World Website
- Chapter 3: Personal Website
- Chapter 4: Company Website
- Chapter 5: Message Board Website
- Chapter 6: Blog Website
- Chapter 7: Forms
- Chapter 8: User Accounts
- Chapter 9: Newspaper Project
- Chapter 10: User Authentication
- Chapter 11: Bootstrap
- Chapter 12: Password Change and Reset
- Chapter 13: Articles App
- Chapter 14: Permissions and Authorization
- Chapter 15: Comments
- Chapter 16: Deployment
- Chapter 17: Conclusion
جهت دانلود کتاب Django for Beginners میتوانید پس از پرداخت، دریافت کنید.
azi –
واقعا کتاب عالی ای هست.ممنون از سایت خوبتون