جنگولرن
3.78K subscribers
287 photos
74 videos
31 files
554 links
آموزش Django و بستگان
Download Telegram
اگه هنوز سراغ این کتاب ۹۷ چیز که باید هر برنامه‌نویسی بدونه، نرفتید یه چند تا موردش که جالب بود برام رو می‌ذارم شاید علاقه‌مند شدین:

در مورد ۹ام، می‌گه که وقتی یه مشکلی وجود داره در نظر بگیرید که اون مشکل توی کد شماست نه سیستم‌عامل و کامپایلر. اگرچه کامپایلر و سیستم‌عامل و کتاب‌خونه هم ممکنه باگ داشته باشن ولی اونا رو هزاران نفر دیگه هم استفاده میکنن و خیلی بعیده باگ شناخته‌نشده‌ای داشته باشن در حالی که کد خودتون رو احتمالا تازه نوشتین و کاربرای کمتری هم داره.
https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/en/thing_09

مورد ۴۳ام می‌گه که استفاده از IDE بد نیست، اما یاد بگیرید در کنارش از ابزارهای cli برای کارهاتون مثل کامپایل کردن کد استفاده کنید.
https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/en/thing_43

مورد ۶۲ام می‌گه که تنها چیزی که می‌تونید بهش اعتماد کنید راست بگه خود کده، چون داکیومنت ممکنه قدیمی باشه یا دقیق نباشه و دقیقا اتفاقی که می‌افته رو توضیح نده.
https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/en/thing_62


توی مورد ۴۲ام هم کی‌گه که سعی کنید کامپایلر رو خوشحال کنید، یعنی به warningها در زودترین زمان ممکن رسیدگی کنید.
https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/en/thing_42
👍91
جلسه ۱۰ - شی گرایی در پایتون.pdf
880.2 KB
جزوه جلسه ۱۰ با تشکر از اقا مهدی

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
3
دوره غیر رایگان ساخت فروشگاه اینترنتی با جنگو آپدیت شد.

قسمت های زیر اضافه شدند:

فصل هفتم
✔️ریفکتور کدهای پرداخت

فصل هشتم
✔️فرم ورود با رمز عبور
✔️فرم ثبت نام کاربر
✔️آماده سازی ارسال ایمیل فعالسازی
✔️تولید توکن فعالسازی ایمیل
✔️فعالسازی حساب کاربر
✔️آماده سازی ورود با موبایل
✔️ورود موفق با کد یکبار مصرف

چند قسمت از این دوره رو اینجا ببینید:
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724
https://t.me/djangolearn_ir/808

لینک دوره در دانشجویار:
https://www.daneshjooyar.com/project-django/
1
Media is too big
VIEW IN TELEGRAM
نکاتی در مورد دلیل استفاده از authentication backends در جنگو

توی این ویدئو که بخشی از آپدیت جدید آموزش ساخت فروشگاه اینترنتی هست در مورد موضوعات زیر صحبت شد:
✔️مشکل لاگین نشدن کاربران جدید
✔️روش استفاده از get or create در جنگو
✔️بررسی مشکل منقضی نشدن کد یکبار مصرف بعد از ورود موفق
✔️بررسی مشکل مشخص نبودن تاریخ انقضای OTP
✔️درک نیاز به authentication backends در جنگو

لینک آپارات:
https://www.aparat.com/v/tizv220
2👍2
ماک اینترویو با بابی
از کانال @BenDevelop

مصاحبه فنی پوزیشن Senior Python/rust cloud engineer

مصاحبه پر از مفاهیمی برای یادگیری بود.

این بخش های ویدئو به نظرم جالب بود:

✔️مفاهیم تست
https://youtu.be/FmYbGSyY0XM?t=673
✔️سناریو چهارم (در مورد Down شدن سایت):
https://youtu.be/FmYbGSyY0XM?t=2892
✔️مساله پایتونی اول (در مورد priority queues):
https://youtu.be/FmYbGSyY0XM?t=3975
✔️مساله پایتونی دوم (اجرای اتوماتیک اسکریپت ها از یک فولدر خاص):
https://youtu.be/FmYbGSyY0XM?t=4714
یه نکته امنیتی در جنگو

این کد ModelBackend دیفالت جنگو هست (برای authenticate و در ادامه اش لاگین کردن). قبل از اینکه توضیحات پایین رو ببینید. به نظرتون دلیل نوشتن خط 50 چی بوده؟ البته کامنت هاش گفته چرا این کارو کرده و اون شماره 20760 شماره تیکت ش توی سایت جنگو هست.

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

لینک تیکت:
https://code.djangoproject.com/ticket/20760
👍18👏1
جنگولرن
بدبختی های ساخت اسرائیل و دیگران 😔
و بدبختی های ساخت روسیه و دیگران 😔
👍6👎6
چه پیشنهادهایی برای بهتر شدن این کد دارید؟
میتونید به @miladhzz بفرستید
👍5
دوره غیر رایگان ساخت فروشگاه اینترنتی با جنگو آپدیت شد.

🤫اگه کد تخفیف 80 درصدی میخواهید خصوصی به @miladhzz پیام بدید.

قسمت های زیر اضافه شدند:

فصل هشتم
✔️بررسی مشکلات کد ورود یکبار مصرف
✔️ورود با ایمیل و رمز عبور
✔️تکمیل ورود با موبایل و کد یکبار مصرف


چند قسمت از این دوره رو اینجا ببینید:
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724
https://t.me/djangolearn_ir/808

لینک دوره در دانشجویار:
https://www.daneshjooyar.com/project-django/
👍3
Forwarded from Django Expert (Boby Cloud)
✔️ در طی چند سال گذشته از فعالیت کانال، محتواهای رایگان زیادی تولید شده و هدف کانال هم از ابتدا اشتراک دانش رایگان و عام المنفعه بوده، برای همین تصمیم گرفتیم یک بار دیگه تمام این محتواهارو در یک پیام قرار بدیم تا به راحتی قابل دسترسی برای افراد علاقمند به یادگیری باشه:

🎥 کانال یوتوب سیلیسیم مهران تعریف (آموزش پایتون و جاوااسکریپت و...)
https://www.youtube.com/@Silicium7

🎥 کانال یوتوب میکروفرانت اند (آموزش پایتون و جاواسکریپت و ...)
https://www.youtube.com/@MicroFrontend

🎥 کانال یوتوب بابی کلاد (آموزش پایتون، کلاد، دوآپس و ...)
https://www.youtube.com/@bobycloud

🎥 کانال یوتوب امیر مطهری (آموزش پایتون، میکروپایتون و ...)
https://www.youtube.com/@AmirMotahari

🎥 کانال یوتوب گیت اور هیر مانی (آموزش پایتون، دیزاین پترن و ...)
https://www.youtube.com/@GitOverHere

🎥 کانال یوتوب تورهام (آموزش پایتون، فست ای پی آی و ...)
https://www.youtube.com/@techwithtori

🎥 کانال یوتوب شهریار شریعتی (آموزش سلری، جنگو چنلز، وب فریمورک ها و ...)
https://www.youtube.com/@ShahriarShariati

🎥 کانال یوتوب دوآپس هابیز (آموزش امیربهادر - دوره پروژه محور جنگو به همراه داکر، سی آی سی دی و ...)
https://www.youtube.com/watch?v=KtYDIJN3wmM&list=PLYrn63eEqAzY5uG5ks_OquWcojzHvhp9Z

🔥 سه فایل مصاحبه با آقای حسن رمضانی که از Core Developer های Django, Gunicorn, Pydantic, Urllib3 و ... هستند در کانال موجود هست که با سرچ کردن اسم آقای "حسن رمضانی" در کانال میتونید مصاحبه هارو پیدا کنید و گوش بدید.

📚 ریپازیتوری گیتهاب Awesome Python Resources: مجموعه ای از بهترین و کامل ترین ریسورس‌های مورد نیاز برای رشد در مسیر شغلی مهندسی نرم افزار (پایتون) به همراه تفکیک بر اساس Career Path و Advanced Topics
https://github.com/DjangoEx/awesome-python-resources

📚 ریپازیتوری گیتهاب Awesome Python Roadmaps: مجموعه از رودمپ‌های مورد نیاز یک مهندس نرم افزار (پایتون) در Career Path هایی نظیر Backend، Data Scientist، Software Architect و ...
https://github.com/DjangoEx/awesome-python-roadmaps

📚 تمام ریپازیتوری‌ها به صورت یکجا نیز در صفحه گیتهاب DjangoEx قابل دسترسی هست
https://github.com/DjangoEx

تمام این موارد آموزشی رایگان هستند و میتونید ازشون استفاده کنید.
موقت: اگر مطلبی رو یادم رفته بزارم و قبلا توی کانال تولید محتوا داشتند لطفا به من (@BobyCloud) پیام بدید.

#رودمپ #پایتون #جنگو #منابع #از_کجا_شروع_کنیم

〰️〰️〰️〰️〰️〰️
© @DjangoEx
👍4
این رپو یک منبع hands-on برای یادگیری برنامه نویسی async در پایتون هست
فرقی نداره که هر مسیری رو در برنامه نویسی با پایتون انتخاب کرده باشین (بک اند، دیتا، ماشین لرنینگ و ...) این روزا asyncio جزو ملزومات هست.

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

ممنون میشم اگه براتون مفید بود، استار بدین و برای تکمیل یا بهتر شدنش مشارکت کنین.

https://github.com/aligheshlaghi97/asynchronous-python
🔥6👍2
Forwarded from Python BackendHub (Mani)
چیزی که من متعجب شدم اکثرا میگن این <خیلی پیچیدست>. ولی حقیقتا اصلا پیچیده نیست. کامیونیتی پایتون خیلی گارد زیادی نسبت به تایپینگ داره که تو دراز مدت قطعا ضربه میخورین چون پایتون الان هر نسخه ریلیز میده ۸۰ درصدش تایپینگ improvement هست و شما اگه الان typing بلد نباشین عملا از خیلی از لایبری های جدید نمیتونید استفاده کنید.
تو این مثال حتی یک خط نشده. و شما اینکار رو برای آیدی ها انجام میدی. تو یک سرویس پرحجم که شما ۲۰۰ تیبل داری نهایتا میشه ۲۰۰ خط NewType. و باعث میشه signature همه کد های شما قابل خوانا باشه.
این tip به درد شما میخوره اگه کد میزنی. لزوما به بک اند هیچ ربطی نداره. الان شما یک تابع بنویسید که یک سری‌آیدی موزیک و آیدی یوزر بگیره و بعد بگه برای هر موزیک هر یوزر پیش بینی کنه از صفر تا صد چقدر ممکنه دوست داشته باشه

این ۳ مثال رو ببینید, مثال اول تایپینگ خوبی داره. مثال دوم تایپینگ داره ولی به درد بخور نیست خیلی. و مثال سوم تایپینگ نداره.

# WITH GOOD TYPING
Percentage: TypeAlias = int # from 0 to 100.
def calculate_music_populatiry(person_ids: list[PersonId], music_ids: list[MusicId]) -> dict[PersonId, list[tuple[Bookid, Percentage]]

# WITH BAD TYPING
def calculate_music_populatiry(person_ids: list[UUID], music_ids: list[UUID]) -> dict[UUID, list[tuple[UUID, int]]


# WITHOUT TYPING
def calculate_music_populatiry(person_ids, music_ids)


من میتونم بدونه اینکه کدو ببینم از فانکشن اولی استفاده کنم. فانکشن دومی معلوم نیست چی به چی لینک شده. پس باید حواسم باشه موقع استفاده ازش. و بعدا ریفکتورش هم کردم باید ۱۰۰درصد حواسم باشه signature اش تغییر نکنه. و فانکشن سوم که کلا فاجعست. اصلا maintainable نیست. قضاوت رو میذارم با خودتون.

@PyBackendHub
👍6
Media is too big
VIEW IN TELEGRAM
توضیحاتی در مورد پکیج django-allauth

توی این ویدئو که بخشی از آپدیت جدید آموزش ساخت فروشگاه اینترنتی هست در مورد موضوعات زیر صحبت شد:
✔️روش نصب django-allauth
✔️چرا از این پکیج استفاده کردیم
✔️اگر بخواهیم خودمان لاگین با گوگل رو بنویسیم چه چیزهایی باید بدونیم
✔️تنظیمات این پکیج
✔️قابلیت های این پکیج


لینک آپارات:
https://aparat.com/v/tpt8277
لینک یوتیوب:
https://youtu.be/akX6ZRfOogU
چند قسمت دیگه از این دوره رو اینجا ببینید:
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724

لینک دوره در دانشجویار:
https://www.daneshjooyar.com/project-django/
4👏1
.

لینک ویدیوی جلسه ۲۳:

https://youtu.be/SKXTwi4UylU

تو این ویدیو، از بیسیک ترین تا پیشرفته ترین مباحث تایپینگ پایتون صحبت کردیم و در نهایت هم چند مثال از pydantic و کاربرد هاش زدیم. دیدن این ویدیو برای هر برنامه نویسی واجبه

🔔 حتما حتما یوتیوب رو فالو کنید و ویدیو رو لایک کنید و نوتیف رو روشن بزارید 🫶

https://t.me/QaDeveloper

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Forwarded from Ninja Learn | نینجا لرن (Mohammad Eslami)
#پست_جدید
میخوام درمورد یک موضوع خیلی جالب توی جنگو صحبت کنم که اکثرا توش مشکل دارن
خب اون چیه؟


🤓 کش شدن نتیجه کوری ها❗️


میدونستید که جنگو نتیجه کوری هارو کش میکنه؟

حالا این یعنی چی ⁉️

یعنی جنگو فقط یک بار دیتابیس رو هیت میکنه و دیتا رو میگیره و همونو کش میکنه و از دفعه های بعدی تا زمان پایان اجرای تابع فعلی از اون نتیجه کش شده استفاده میکنه

حالا بیاید توضیح بدم.

⭕️ قبلش یه نکته مهم رو بگم: ⭕️
هر چیزی که باعث ایجاد یک QuerySet جدید بشه باعث هیت شدن جدید به دیتابیس خواهد شد.

حالا بریم مثالو ببینیم:

users = User.objects.all()
print(users)

if users:
for u in users:
print(u)


خب تو این کد بنظرتون چند بار دیتابیس توسط جنگو هیت وصدا زده میشه میشه؟

حتما فکرمیکنید ۳ بار نه اینجوری نیست ❗️

اینجا فقط 2 بار داره به دیتابیس هیت میزنه.

1️⃣ توی خط اول ما فقط queryset رو تعریف کردیم. از اونجایی که میدونید کوری ست ها توی جنگو lazy هستن و تا وقتی که صداشون نزنیم اجرا نمیشن.

2️⃣ توی خط دوم ما queryset رو print کردیم و اولین هیتمون به دیتابیس زده میشه ولی یه نکته print نمیره کل رکورد هارو بیاره چون منطقی نیست.

پرینت یک محدودیت داره برای آوردن رکورد ها مثلا اگه شما هزار تا رکورد داشته باشید print کل اون هزار تا رو نمیاره و مثلا ۱۰۰ تاشو میاره دومین نکته اینه که اینجا هیچ کشی اتفاق نمی افته( دلیلشو جلوتر میگم)

3️⃣ توی خط سوم ما میخوایم با if بررسی کنیم کاربری وجود داره یا نه اینجا جنگو میاد کش ر و چک میکنه تا ببینه برای users ریزالتی کش شده یانه

اینجا میبینه هیچ کشی وجود نداره و در نتیجه اینجا دومین هیتمون به دیتابیس میخوره و کل رکورد هارو برمیگردونه و مثل print عمل نمیکنه و نکته بعدی اینه اینجا ریزالت کوری توی رم سرور توسط جنگو کش میشه حالا اینجا جالب میشه😁

توی خط بعدی که یه حلقه زدیم روی users اینجا میاد کش رو چک میکنه و میبینه که ریزالت users کش شده و میاد از اون کش استفاده میکنه و به دیتابیس هیچ کوری نمیزنه و درنتیجه اینجا فقط دوبار به دیتابیس هیت خورده میشه

حالا چرا print نتیجش کش نشد؟

به گفته خود جنگو، جنگو فقط زمانی ریزالت یه queryset رو کش میکنه که اون queryset کامل اجرا بشه. و توی print چون queryset کامل اجرا نمیشه منطقا ریزالتش کش نمیشه
ولی توی if چون queryset کامل اجرا شد ریزالتشم کش شد


برای اثبات این حرفم میتونید چیزایی که کش شده رو ببینید 👇

users = User.objects.all()
print(users)
print("Cache: ", users._result_cache)

if users:
print("Cache: ", users._result_cache)
for u in users:
print(u)



خروجی این کد هم این خواهد بود:

<QuerySet [<User: mohammad>]>
Cache: None
Cache: [<User: mohammad>]
mohammad

همونطور که میبینید بعد از اجرا شدن print هیچ ریزالتی کش نشده و کش خالیه چون queryset کامل اجرا نشد.

ولی وقتی if اجرا شد چون queryset کامل اجرا شد ریزالتم کش شد و ازاین به بعد از کش استفاده میکنه.

یه نکته در پایان بگم این کش تا زمانی باقی میمونه که اجرای تابع تموم شه و بعد ازاون توسط garbage collector از مموری سرور پاک میشه جنگو توسط پایتون و پایتون روی سرور اجرا میشه.

توی پستای بعدی درمورد garbage collector بیشتر توضیح میدم

#جنگو #کش_در_جنگو #برنامه_نویسی

@ninja_learn_ir
👍11
موقعیت کاری مشتی
از لینکدین Babak Doraniarab

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

این نشون میده مدیر خوبیه


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

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


اینجا اپلای کن به ایشون پیام بدین Ali Esmaeili
متن پیام ایشون که شرح شغله:


ببین واقعا همون


Python
Django
Rest framework
PostgreSQL
Rabbitmq
Redis
Celery
git

برامون کافیه.
حالا طبیعتاً هر چیز دیگری اضافه‌تر از اینها باشه مزیت حساب میشه.

ولی من انتظار بالایی ندارم، مثلا داکر رو اگه بلد نیست میاد در حد نیازش یاد میگیره اینجا.
ولی واقعا پایتون و جنگو و دیتابیس رو بلد باشه.

لینک پست
👍2
دوره غیر رایگان ساخت فروشگاه اینترنتی با جنگو آپدیت شد.

اگه کد تخفیف 80 درصدی میخواهید خصوصی به @miladhzz پیام بدید.

قسمت های زیر اضافه شدند:

فصل هشتم
✔️معرفی پکیج django-allauth جهت لاگین با حساب گوگل
✔️ساخت پروژه در کنسول برنامه نویس گوگل
✔️تکمیل لاگین با حساب گوگل


چند قسمت از این دوره رو اینجا ببینید:
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724
https://t.me/djangolearn_ir/808
https://t.me/djangolearn_ir/830

لینک دوره در دانشجویار:
https://www.daneshjooyar.com/project-django/