دوره نهایی آموزش جنگو

دوره نهایی آموزش جنگو

جنگو چیست؟

جنگو یک چارچوب توسعه وب منبع باز پایتون محبوب برای توسعه سریع وب و طراحی تمیز و عملگرا است. django یک چارچوب قوی و قابل دسترس است که به شما امکان می دهد با استفاده از قطعات برجسته ای که به طور معمول استاندارد هستند، روی برنامه خود تمرکز کنید. این چارچوب تمرکز بر نوشتن برنامه ها را به جای اختراع مجدد چرخ آسان می کند.

 

چرا باید از جنگو استفاده کنیم؟

جنگو برای کمک به توسعه دهندگان طراحی شده است تا برنامه ها را از ایده به اجرا برساند و در اسرع وقت به کار خود ادامه دهند. django امنیت را جدی می گیرد و به توسعه دهندگان کمک می کند تا از بسیاری از اشتباهات رایج امنیتی جلوگیری کنند. برخی از شلوغ ترین سایت ها در وب از توانایی django برای مقیاس بندی سریع و انعطاف پذیر استفاده می کنند.

 

چرا یادگیری جنگو اهمیت دارد؟

با توجه به پیشرفت نیاز کاربران و اهمیت افزایش سرعت توسعه، دیگر ابزارهای قدیمی و تک کاربردی مثل php کارآمد نیستند. بازار کار نیاز به ابزارهای جدیدی دارند که بتوانند چند کار را در کمترین زمان و بیشترین سرعت انجام دهند. با استفاده از پایتون و جنگو شما میتوانید طیف وسیعی از نیاز کاربران را پاسخگو باشید. همچنین در بازار کار ایران نیز شاهد افزایش موقعیت‌های شغلی مرتبط با پایتون و جنگو هستیم. پس الآن بهترین زمان برای یادگیری فریمورک جنگو است.

 

در دوره آموزش نهایی جنگو چه چیزی یاد میگیریم؟

در این دوره آموزش جنگو طبق معمول همیشه، با استفاده از django شروع به ساخت یک وبسایت میکنیم. اما چیزی که در این دوره بیشتر از جنگو مهم هست، ابزارهایی هست که در کنار جنگو یاد میگیریم. ابتدا قراره با جنگو یک وبسایت مثل reddit بسازیم. در این دوره میبینید که چطور میتونید media فایل‌هاتون رو در bucketهای آروان‌کلود ذخیره کنید. بعد با استفاده از django rest-framework به صورت کامل برای وبسایتمون یک Api میسازیم. در Api از Jwt و OAuth2 استفاده میکنیم. بعد برای Api،  تست مینویسیم که از عملکرد اون مطمئن بشیم. با استفاده از ابزار swagger بصورت اتوماتیک برای Api داکیومنت ایجاد میکنیم. در نهایت برناممون رو داکرایز میکنیم و با استفاده از gitlab CI/CD روی سرورهای آروان‌کلود دیپلوی میکنیم.

 

دوره آموزش نهایی جنگو در چه سطحی است؟

دوره آموزش نهایی جنگو در سطح پیشرفته است. تمام مواردی که در دنیای واقعی وجود دارند گفته شده است. از اتصال به bucketهای ابرآروان تا نوشتن تست برای api. همچنین مباحثی مثل jwt و oAuth نیز گفته شده‌اند.

 

آیا دوره آموزش نهایی جنگو پیش نیاز دارد؟

برای دیدن این دوره باید تمام دوره‌های جنگو که در سایت هست رو دیده باشید. همچنین دوره داکر رو هم ببینید که بتونید پروژه رو داکرایز کنید.

 

فایل‌های دوره رو میتونید از این لینک دانلود کنید


7:18:09


0

intro

6:16

رایگان

1

creating blueprint

9:53

رایگان

2

user register

23:38

رایگان

3

user dashboard

12:32

رایگان

4

user profile

11:41

رایگان

6

celery configs

10:14

8

bucket contents

24:11

11

minor changes

14:40

12

creating models

6:28

13

question api

18:33

15

refactoring api

13:12

17

answers api

9:1

18

jwt

19:33

19

oauth

20:51

20

Google oauth

17:15

21

writing tests

14:37

22

testing urls

10:45

23

testing forms

9:12

24

testing models

10:51

25

testing views

23:36

27

Dockerfile

9:47

28

docker-compose

19:3

29

nginx

20:32

30

done

1:5

ارسال نظر

تلاش میکنم سوالات شما را در کمتر از یک روز پاسخ بدم

امیرحسین رضایی

January 2022

بسیاری از سایت های کتابخانه ها دو بخش API و Tutorial دارند
مانند مبحث DRF که شما کلابخش API رو بررسی کردید
تفاوت این دو در چیست؟

ارسال نظر


امیرحسین بیگدلو

January 2022

سلام
بخش Tutorial برای آموزش همون کتابخانه هست و داره بخش های API رو آموزش میده

Mahdi

January 2022

سلام امیر امیدوارم روز خوبی رو سپری کرده باشی.
میشه ی ویدئو خفن درباره پیاده سازی RBAC یا همون رول بیس بودن دیتابیس بسازی و نحوه ساخته شو در جنگو بگی.
من فردا صبح به این نیاز دارم و باید بتونم طراحیش کنم. درموردش خوندم ولی توی جنگو چطوری پیادش کنیم؟
مدل یوزر باید اختصاصی باشه و کار کنه! همچنین بقیه موارد بدرستی بدرخشن!
ممنون میشم سریع استایاورش کنی.

ارسال نظر


جوانی

January 2022

سلام
یوزر که کلید خارجی بهش میخوره چجوری از تو view و رکوپست گرفته میشه؟
خودش اتوماتیک برمیداره از مدل یوزر یا باید از رکوپست کشید بیرون؟
چجوری؟

ارسال نظر


امیرحسین بیگدلو

January 2022

سلام
من کامل متوجه نشدم سوال شما رو.
اما اگر کاربر لاگین کرده باشه، میتونید از ریکوئست بگیریدش یا از طریق url ارسال کنید


جوانی

January 2022

شما در مدل ها کلید خارجی به یوزر می زنید
این یوزر از api چجوری دریافت می شود؟
از کجا می فهمد کدام یوزر هست؟


امیرحسین بیگدلو

January 2022

هر کاربر توکن داره

امیرحسین رضایی

January 2022

سلام وقت بخیر
من توی مدل ها این فیلد رو اضافه کردم:
created_by_user=models.ForeignKey(User,on_delete=models.CASCADE)

و توی سریالایزر هم نوشتم:

class ReportSerializer(serializers.ModelSerializer):
class Meta:
model=Report
fields='__all__'

ولی وقتی با پست من رکویست می دهم و با authorization یوزر نیم و پسورد یوزر می فرستم
خطای "This field is required." میده مشکل نمیدونم چیه؟!

ارسال نظر


امیرحسین رضایی

January 2022

?


امیرحسین بیگدلو

January 2022

سلام
نمیدونم واقعا
بدون اینکه کد رو ببینم نمیتونم نظری بدم


امیرحسین رضایی

January 2022

ایمیل بزنم یا واتساپ؟


امیرحسین بیگدلو

January 2022

فقط ایمیل

Mahdi

December 2021

سلام امیر
ی سوال داشتم:
اون کلاس متایی که در زیر مدل مینویسیم ا رفتار هایی مثل اردرینگ و وربوس نیم مشخص کنیم داستان و فلسفه اش چیه؟

class Meta:
ordering = ('-id')

فکر کنم یجورایی شبیه به متاکلاس های خود زبان پایتون داره کار میکنه ولی اون داستانش فرق میکرد که!

ارسال نظر


امیرحسین بیگدلو

December 2021

سلام
اینا با متاکلاس‌ها فرق دارن.
کلاس‌های تو در تو هستند. سعی میکنم براش یه ویدیو تک قسمتی بسازم

Mahdi

December 2021

سلام امیر
برای اینکه بتونیم تیبل های دیتابیس رو خوب از قبل آماده کنیم و همه چی رو بهینه کنیم، تا در عمل عالی باشه، آموزشی گذاشتی یا اگه نذاشتی، ی چیزی برامون ظبط کن چرا که هر پروژه ای باید از پایه درست باشه و برای آینده هم جواب کار رو بده.

ارسال نظر


امیرحسین بیگدلو

December 2021

سلام
والا دلم میخواد یه آموزش طراحی دیتابیس ضبط کنم اما امکاناتش رو ندارم.
تخته وایت برد میخواد :/


Mahdi

December 2021

سلام امیر
تخته وایتبرد میخوای چیکار، یک مورد جایگزین پیدا کن براش.

Mahdi

November 2021

سلام امیر
بیا ی حرکت دوستانه بزن و آموزش صفحه بندی مثل اینستاگرام که با آیجکس هست و وقتی به آخر صفحه میرسی بقیه اطلاعات لود میشه رو یاد بده.
کارمون داره گیر میافته، توی مطالب خارجی هم خیلی خوب توضیح نداده که.
ایجکسشو نیاز نیست یادمون بدی، فقط همین جنگوش رو بگی دمت گرم. اگر ایجکس هم گفتی که دیگه دس خودش.

ممنون
سریع باش خواهشا تا روند پیشرفت پروژه از کار نیفته.

ارسال نظر


حسین

November 2021

سلام، این همه واقعاً دوره خوب تولید کرده اید اما نه امکان خرید برایشان گذاشته اید نه امکان دانلود رایگان دارند. مردم دوست دارند فایل ها را در اختیار داشته باشند و در هر زمان و هر مکانی خواستند نگاه کنند و آموزش ببینند. این گونه دسترسی آنلاین به فایل ها با این همه مصرف اینترنت و سرعت آن و غیره واقعاً بدرد نخوره. دنیای مجازی با این سرعت پرشتاب خود همه چیز را به سرعت کهنه می کند اگر امروز نتوان از این آموزش استفاده کرد فردا یقیناً بدرد نخواهد خورد

ارسال نظر


امیرحسین بیگدلو

November 2021

سلام
چرا اینقدر گیر میدین به دانلود ویدیوها؟!
خب مدل فروش این سایت به شکل عضویت ویژه هست. هیچ جای دنیا هم توی عضویت ویژه اجازه دسترسی دائمی داده نمیشه.
حجم ویدیوها هم که بسیار پایینه. برای یه دوره یک ساعته،‌ نهایت صد مگابایت اینترنت مصرف میشه. زیاد نیست که.
درمورد خوب بودن دوره‌ها هم که باید بگم نظر لطف شماست :)

علیرضا

November 2021

سلام، میخواستم بدونم مگه از چه نظر هایی لینوکس قویتره که ویندوز رو خوب نمیدونید برای انجام پروژه؟

ارسال نظر


امیرحسین بیگدلو

November 2021

سلام
به جز بحث game، در بقیه موارد لینوکس بهتره برای برنامه نویسا

پارسا خوشوقتی

October 2021

سلام با داکر میشه با ویندوز پروژه رو جلو برد دیگه از لینوکس استفاده نکرد ؟

ارسال نظر


امیرحسین بیگدلو

October 2021

سلام
ببینید ویندوز مزخزفه، آشغاله. بکشید بیرون از ویندوز.
هر چه سریعتر برید سمت لینوکس برنده‌اید.
اول آخر باید برید سمت لینوکس، چاره دیگه‌ای ندارید.
به جان خودم اصلا هم سخت نیست. یه ماه باهاش کار کنید، عمرا دیگه برید سمت ویندوز


پارسا خوشوقتی

November 2021

لینوکس که خوبه ولی برا کارهایی به جز برنامه نویسی خیلی اذیت میشی سر لینوکس
خواستم کلی بپرسم
چون بخوای ونیدوز رو هم کنار لینوکس نصب کنی باز نمیشه
با کلی مشکل مواجه میشی


امیرحسین بیگدلو

November 2021

آره. من هم از نظر یه برنامه نویس گفتم.
برای افراد غیر حرفه‌ای من خودمم لینوکس رو توصیه نمیکنم

رضا

October 2021

سلام
در مورد GenericRelation سوال داشتم. من سایتی که دارم طراحی میکنم از دو app مقالات و موزیک تشکیل شده. و کاربرها می تونن برای هر موزیک و هر مقاله کامنت بذارن ، لایک کنن و بوک مارک کنن. برای این کار بهتره مثلا من یه مدل جدا کامنت توی app مقالات تعریف کنم که کامنت های این بخش مدیریت بشه و یک مدل کامنت هم توی app موزیک که کامنت های این بخش رو مدیریت کنه یا یک app جداگانه به اسم کامنت درست کنم و از GenericRelation استفاده کنم و به مدل های موجود در app مقالات و موزیک اضافه کنم ؟ حالت اول من توی app مقالات سه تا مدل (کامنت ، لایک و بوک مارک) و توی appموزیک هم سه تا مدل (کامنت ، لایک و بوک مارک) دارم.
بعضی از مقالات برای تعداد بالای دیتا استفاده از GenericRelation ها را به علت performance پایین تر توصیه نکردن. به نظر شما استفاده از روش اول بهتره یا استفاده از GenericRelation ها ؟ ممنون

ارسال نظر


امیرحسین بیگدلو

October 2021

سلام
اینو میشه به شکلهای مختلفی ساخت.
اول برای هر app جداگانه یه مدل کامنت بسازی که خب ممکنه در آینده تعداد appها زیاد بشه و اونموقع مدیریت کردنشون سخت میشه.
دوم استفاده از GenericRelation هست که پرفورمنس نسبتا کمتری داره.
سوم یه مدل کامنت بسازی و همه رو اونجا ذخیره کنی. در این حالت باید برای تمام اطلاعاتی که داخل دیتابیس ذخیره میکنی یه مقدار فیلد داشته باشی که در تمام دیتابیس unique باشن مثلا uuid. اونموقع میتونی بر اساس اون uuid اطلاعات رو فراخوانی کنی و اطلاعاتت هم با هم قاطی نمیشن.
مثلا میخوای یه مقاله ذخیره کنی، براش در فیلد uuid یه مقدار ذخیره میکنی و بعد برای گرفتن کامنت‌های اون مقاله از اون uuid استفاده میکنی.
به نظر خودم از GenericRelation‌ها استفاده کن. چون واقعا اون مقدار پرفورمنس خیلی ناچیزه و اصلا به چشم نمیاد. بهترین روش همون GenericRelation هست. ما هزاران با از GenericRelation استفاده کردیم هیچ مشکلی هم نداشتیم.