CodeBaz.dev
694 subscribers
673 photos
108 videos
155 files
495 links
من، محمدرضا کسائی، برنامه‌نویس فول‌استک در تپسی و مدرس پایتون و جنگو در مجتمع فنی تهران هستم. در اینجا قصد دارم تجربیات و دانش خود را در زمینه‌های مختلف برنامه‌نویسی با شما به اشتراک بگذارم.
https://CodeBaz.dev
https://x.com/CodebazDev
Download Telegram
جلسه دهم - آموزش django rest
مشاهده در آپارات👇🏻👇🏻

🌐 https://goo.gl/9fOZ1S
🆔 @ProgrammersFun
#django_rest_framework_10 #django_rest_framework #api
Forwarded from Programming Resources
A curated list of awesome Django apps, projects and resources.
لیستی از بهترین اپ ها و پروژه ها و منابع برای فریمورک جنگو

#django #awesome
@pythony

awesome-django.com
Forwarded from hptavakoli
🖐 یک موقعیت شغلی عالی 🖐
👈 به دوستان خود اطلاع دهید..

💰 مشاغل: #برنامه_نویس #back_end #python #Django
🕰 مدل همکاری: #دورکاری
📍⁣⁣ استان: #تهران (محدوده #میدان_ولی_عصر)


◀️ نام تیم: #لایسرت

💭 درباره تیم:
ما یک استارت آپ فعال در حوزه IT و سلامت هستیم که سال گذشته رتبه اول در این حوزه را کسب کردیم (حوزه تخصصی کاری خودمون در تشخیص بیماری ها و..)، الان جهت تکمیل تیم خودمون در بخش برنامه نویسی بک اند با زبان پایتون و فریم ورک جنگو نیاز به افراد خلاق و توانمند بیشتری داریم.


🔍 اطلاعات بیشتر:

⚖️ شرایط:
- مسلط به Python Django
- مسلط به Django Rest Framework
- مسلط به Source Controller مثل git lab
- مسلط به بانک اطلاعات PostgreSQL
- آشنایی به MongoDB مزیت محسوب می شود
- آشنایی به لینوکس مزیت محسوب می شود (همه افراد تیم در لینوکس کد میزنند)
- آشنایی ابتدایی با WebServer ها مانند Apache وNginx مزیت محسوب می شود
- #علاقمند_به_یادگیری
- داشتن روحیه #کار_تیمی (کل پروژه ها بصورت تیمی انجام می شود و تنها کارو انجام نمی دید)

* به هیچ عنوان نیازی نیست کد فرانت بزنید 😁 برنامه نویس های فرانت کاملا مجزی هستند و با API با شما کار میکنند (حواسمون هست بک اند کارا چی دوست ندارن 😉)
* دوستانی که با فریم ورک ها و پیش نیاز های فوق آشنایی دارند اما کاملا حرفه ای نیستند، درصورت یادگیری سریع و علاقه به کار، می توانند رزومه کاری ارسال کنند و در کنار سایر اعضا تیم یادبگیرند و حرفه ای شوند


💵 مزایا:
- #ساعت_کاری_شناور و قابل توافق
- شرایط #قابل_مذاکره
- نوع همکاری کل تیم دور کاری هست و نیازی به حضور در شرکت نیست
- مدت زمان همکاری در طول هفته منعطف بوده و طبق توافقی هست که انجام میدیم
- تیم کاملا جوان، پر انرژی و روحیه استارت آپی دارند
- پرداخت ها بدون کمترین تاخیری، هر ماه انجام می شود (یا بعد از هر تسک، بسته به توافق صورت گرفته)
- معمولا هر هفته 5شنبه ها جلسه داریم و تیم دور هم جمع میشن برای تسک های هفته بعد و.. صحبت می کنند
- استارت آپ کاملا شخصی است و حدود 3 سال از شروع فعالیت میگزره و پایدار هستیم کاملا
- داکیومنت های تحلیلی و فنی و حتی API Doc در ابتدای هر پروژه بهتون تحویل میشه، برای عملکرد های سیستم و.. هم کاملا داکیومنت وجود دارد و.. تحویلتون میشه (خلاصه کار کاملا نظم داره 😊 و اصلا بهم ریخته و دردسر دار نیست)
- تسک ها و کارهای زیاد هست و مدت همکاری طولانی، لذا بسته به زمان خالی خودتون میتونید در هفته تسک های بیشتری بردارید و درآمد های بالاتری داشته باشد


☎️ ای دی تلگرام برای تماس:
@hptavakoli

_ _ _ _ _
Forwarded from Programming Resources via @like
Real stroy about how to scale large projects with Django
توضیحات مدیر فنی کافه بازار در مورد چگونه scale کردن سایت کافه بازار

#django #sccalibility #cafebazaar #nginx
@pythony

bit.ly/2LrlFgw
Forwarded from هوش فردا
⚫️علاقمندان به فریم ورک فوق العاده پایتون
#Django
یک کتاب جدید و پر از مثال های پر کاربرد برای طراحی صفحات وب با #پایتون
⚫️مناسب برای کسانی که آرزوی استخدام در گوگل را دارند👍
چاپ:2018
تعداد صفحات:804
👇👇👇👇👇
https://t.me/joinchat/AAAAAEy4pu_MYEeuh2_wbA
یه بار تو یه مصاحبه ازم سوال sql پرسیده بودن. گفته بودن فلان امکان رو با استفاده از sql پیاده سازی کن. منم اینقدر با orm جنگو کار کرده بودم sql یادم رفته بود. همون دیتابیسی که میخواستن رو با جنگو طراحی کردم و بعد با استفاده از کد زیر به sql تبدیلش کردم.
این روش برای زمانی که chat gpt نبود روش خلاقانه ای بود به نظرم

queryset = MyModel.objects.all()
print(queryset.query)

#django
@CodeBazDev
5👍2
🚀 بهینه‌ترین روش برای ساخت تعداد زیادی آبجکت در جنگو

اگه می‌خواید تعداد زیادی آبجکت توی جنگو بسازید، اصلاً خوب نیست که داخل یه حلقه، متد create رو بارها صدا بزنید.

چرا؟ 🤔
چون هر بار که create اجرا بشه، یه کوئری جداگانه به دیتابیس ارسال میشه و این باعث افزایش بار روی دیتابیس و کاهش سرعت میشه. 🐌⚠️

روش درست چیه؟
به جای این کار، از `bulk_create` استفاده کنید! این متد همه آبجکت‌ها رو با یه کوئری ایجاد می‌کنه، بار روی دیتابیس رو کم‌تر می‌کنه و خیلی سریع‌تر اجرا میشه. 🚀🔥

⚠️ اما یه نکته خیلی مهم!
وقتی از bulk_create استفاده می‌کنید، سیگنال `post_save` اجرا نمیشه! پس اگه روی post_save حساب باز کردید، باید راه دیگه‌ای برای اجرای عملیات مورد نظرتون پیدا کنید.

🔹 خلاصه:
استفاده از bulk_create سریع‌تره و بهینه‌تره
⚠️ ولی سیگنال post_save رو اجرا نمی‌کنه!

📌 اگه سوالی داشتی، بپرس! 😉
#django
@CodeBazDev
1
یک تابع یا متد خوب باید طوری نوشته بشه که برای خوندنش نیازی به اسکرول کردن نباشه
به عبارت دیگه کل بدنه اش در یک اسکرین جا بشه و بدون اسکرول کردن بشه دیدش

✍️ بخشی از کتاب two scoops of django
#django #python #two_scoops_of_django
🆔 @CodeBazDev
👍51
چرا فریمورک جنگو اسمش شد django؟

نام جنگو (Django) برای فریمورک محبوب پایتون از دنیای موسیقی آمده است! 🎵

در واقع، این نام از "Django Reinhardt" (بخوانید: جنگو راینهارت) گرفته شده، که یکی از بزرگ‌ترین و معروف‌ترین نوازندگان گیتار جاز در تاریخ موسیقی است. 🎸

چرا جنگو؟
خالق جنگو، آدریان هولوا، که به همراه تیمش این فریمورک را توسعه داد، بسیار به موسیقی جاز علاقه‌مند بود. او از نام Django Reinhardt که به‌عنوان یک نماد خلاقیت و نوآوری در دنیای موسیقی شناخته می‌شود، الهام گرفت. این انتخاب نشان‌دهنده روحیه نوآورانه و خلاقانه‌ای است که در فریمورک جنگو وجود دارد.

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

پس دفعه بعد که با جنگو کار می‌کنید، شاید بخواهید همزمان یکی از قطعات جنگو راینهارت را هم گوش بدید! 🎶

پ.ن: اگه دقت کنید دو انگشت کوچکتر دست چپ ایشون مشکل داره. این دو انگشت در یک آتش‌سوزی آسیب دیده و نکته جالب در مورد ایشون اینه که با وجود این ضایعه قطعات دشوار و پیچیده جاز رو اجرا میکردن

#django
🆔 @CodeBazDev
👍1
فقط من از دیدن اکی های سبز migration جنگو خوشم میاد یا شما هم اینطوری اید؟ 😂
#django
🆔 @CodeBazDev
😁9
چند سال پیش توی یک شرکت کار میکردم که چند محصول نرم‌افزاری داشت.
پلفرم A یک پلتفرم گردشگری بود که من با django و react و postgres داشتم توسعه اش میدادم.
پلفرم B هم یک پلفرم رزرو آنلاین وقت دکتر بود (شبیه اسنپ‌دکتر یا تپسی‌دکتر) که یک تیم دیگه با node js و vue و mysql توسعه داده بودند.

تو پلتفرم A ما نقش های تورلیدر و مسافر رو داشتیم و تو پلتفرم B نقش های دکتر و بیمار

از اونجایی که این نقش ها خیلی شبیه به هم بودند، یه روز مدیر عامل پیشنهاد داد چی میشه اگه پلتفرم B رو بیاریم در دل A بگنجونیم. اینطوری که پزشک اسمش عوض بشه به تورلیدر و بیمار هم اسمش عوض بشه به مسافر!

خیلی ایده قشنگی بود ولی ما مخالفت کردیم چون این دو تا محصول با دو تا تکنولوژی خیلی متفاوت توسعه داده شده بودند. هر طوری فکر میکردیم میدیدیم نمیشه به راحتی این دو رو با هم مرتبط کرد.

اولین ایده ای که به ذهنم رسید این بود که برم node js و vue یاد بگیرم.

این ایده رو امتحان کردم. یه مقدار که با پروژه دست و پنجه نرم کردم دیدم من حتی اگه node و vue هم یاد بگیرم بعدش باید ببینم برنامه‌نویسان قبلی تو این پروژه چه کرده اند. آخه پروژه B خودش دو سه سالی توسعه اش طول کشیده بود برای همین دو سه بار معماری عوض کرده بودند و دست خط های مختلفی از برنامه‌نویس های مختلفی توش دیده میشد. هر جای پروژه یه قانون خاصی برای خودش داشت. مثلا داشبوردش با ین منطق متفاوتی از فرانتش کار میکرد در صورتی که هر دو هم node و vue بودند.

یه مقدار بیشتر که R&D کردم با معجزه ای به نام inspectdb در جنگو آشنا شدم.
این دستور میتونه از روی جداول دیتابیس، براتون مدل بسازه


میدونستم که جنگو میتونه همزمان چندین دیتابیس رو مدیریت کنه. پس دست به کار شدم و دیتابیس mysql رو به پروژه خودم وصل کردم.
بعد یه اپ جدید ساختم و با استفاده از inspectdb مدل ها رو از روی دیتابیس ساختم.

بعد از اینم دیگه همه چی برام روال شد. دیگه هر دیتایی میخواستم با orm جنگو کوئری میزدم. حتی میتونستم با drf براش api بنویسم.

خلاصه:
با دستور inspectdb به راحتی هر دیتابیسی رو به مدل تبدیل کنید و بعد با orm هر طور میخواهید باهاش کار کنید.

پ.ن: فقط مشکلش این بود که نمیشد روش migrate زد. اگه گفتید چرا؟ 😊
#django
🆔 @CodeBazDev
👍2
نامگذاری هایی که سمت بکند انجام میشه خیلی مهم هستند.
گاهی یه نام گذاری اشتباه در بکند میتونه حسابی تو فرانت افتضاح به بار بیاره
به این عکس توجه کنید. اینجا سمت فرانت از ابزاری استفاده شده که به صورت خودکار کد های بکند رو اسکن میکنه و براشون کد js جنریت میکنه
ستون سمت چپ ایراد داره
ستون سمت راست درسته
در این مثال یک اشتباه در نامگذاری سمت بکند باعث شده ۷ تا تابع با نام نادرست سمت فرانت تولید بشه.

اگه متوجه منظورم نشدید کامنت بذارید تا ویس بدم و توضیح بدم
#django #pep8
🆔 @CodeBazDev
🙏1