برنامه نویسی را از صفر شروع کنید!
دوره آموزش Django
TAHLILDADEH ACADEMY
جنگو Django چیست؟
فریمورک Django (جنگو) فریمورکی سطح بالا، رایگان و متنباز است که برای ساخت Web Applicati on های نوشته شده با پایتون، مورداستفاده قرار میگیرد. با استفاده از این فریمورک میتوانید بهسادگی هرچه تمام، یک Application تحت وب بسیار قدرتمند و سریع ایجاد کرده و از قابلیتهای بیشمار زبان Python، از جمله هوش مصنوعی و ... در آن استفاده کنید. ما همچنان از HTML ، CSS و جاوا اسکریپت برای راب ط کاربری وبسایتها استفاده خواهیم کرد، اما برای همه چیزهایی که روی سرور اتفاق میافتد که شامل مدیریت درخواستهای دریافتی و ارسال پاسخها است، از جنگو استفاده میکنیم یا میتوانیم از جنگو استفاده کنیم. فریمورک جنگو (Django) از محبوبترین فریمورکهای برنامهنویسی وب بهحساب میآید؛ زیرا ازیکطرف دارای سرعت توسعه، کتابخانههای غنی و امنیت مناسب است و از طرف دیگر با زبان پایتون برنامهنویسی میشود. پیادهسازی Web Application به سادهترین و سریعترین حالت ممکن، یکی از مهمترین اهداف جنگو (Django) است. تقریباً برای پیادهسازی هر قابلیتی در فریمورک جنگو، از قبل یک package ایجاد شده که مورد تست و بررسی نیز قرار گرفته است و این مسئله در نهایت باعث افزایش چشمگیر سرعت کدنویسی و توسعه نرمافزار میشود و به شما این امکان را میدهد تا زمان بیشتری را صرف منطق نرمافزار خود کنید. شرکتهای بزرگی همچون Instagram, Pinterest, Udemy, MIT, YouTube, Spotify و هزاران شرکت دیگر از این فریمورک استفاده میکنند و این آمار همچنان در حال افزایش است.
اما چارچوب چیست؟
یک فریمورک در واقع که یک ماژول یا یک کتابخانه ارکان سوم است که روی سیستم خود نصب میکنید، و ایده این است که با نصب یک فریمورک مجموعهای از قابلیتهای کاربردی را در اختیار خواهید داشت که میتوانید با استفاده از آنها میتوانید بسیاری از فرایندها را بهسادگی انجام دهید. برای اینکه شما بهعنوان یک توسعهدهنده مجبور نباشید وقت خود را صرف بسیاری از کارهای معمولی مانند مدیریت Session و احراز هویت و آپلود فایلها، مدیریت درخواستهای دریافتی و ارسال پاسخها کنید، و بر روی جزئیات ریز آنها تمرکز کنید، و در عوض میتوانید روی آنچه که وبسایت شما را تشکیل میدهد و بر منطق اصلی کسبوکار خودتان، چیزی برای شما درآمد کسب میکند، تمرکز کنید، بهعبارتدیگر لازم نیست همیشه چرخ را دوباره اختراع کنید. به همین دلیل است که ما از یک چارچوب استفاده میکنیم، اما این چارچوب فقط یک کتابخانه نیست، زیرا نهتنها همه این ابزارها را برای استفاده در اختیار ما قرار میدهد، بلکه مجموعهای از قوانین در مورد نحوه استفاده از این ابزارها را ارائه میدهد.
این مسیر با راهاندازی یک پروژه جنگو شروع میشود، همانطور که بعداً خواهید دید، ما ابزاری برای آن نیز داریم و پروژهای را به ما میدهد که ساختار خاصی دارد که باید برای هر نوع پروژه جنگو رعایت شود. زمانی که شما از جنگو استفاده میکنید شما مجبور نیستید در مورد اینکه چگونه کاری را به بهترین شکل انجام دهید، فکر کنید، شما میدانید که چگونه آن را انجام دهید؛ زیرا یک مسیر روشن با جنگو وجود دارد، و پس از آن فقط تصمیم میگیرید که چه نوع دادهای و در چه زمانی باید ذخیره شود و غیره. به همین دلیل است که ما از جنگو استفاده میکنیم، از آن استفاده میکنیم؛ زیرا کار زیادی را که میتوانند وقت بسیاری از ما بگیرند را بهراحتی برای ما انجام دهد و در عوض ما بر روی منطق اصلی تجارت خود تمرکز میکنیم و محبوبترین چارچوب توسعه وب برای پایتون است. جنگو فقط یک چارچوب کوچک برای یک پروژه کوچک نیست، بلکه شما واقعاً میتوانید از آن برای ایجاد وبسایتهایی با هراندازه استفاده کنید، فرقی نمیکند که یک پروژه کوچک جانبی باشد یا یک بزرگ در سطح سازمانی باشد، میتوانید آن را با جنگو بسازید، و در این دوره، ما قصد داریم تمام ویژگیهای اصلی را که برای استفاده از جنگو باید بدانید، بررسی میکنیم.
از جمله ویژگی های فریم ورک Django (جنگو) می توان به موارد زیر اشاره کرد :
- کامل بودن جنگو
- قابلیت توسعه سریع و راحت
- امن بودن
- دسترسی کافی به Package های مختلف
- مستندات کافی در فضای اینترنت
- جامعه گسترده و پشتیبانی شده
- قابلیت استفاده چندباره از کدها
- پشتیبانی از دیتابیسها و سئو
- مقیاس پذیری
چرا جنگو؟
دلایل بسیاری برای محبوبیت فریم ورک جنگو وجود دارد که از جمله آنها می توان به موارد زیر اشاره کرد :
- امنیت بالا
امنیت بالاترین اولویت فریم ورک جنگو است و جنگو یکی از بهترین سیستم های امنیتی را داراست. این سیستم به توسعه دهندگان کمک می کند تا براحتی از مسائل امنیتی رایج مانند SQL Injection, Cross-Site Scripting, ClickJacking جلوگیری کنند. فریم ورک جنگو بروزرسانی های امنیتی جدید را به سرعت منتشر می کند و معمولاً اولین چارچوبی است که به آسیب پذیری ها پاسخ می دهد و به سایر چارچوب ها نسبت به این آسیب پذیری ها هشدار می دهد.
- برای هر پروژه ای از وب مناسب است
با استفاده از فریم ورک Django، می توانید پروژه هایی در اندازه و ظرفیت مختلف را انجام دهید، این پروژه ها می توانند یک وب سایت ساده و یا یک برنامه تحت وب پر بار و پربازدید باشند.
- کاملا ثابت شده است
فریم ورک Django (جنگو) در طول زمان توسط افراد زیادی آزمایش شده و عملکرد خودش را ثابت کرده است. و در حال حاضر جامعه بزرگی از آن استفاده می کنند، این یک جامعه بزرگ و پشتیبانی کننده است که از طریق انجمن ها، کانال ها و وب سایت های اختصاصی متعدد در دسترس است و در صورت بروز مشکل در کد، کمک گرفتن از چنین جامعه بزرگی آسان است.
- مستندات کامل و بروز
فریم ورک جنگو کار خود را با مستندات عالی ــ بهترین مستندات در میان دیگر چارچوب های متن باز ــ آغاز کرده است و هنوز هم در سطح بالایی حفظ می شوند. این مستندات همراه با بروزرسانی های جدید جنگو، به روز می شوند، بنابراین می توانید به راحتی با تغییرات سازگار شوید.
- سادگی در کد نویسی
فریم ورک جنگو با پایتون نوشته شده است؛ برنامه نویسی در جنگو همانند پایتون ساده و روان است. در جنگو می توان با دسترسی به تمامی کتابخانه های پایتون، حجم کد نویسی را بشدت کاهش داد.
- استفاده از قابلیت های هوش مصنوعی پایتون
فریم ورک Django تمامی کتابخانه های پایتون در جنگو نصب می شوند و می توان از آنها استفاده کرد. با نصب کتابخانه های مربوط به داده کاوی و یادگیری ماشین می توان قابلیت های هوش مصنوعی را به وبسایت طراحی شده اضافه کرد.
پروژه فروشگاه اینترنتی که در طول دوره جنگو Django توسط مدرس پیاده سازی خواهد شد :
برای آنکه بتوانیم مطالبی را که در دوره Django آموختهایم را بصورت منسجم پیادهسازی کنیم و توانایی خود را محک بزنیم در این بخش به طراحی و ایجاد یک پروژه فروشگاه اینترنتی میپردازیم.
موارد مطرح شده در این بخش عبارتند از:
- نمای کلی پروژه فروشگاه اینترنتی
- راه اندازی پروژه فروشگاه اینترنتی
- ایجاد مدل محصول
- افزودن محصولات به پایگاه داده
- ساخت نمای ایندکس
- نمایش محصولات در صفحه index
- افزودن CSS
- افزودن قابلیت جستجو
- اضافه کردن صفحه¬بندی
- ایجاد نمای جزئیات برای محصولات
- پیوند دادن نمای ایندکس با نمای جزئیات
- استفاده از حافظه محلی برای ذخیره اقلام سبد خرید
- افزودن کوئری و ایجاد سبد خرید
- دریافت شناسه محصول
- ذخیره اقلام در سبد خرید
- نمایش تعداد آیتم ها در نوار منو
- افزودن Cart Items در Popover
- اصلاح محتوای Popover
- افزودن اقلام سبد خرید در Popover
- الگوی صفحه پرداخت
- افزودن اقلام سبد خرید به گروه لیست
- افزودن فرم پرداخت
- افزودن اقلام سبد خرید به پایگاه داده
- افزودن قیمت اقلام
- محاسبه کل سفارش
- افزودن کل سفارش به پایگاه داده
اهداف دوره آموزشی Django
- در دوره آموزش Django (جنگو)، جنگو به صورت پروژه محور و کاملا کاربردی و عملی آموزش داده می شود. چگونگی ساخت وب سایت بوسیله Django را می آموزید، یک وبسایت را از اول میسازید، با پایتون کدنویسی میکنید؛ برای Front end از قالب های آماده استفاده می کنید و در صورت نیاز با HTML طراحی میکنید؛ با بوت استرپ استایلدهی میکنید و سرانجام در فضای اینترنت و یک سرور آنلاین منتشر میکنید. تمامی کدهای برنامه نویسی وب با پایتون را از صفر تا صد بهمراه مدرس مینویسید.
- پروژه عملی دوره آموزش جنگو (Django)، ساخت وب سایت فروشگاه با پایتون و استفاده از فریم ورک جنگو است که در طول دوره متناسب با پیشرفت مباحث تدریس شده، بصورت کار در منزل آن را طراحی و کد نویسی می کنید؛ و اگر ایده ای استارتاپی داشته باشید پروژه عملی شما همین ایده استارتاپی خواهد بود و آن را با کمک مدرس در طول دوره توسعه خواهید داد.
سر فصل دوره آموزش جنگو Django
این بخش شامل همه چیز در مورد راه اندازی جنگو است، بنابراین نحوه نصب آن و ایجاد پروژه های جنگو که در آن می توانیم کار کنیم آموزش داده میشود. بنابراین، ما کار را با نصب خود جنگو بر روی سیستم خود شروع میکنیم، سپس میخواهیم دید که چگونه میتوان پروژههای جنگو جدید را پس از نصب جنگو ایجاد کرد.
و در آخر این بخش، ما همچنین یک پروژه کاملاً جدید جنگو را تجزیه و تحلیل خواهیم کرد، و فایلهای و ساختار پیش فرض را بررسی خواهیم کرد.
موارد زیر در این بخش مطرح میشود:
- نصب پایتون و جنگو
- ایجاد پروژه جنگو
- نصب IDE
- تجزیه و تحلیل پروژه ایجاد شده
- راه اندازی سرور
ما یاد گرفتیم که چگونه پروژههای جنگو را ایجاد کنیم و بنابراین اکنون میخواهیم وارد پروژه جنگو شویم و اولین کد خود را بنویسیم و اولین وبسایت خود را با جنگو بسازیم. در این بخش، ما قصد داریم با برخی از مفاهیم اصلی هر برنامه جنگو، هر سایت جنگو و بنابراین هر چیزی که فارغ از آنچه میسازید باید بدانید، شروع کنیم.
ما قصد داریم به URLها بپردازیم، مفهومی که اغلب مسیرها (routes) و نماها (views) نیز نامیده می شود. و توضیح خواهیم داد که این دو مفهوم در مورد چیست، چرا ما به آنها نیاز داریم و چه کاری انجام می دهند و بنابراین در این بخش دوره، می خواهیم بررسی کنیم که URL ها یا مسیرها و نماها چیست.
خواهیم فهمید که جنگو چگونه با درخواست ها و پاسخ های HTTP برخورد می کند. در واقع همه چیز در مورد درخواست ها و پاسخ ها.
در این بخش قصد داریم به بررسی چگونگی ارائه محتوا و پردازش ورودی کاربر، حداقل تا حدی معین بپردازیم. و بعداً در سایر بخشهای دوره نیز عمیقتر به آن میپردازیم، اما میخواهیم با اصول مهم آن در این بخش شروع کنیم. و کار را با ایجاد یک پروژه چالشی که ساختن آن به ما کمک می کند این اصول اولیه را تمرین کنیم، شروع می کنیم. این پروژه یک پروژه بسیار ساده است، اما به ما اجازه می دهد تا به این موارد ضروری بپردازیم. این پروژه شامل اینها چالش های مختلفی هستند که ما در صفحات مختلف وب با آنها برخورد خواهیم کرد و در حالی که این یک برنامه ساده است و در این مرحله نیز احتمالاً یک برنامه زیبا نیست، اولین برنامه خواهد بود، اولین پروژه ای که به ما امکان می دهد تا این موارد را به طور کامل درک و تمرین کنیم.
موارد زیر را در این بخش خواهیم آموخت:
- ایجاد یک پروژه جدید
- URL ها و Views چیست؟
- ایجاد اولین View و URL
- افزودن View و URL های بیشتر
- Dynamic Path Segments & Captured Values
- مبدل های مسیر
- اضافه کردن Dynamic View Logic بیشتر
- تغییر مسیرها
- Reverse Function و URL های نامگذاری شده
- Returning HTML
- تمرین URLs, Views & Dynamic View Logic
تا این مرحله در دوره، نحوه کار با URL ها و view ها را یاد گرفتیم و این وب سایت اصلی را در اینجا ساختیم که مسلماً خیلی زیبا نیست. اکنون، ما می خواهیم ظاهر این صفحه را در این ماژول تغییر دهیم تا ظاهر بهتری داشته باشد. در این بخش قصد داریم نگاهی دقیق تر به قالب جنگو و ویژگی هایی که ارائه می دهد بیاندازیم. زیرا این به ما کمک می کند تا محتوای پویا را در فایل های HTML ایجاد کنیم. و در آخر، سایت خود را با افزودن فایل های ثابت مانند CSS کمی زیباتر می کنیم.
موارد مطرح شده در این بخش عبارتند از:
- افزودن و ثبت الگوها
- الگوهای رندرینگ
- Django Template Language
- فیلترها
- افزونه Django Visual Studio Code
- Tags & the for Tag
- Tag URL برای URL های پویا
- if Tag برای محتوای مشروط
- وراثت قالب
- قالب 404
- افزودن فایل های استاتیک
- افزودن فایل های استاتیک سراسری
- اضافه کردن استایل CSS
پروژه ایجاد وبلاگ در دوره آموزش جنگو Django
تا این مرحله، ما بر روی یک برنامه ابتدایی کار می کردیم که البته خوب بود. این یک برنامه ساده خوب برای آشنایی با ویژگی های اصلی جنگو بود، اما خیلی واقعی و بزرگ نبود. بنابراین در این بخش قصد داریم پروژه دیگری را نیز راهاندازی کنیم. ما قصد داریم یک وبلاگ بسازیم. قصد داریم وبلاگ شخصی شما را بسازیم و برای آن، آنچه را که تا کنون آموخته ایم به کار خواهیم برد.
در طول دوره به موازات یادگیری موارد بیشتر به وبلاگ باز می گردیم تا آن را تقویت کنیم و ویژگی های بیشتری نیز به آن اضافه کنیم. ابتدا با چیزهایی که قبلاً در مورد آنها آموختهایم، شروع می کنیم.
بنابراین در این بخش ، ایده این است که ما یک پروژه و برنامه وبلاگ جدید ایجاد کنیم و سپس URL ها و نماها را به این برنامه و به این پروژه اضافه می کنیم تا مطمئن شویم که می توانیم صفحات مختلف را بارگذاری کنیم و سپس البته روی برخی قالب ها و فایل های ثابت به طوری که ما واقعاً یک وبلاگ واقعی گام به گام به دست آوریم کار میکنیم.
موارد مطرح شده در این بخش عبارتند از:
- راه اندازی پروژه
- برنامه ریزی پروژه
- اضافه کردن URL ها و Views
- اضافه کردن اولین قالب ها
- قالب و فایل های ثابت
- افزودن تصاویر به عنوان فایل استاتیک
- افزودن صفحه پست ها
- پیوند دادن صفحات
- افزودن Single Post Page
- افزودن داده های ساختگی به فایل Views
- Special Template Features & Syntax
- افزودن یک Single Post Page
- افزودن صفحه 404
در حال حاضر، تا این مرحله، هر زمان که ما با داده ها کار کردیم، اساساً از داده های ساختگی بود که ما آن را در کد پایتون خود مدیریت میکردیم. و این البته خیلی واقع بینانه نیست، هر زمان که برنامه پایتون را دوباره راه اندازی کنیم هر گونه تغییر در داده ها از بین می رود. بنابراین اگر فقط با متغیرها کار کنیم، ذخیره سازی دائمی نیست. و همچنین تقریباً همیشه به برخی از دادههایی نیاز دارید که باید برای همیشه باقی بمانند، یا باید به طور دائمی ذخیره شوند. در نتیجه باید در پایان در یک پایگاه داده ذخیره شود.
بنابراین در این بخش، ما قصد داریم به نحوه مدیریت دادهها در یک برنامه جنگو، که دائمیتر است، که برای مدت زمان طولانیتری نسبت به راهاندازی مجدد برنامه بعدی باقی میماند، نگاهی بیندازیم.
و ما قصد داریم نگاهی بیاندازیم به اینکه چگونه می توانیم با پایگاه داده ها تعامل داشته باشیم و چگونه یک مفهوم جنگو به نام مدل ها به ما در این امر کمک می کند.
و ما همچنین، البته، نگاهی مختصر به این خواهیم داشت که دقیقاً یک پایگاه داده چیست، و کارکرد آن چگونه است. و سپس دستورات SQL را بررسی می کنیم، که می توانیم از آنها برای کوئری زدن در برخی پایگاه های داده استفاده کنیم. و خواهیم آموخت که چگونه یک مفهوم را در جنگو مدلسازی کنیم. و پس در ادامه نگاهی دقیقتر به نحو خاص داده و پایگاه داده و ویژگیهایی که جنگو به ما ارائه میدهد، در مورد کار با مدلها و ساخت پرسوجوهای پایگاه داده، درج و بهروزرسانی، حذف و دریافت دادهها بیندازیم.
بنابراین مطالب زیادی در این بخش برای یادگیری وجود دارد که عبارتند از:
- انواع مختلف داده ها
- آشنایی با گزینه های پایگاه داده
- درک SQL
- مدل های جنگو
- ایجاد یک مدل جنگو به همراه فیلدها
- Migrations
- درج داده ها
- دریافت همه ورودی ها
- به روز رسانی مدل ها و Migrations
- Blank در مقابل Null
- به روز رسانی داده ها
- حذف داده ها
- به جای ذخیره ایجاد کنید
- کوئری زدن و فیلتر کردن داده ها
- شرایط or
- عملکرد کوئری
- آماده سازی قالب ها
- ارائه داده های کوئری در قالب
- رندر کردن صفحه جزئیات
- URL های مدل
- افزودن Slugfield & Overwriting Save
- استفاده از گزینه های فیلد Slug & Updating
- Aggregation & Ordering
در بخش قبل کار با داده ها و پایگاه داده را شروع کردیم با مدل ها آشنا شدیم. ما توانستیم از مدلها برای درج دادهها در پایگاه داده و برای بهروزرسانی و حذف آنها استفاده کنیم. و همچنین میتوانیم از مدلهایی برای کوئری زدن به دادهها و دریافت دادهها استفاده کنیم.
اما تا اینجا، بسیاری از کارهای ما در این پوسته تعاملی اتفاق افتاد و هر زمان که میخواستیم داده های خود را اضافه یا به روز کنیم لازم است به پوسته رفته تا با مدل در آنجا کار کنیم. واقعیت این است که انجام این کارها به عنوان ادمین سایت واقعاً راحت نیست و در وداقع این راهی نیست که برای ویرایش داده ها مناسب باشد. علاوه بر این، اگر بعداً سایت خود را مستقر کنید و آن را بر یک سرور قرار دهید، ممکن است نخواهید برای تعامل با داده های خود به آن سرور متصل شوید. پس در نتیجه احتمالاً ترجیح می دهید یک رابط کاربری گرافیکی برای کار با داده های خود داشته باشید. و البته ما می توانیم چیزی شبیه به این بسازیم. اما وقتی نوبت به مدیریت این داده ها می رسد، مجبور نیستیم رابط کاربری خود را بسازیم زیرا جنگو دارای یک ویژگی مدیریت داخلی است. یک رابط کاربری داخلی که از قبل وجود دارد، که می توانید از آن استفاده کنید و از آن استفاده کنید و به شما امکان می دهد داده های خود را مدیریت کنید.
در این بخش ما به بررسی سرفصلهای زیر خواهیم پرداخت:
- ورود اطلاعات به پنل مدیریت
- اضافه کردن مدل ها به بخش مدیریت
- پیکربندی فیلدهای مدل
- پیکربندی تنظیمات مدیریت
تا این مرحله ما همیشه فقط با یک مدل کار می کردیم، و البته این خیلی هم واقع بینانه نیست. اغلب در وب سایت هایی که می خواهید بسازید، بیش از یک موجودیت داده خواهید داشت. زیرا در واقعیت، هنگامی که شما در حال ساخت وب سایت های واقعی و برنامه های کاربردی وب هستید، نه تنها دارای چندین موجودیت داده هستید، بلکه اغلب روابطی بین آن موجودیت های داده نیز وجود دارد. بنابراین، در این بخش ، می خواهیم بررسی کنیم که دقیقاً روابط داده چیست و در مورد انواع روابط داده ای بحث کنیم. و یاد بگیریم که چگونه می توانیم چنین روابطی را با مدل های جنگو مدیریت و تنظیم کنیم.
موارد زیر را در این بخش مطرح خواهد شد:
- درک انواع رابطه
- افزودن یک به چند رابطه و Migrations
- کار با روابط در کد پایتون
- Cross Model Queries
- مدیریت روابط در ادمین
- افزودن یک رابطه یک به یک
- کد یک به یک پایتون
- یک به یک و Admin Config
- راه اندازی رابطه چند به چند
- استفاده از رابطه چند به چند در پایتون
- رابطه چند به چند در Admin
در حال حاضر ما یاد گرفتیم که چگونه می توانیم داده ها را دریافت کنیم، چگونه می توانیم با داده ها و پایگاه های داده کار کنیم، چگونه می توانیم داده ها را با روابط به هم متصل کنیم و چگونه می توانیم از پنل مدیریت برای مدیریت این داده ها استفاده کنیم. اما مشکل این است که همه داده ها از طریق پنل مدیریت، مدیریت یا تولید نمی شوند، زیرا پنل مدیریت واقعاً برای شما به عنوان توسعه دهنده، به عنوان مالک این سایت است، نه برای همه بازدیدکنندگان وب سایت. بنابراین شما اغلب نیاز به راهی برای بازدیدکنندگان خود دارید تا برخی از دادهها را وارد کنند که ممکن است در یک پایگاه داده یا جای دیگری ذخیره کنید. پس لازم است فرم هایی را برای کاربران خود فراهم کنید و این چیزی است که ما در این بخش به آن خواهیم پرداخت. همچنین قصد داریم نگاهی به راههای مختلف مدیریت فرمها داشته باشیم و اینکه چگونه میتوانیم در هنگام کار با جنگو به سادگی آن فرم را برای خود مدیریت کنیم.
موارد مطرح شده در این بخش عبارتند از:
- راه اندازی
- اضافه کردن یک فرم ساختگی
- دریافت و ارسال درخواست ها
- حفاظت CSRF
- رسیدگی به ارسال فرم و استخراج داده ها
- اعتبار سنجی دستی فرم و مشکلات مربوط به آن
- استفاده از کلاس فرم جنگو
- اعتبار سنجی با فرم های جنگو
- سفارشی کردن کنترل های فرم
- سفارشی کردن HTML Rendered
- اضافه کردن Styling
- ذخیره سازی داده های فرم در پایگاه داده
- معرفی Modelforms
- پیکربندی Modelform
- ذخیره داده ها با یک Modelform
ما چیزهای زیادی در مورد فرمها و ارسال انواع مختلف داده ها یاد گرفتیم. یک نوع خاص از داده ها وجود دارد که هنوز درمورد آن صحبت نکردهایم و آن فایل ها هستند.
این بخش درباره آپلود فایل و ذخیره سازی فایل است، و ما می خواهیم یاد بگیریم که چگونه می توانیم آپلود فایل را پیاده سازی کنیم، چگونه می توانیم این فایل های آپلود شده را در جایی از پروژه خود ذخیره کنیم، و البته چگونه می توانیم آنها را سپس ارائه دهیم. قصد داریم نحوه کار آپلود فایل در جنگو، نحوه ذخیره دادهها، آپلود فایلها را بیان کنیم، و روشهای مختلف افزودن آن را بررسی میکنیم. و چگونه میتوان این فایلهای آپلود شده را دوباره به کاربران ما ارائه دهیم ، زیرا اغلب، فایلهای آپلود شده فقط برای ما بهعنوان مالک این وبسایت، بهعنوان توسعهدهنده نیست، بلکه میخواهیم از طریق آنها به کاربران خدمات ارائه کنیم. بنابراین قصد داریم تمام این جنبه ها را گام به گام در طول این بخش دوره بررسی کنیم.
موضوعات این بخش عبارتند از:
- راه اندازی
- کار آپلود فایل
- ذخیره سازی فایل های آپلود شده با رویکرد Naive
- افزودن فرم با یک فیلد بارگذاری فایل
- استفاده از مدل ها برای ذخیره سازی فایل ها
- استفاده از Imagefield
- با استفاده از CreateView
- کار با فیلد فایل
- ارائه فایل های آپلود شده
Sessionsمربوط به ذخیره سازی موقت داده ها است. و توضیح خواهم داد که دقیقاً sessions چه هستند و چه زمانی ممکن است بخواهیم از آنها استفاده کنیم، چرا گاهی اوقات می توانند مفید باشند. و همچنین قرار است از sessions در این بخش، در وبلاگ خود که در حال ساختن آن هستیم استفاده کنیم.
موضوعات این بخش عبارتند از:
- شرح مسئله
- Sessions چیست؟
- فعال کردن و پیکربندی Sessions
- ذخیره سازی داده ها در Sessions
- کدام نوع داده باید ذخیره شود
- استفاده از داده های Session
- دسترسی ایمن به داده های Session
شما یک برنامه جنگو عالی ساختید. شما توسعه وب سایت خود را تمام کرده اید و اکنون می خواهید، آن را در وب قرار دهید تا افراد دیگر بتوانند به آن دسترسی پیدا کنند. ما این پروژه نمونه وبلاگ را ساختیم و قرار نیست آن را فقط به صورت محلی در سیستم خود ببینیم، بلکه میخواهیم آن را با جهان به اشتراک بگذاریم و سایر کاربران میتوانند از سایت ما بازدید کنند. بنابراین به عبارت دیگر، ما می خواهیم وب سایت جنگو خود را انتشار دهیم. میخواهیم وبسایتمان را از توسعه، از ماشین محلیمان، به تولید، به سروری در اینترنت، رایانهای در اینترنت که در معرض شبکه جهانی وب قرار دارد، منتقل کنیم تا سایر کاربران بتوانند به وبسایت ما دسترسی پیدا کنند. ما نگاهی به ملاحظات و مشکلات مهم استقرار در هنگام انتشار برنامه های جنگو خواهیم داشت و به طور عمیق توضیح خواهم داد که چگونه برنامه خود را اجرا می کنید.
مباحث این بخش عبارتند از:
- ملاحظات انتشار
- کدام پایگاه داده
- جنگو و سرورهای وب
- ارائه فایل های استاتیک
- انتخاب یک ارائه دهنده هاست
- شروع به کار و بازبینی تنظیمات
- جمع آوری فایل های استاتیک
- ارائه فایل های استاتیک
- نکته ای درباره Migrations
- Locking in Dependencies
- استفاده از متغیرهای محیطی
- استقرار با Elastic Beanstalk
- SSL و دامنه های سفارشی
- اتصال PostgreSQL
- ارائه فایل های استاتیک به صورت جداگانه
- ارائه فایل های استاتیک از طریق S3
- انتقال فایل های آپلود شده به S3
در این قسمت قصد داریم یک API با جنگو بسازیم و این کار را از طریق REST Framework انجام خواهیم داد API به چندین برنامه اجازه می دهد با یکدیگر ارتباط برقرار کنند به شرطی که بتوان تمام داده های برنامه را در قالبی ثابت ایجاد کرد.
انجام دهید این است که ما فقط وارد می شویم و یک پروژه کاملاً جدید ایجاد می کنیم تا همه در یک صفحه باشند و API به چندین برنامه اجازه می دهد با یکدیگر ارتباط برقرار کنند، بنابراین اگر بتوانید تمام داده های برنامه خود را در قالبی ثابت توصیف کنید. معمولاً میتوان دادهها را با فرمت JSON به راحتی داده ها بین برنامه های مختلف ارسال و دریافت نمود.
مطالب این بخش عبارتند از:
- نصب REST Framework
- ایجاد کلاس Serializer برای مدل¬ها
- ایجاد متدهای HTTP (GET/PUT/POST/DELETE…)
- نمایش دادهها در قالب Json
آموزش فریم ورک جنگو ( Django ) از مقدماتی تا پیشرفته
جنگو یک فریمورک برای زبان برنامه نویسی پایتون است که امکان توسعه سریع وب سایت های امن و قابل نگهداری را فراهم می کند. جنگو که توسط توسعه دهندگان باتجربه ساخته شده است، بسیاری از مشکلات توسعه وب را برطرف می کند. امروزه باتوجه به افزایش محبوبیت زبان پایتون استفاده از جنگو نیز درحال ارتقاء می باشد. به همین جهت پیشنهاد می کنیم اگر علاقمند به ورود به بازار کار و حرفه پایتون هستید، در دوره آموزش جنگو در آموزشگاه تحلیل داده شرکت نمایید. حضور در این دوره پرطرفدار شما را از مباحث ابتدایی تا پیشرفته همراهی می کند. در پایان نیز به دلیل ارائه مستمر تمرینات کلاسی و اجرای پروژه های حرفه ای توسط استاد باسابقه و باتجربه می توانید به راحتی جذب بازار کار داخلی و خارجی شوید.
آموزش رایگان جنگو
بسیاری از افراد تمایل به یادگیری مباحث مورد علاقه به صورت خودآموز دارند. هرچند که شرکت در کلاسهای آموزشی به صورت حضوری و آنلاین بیشترین کمک را به شما خواهد نمود و روند یادگیری را سرعت می بخشد، اما آموزشهای رایگان نیز می توانند به شما دید خوبی از مطالبی که قصد یادگیری آنها را دارید بدهند. در قسمت "آموزش گام به گام" وبسایت تحلیل داده نیز به آموزش رایگان جنگو دسترسی پیدا نمایید.
گواهی پایان دوره
هنرجویان عزیز، مدرک آموزشگاه تحلیل داده، مدرک رسمی از سازمان فنی و حرفهای میباشد. دانشجویان پس از پایان دوره با ارائه پروژه کاربردی خود به آموزشگاه و پس از تایید استاد دوره گواهی پایان دوره خود را دریافت مینمایند.
مشاهده نمونه مدرک