جلسه ۶ - آموزش django rest API
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/G92VTu
🆔 @ProgrammersFun
#django_rest_framework_6 #django_rest_framework #api
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/G92VTu
🆔 @ProgrammersFun
#django_rest_framework_6 #django_rest_framework #api
YouTube
جلسه ۶ - UpdateAPIView
سلام محمدرضا کساسی هستم در این قسمت UpdateAPIView رو بررسی میکنیم و یاد میگیریم چطور میشه ازش استفاده کرد. این api برای به روز رسانی آیتم ها به کار می آید. ...
جلسه ۷ - آموزش django rest API
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/nxPMB3
🆔 @ProgrammersFun
#django_rest_framework_7 #django_rest_framework #api
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/nxPMB3
🆔 @ProgrammersFun
#django_rest_framework_7 #django_rest_framework #api
YouTube
جلسه ۷ - CreateAPIView
سلام محمدرضا کساسی هستم در این قسمت CreateAPIView رو بررسی میکنیم و یاد میگیریم چطور ازش استفاده کنیم. این api برای ساخت آیتم های جدید به کار می آید. سایت ما...
جلسه ۸ - آموزش django rest API
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/64k5lR
🆔 @ProgrammersFun
#django_rest_framework_8 #django_rest_framework #api
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/64k5lR
🆔 @ProgrammersFun
#django_rest_framework_8 #django_rest_framework #api
YouTube
جلسه ۸ - RetrieveUpdateDestroyAPIView
سلام محمدرضا کساسی هستم در این قسمت RetrieveUpdateDestroyAPIView رو بررسی میکنیم و یاد میگیریم که چطور ازش استفاده کنیم. این api ترکیبی از api های قبلیه و کل...
جلسه ۹ - آموزش django rest API
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/Kcgbfu
🆔 @ProgrammersFun
#django_rest_framework_9 #django_rest_framework #api
مشاهده در Youtube 👇🏻👇🏻
🌐 https://goo.gl/Kcgbfu
🆔 @ProgrammersFun
#django_rest_framework_9 #django_rest_framework #api
YouTube
جلسه ۹ - انجام عملیات CRUD
سلام محمدرضا کساسی هستم در این قسمت از شل لینوکس عملیات CRUD رو انجام میدیم. در این قسمت خواهید فهمید چگونه میتوان از این api ها در برنامه ها و زبان های برنا...
جلسه دهم - آموزش django rest
مشاهده در آپارات👇🏻👇🏻
🌐 https://goo.gl/9fOZ1S
🆔 @ProgrammersFun
#django_rest_framework_10 #django_rest_framework #api
مشاهده در آپارات👇🏻👇🏻
🌐 https://goo.gl/9fOZ1S
🆔 @ProgrammersFun
#django_rest_framework_10 #django_rest_framework #api
#restapi #restful_api #django_rest #django_rest_framework #djangorestframework #جلسه_۱۳
🌐 https://youtu.be/u6hhe0Z3rwE
🆔 @ProgrammersFun
🌐 https://youtu.be/u6hhe0Z3rwE
🆔 @ProgrammersFun
YouTube
جلسه ۱۳ - تابع get_queryset
سلام محمدرضا کساسی هستم در این جلسه میخوایم با تابع get_queryset آشنا بشیم این تابع میتونه کار های زیادی برامون بکنه مثلا انواع سرچ کردن و فیلترینگ و غیره سا...
👆🏻👆🏻👆🏻
🎯 مشاهده و دانلود قسمت های ۱۱ و ۱۲ و ۱۳ آموزش REST
جلسه ۱۱
🌐 http://www.aparat.com/v/GRPrB
🆔 @ProgrammersFun
جلسه ۱۲
🌐 http://www.aparat.com/v/q2Y6K
🆔 @ProgrammersFun
جلسه ۱۳
🌐 http://www.aparat.com/v/bcEF6
🆔 @ProgrammersFun
#restapi #restful_api #django_rest #django_rest_framework #djangorestframework #جلسه_۱۳ #جلسه_۱۲ #جلسه_۱۱
🎯 مشاهده و دانلود قسمت های ۱۱ و ۱۲ و ۱۳ آموزش REST
جلسه ۱۱
🌐 http://www.aparat.com/v/GRPrB
🆔 @ProgrammersFun
جلسه ۱۲
🌐 http://www.aparat.com/v/q2Y6K
🆔 @ProgrammersFun
جلسه ۱۳
🌐 http://www.aparat.com/v/bcEF6
🆔 @ProgrammersFun
#restapi #restful_api #django_rest #django_rest_framework #djangorestframework #جلسه_۱۳ #جلسه_۱۲ #جلسه_۱۱
آپارات - سرویس اشتراک ویدیو
جلسه ۱۱ - استفاده از توابع perform
سلام محمدرضا کسائی هستم
تو این قسمت کار با تابع perform رو یاد میگیریم تا بتونیم api های خیلی کارا تری درست کنیم
سایت ما django.torangnet.com و کانال تلگرام ما telegram.me/programmersfun
تو این قسمت کار با تابع perform رو یاد میگیریم تا بتونیم api های خیلی کارا تری درست کنیم
سایت ما django.torangnet.com و کانال تلگرام ما telegram.me/programmersfun
🌐 https://www.youtube.com/watch?v=peCGBvzMZWU&t=8s
🆔 @ProgrammersFun
#rest #django_rest #rest_api #api #restful #جلسه_۱۴ #filtering #filterbackend
🆔 @ProgrammersFun
#rest #django_rest #rest_api #api #restful #جلسه_۱۴ #filtering #filterbackend
YouTube
جلسه ۱۴ - انواع فیلترینگ ها
سلام محمدرضا کسائی هستم در این جلسه میخواهیم انواع فیلتر هایی که تو خود django-rest وجود داره رو بررسی کنیم و ببینیم چور میشه ازشون استفاده کرد. سایت ما djan...
مشاهده و دانلود از آپارات 👇🏻👇🏻
🌐 http://www.aparat.com/v/6EF2M
🆔 @ProgrammersFun
#rest #django_rest #rest_api #api #restful #جلسه_۱۴ #filtering #filterbackend
🌐 http://www.aparat.com/v/6EF2M
🆔 @ProgrammersFun
#rest #django_rest #rest_api #api #restful #جلسه_۱۴ #filtering #filterbackend
آپارات - سرویس اشتراک ویدیو
جلسه ۱۴ - انواع فیلترینگ ها
سلام محمدرضا کسائی هستم در این جلسه میخواهیم انواع فیلتر هایی که تو خود django-rest وجود داره رو بررسی کنیم و ببینیم چور میشه ازشون استفاده کرد.
سایت ما django.torangnet.com و کانال تلگرام ما ProgrammersFun@
این جلسه تقدیم به شهدا بخصوص شهدای حادثه پلاسکو
سایت ما django.torangnet.com و کانال تلگرام ما ProgrammersFun@
این جلسه تقدیم به شهدا بخصوص شهدای حادثه پلاسکو
Forwarded from Programming Resources
A curated list of awesome Django apps, projects and resources.
لیستی از بهترین اپ ها و پروژه ها و منابع برای فریمورک جنگو
#django #awesome
@pythony
awesome-django.com
لیستی از بهترین اپ ها و پروژه ها و منابع برای فریمورک جنگو
#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
_ _ _ _ _
👈 به دوستان خود اطلاع دهید..
💰 مشاغل: #برنامه_نویس #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
توضیحات مدیر فنی کافه بازار در مورد چگونه scale کردن سایت کافه بازار
#django #sccalibility #cafebazaar #nginx
@pythony
bit.ly/2LrlFgw
Forwarded from هوش فردا
⚫️علاقمندان به فریم ورک فوق العاده پایتون
#Django
یک کتاب جدید و پر از مثال های پر کاربرد برای طراحی صفحات وب با #پایتون
⚫️مناسب برای کسانی که آرزوی استخدام در گوگل را دارند👍
چاپ:2018
تعداد صفحات:804
👇👇👇👇👇
https://t.me/joinchat/AAAAAEy4pu_MYEeuh2_wbA
#Django
یک کتاب جدید و پر از مثال های پر کاربرد برای طراحی صفحات وب با #پایتون
⚫️مناسب برای کسانی که آرزوی استخدام در گوگل را دارند👍
چاپ:2018
تعداد صفحات:804
👇👇👇👇👇
https://t.me/joinchat/AAAAAEy4pu_MYEeuh2_wbA
یه بار تو یه مصاحبه ازم سوال sql پرسیده بودن. گفته بودن فلان امکان رو با استفاده از sql پیاده سازی کن. منم اینقدر با orm جنگو کار کرده بودم sql یادم رفته بود. همون دیتابیسی که میخواستن رو با جنگو طراحی کردم و بعد با استفاده از کد زیر به sql تبدیلش کردم.
این روش برای زمانی که chat gpt نبود روش خلاقانه ای بود به نظرم
#django
@CodeBazDev
این روش برای زمانی که chat gpt نبود روش خلاقانه ای بود به نظرم
queryset = MyModel.objects.all()
print(queryset.query)
#django
@CodeBazDev
❤5👍2
🚀 بهینهترین روش برای ساخت تعداد زیادی آبجکت در جنگو
اگه میخواید تعداد زیادی آبجکت توی جنگو بسازید، اصلاً خوب نیست که داخل یه حلقه، متد
چرا؟ 🤔
چون هر بار که
✅ روش درست چیه؟
به جای این کار، از `bulk_create` استفاده کنید! این متد همه آبجکتها رو با یه کوئری ایجاد میکنه، بار روی دیتابیس رو کمتر میکنه و خیلی سریعتر اجرا میشه. 🚀🔥
⚠️ اما یه نکته خیلی مهم!
وقتی از
🔹 خلاصه:
✅ استفاده از
⚠️ ولی سیگنال
📌 اگه سوالی داشتی، بپرس! 😉
#django
@CodeBazDev
اگه میخواید تعداد زیادی آبجکت توی جنگو بسازید، اصلاً خوب نیست که داخل یه حلقه، متد
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
به عبارت دیگه کل بدنه اش در یک اسکرین جا بشه و بدون اسکرول کردن بشه دیدش
✍️ بخشی از کتاب two scoops of django
#django #python #two_scoops_of_django
🆔 @CodeBazDev
👍5❤1
چرا فریمورک جنگو اسمش شد django؟
نام جنگو (Django) برای فریمورک محبوب پایتون از دنیای موسیقی آمده است! 🎵
در واقع، این نام از "Django Reinhardt" (بخوانید: جنگو راینهارت) گرفته شده، که یکی از بزرگترین و معروفترین نوازندگان گیتار جاز در تاریخ موسیقی است. 🎸
چرا جنگو؟
خالق جنگو، آدریان هولوا، که به همراه تیمش این فریمورک را توسعه داد، بسیار به موسیقی جاز علاقهمند بود. او از نام Django Reinhardt که بهعنوان یک نماد خلاقیت و نوآوری در دنیای موسیقی شناخته میشود، الهام گرفت. این انتخاب نشاندهنده روحیه نوآورانه و خلاقانهای است که در فریمورک جنگو وجود دارد.
به همین دلیل، فریمورک جنگو نه تنها یک ابزار قدرتمند برای توسعه وب است، بلکه نام آن به نوعی به آزادی و خلاقیت در کدنویسی و طراحی وب اشاره دارد. 🚀
پس دفعه بعد که با جنگو کار میکنید، شاید بخواهید همزمان یکی از قطعات جنگو راینهارت را هم گوش بدید! 🎶
پ.ن: اگه دقت کنید دو انگشت کوچکتر دست چپ ایشون مشکل داره. این دو انگشت در یک آتشسوزی آسیب دیده و نکته جالب در مورد ایشون اینه که با وجود این ضایعه قطعات دشوار و پیچیده جاز رو اجرا میکردن
#django
🆔 @CodeBazDev
نام جنگو (Django) برای فریمورک محبوب پایتون از دنیای موسیقی آمده است! 🎵
در واقع، این نام از "Django Reinhardt" (بخوانید: جنگو راینهارت) گرفته شده، که یکی از بزرگترین و معروفترین نوازندگان گیتار جاز در تاریخ موسیقی است. 🎸
چرا جنگو؟
خالق جنگو، آدریان هولوا، که به همراه تیمش این فریمورک را توسعه داد، بسیار به موسیقی جاز علاقهمند بود. او از نام Django Reinhardt که بهعنوان یک نماد خلاقیت و نوآوری در دنیای موسیقی شناخته میشود، الهام گرفت. این انتخاب نشاندهنده روحیه نوآورانه و خلاقانهای است که در فریمورک جنگو وجود دارد.
به همین دلیل، فریمورک جنگو نه تنها یک ابزار قدرتمند برای توسعه وب است، بلکه نام آن به نوعی به آزادی و خلاقیت در کدنویسی و طراحی وب اشاره دارد. 🚀
پس دفعه بعد که با جنگو کار میکنید، شاید بخواهید همزمان یکی از قطعات جنگو راینهارت را هم گوش بدید! 🎶
پ.ن: اگه دقت کنید دو انگشت کوچکتر دست چپ ایشون مشکل داره. این دو انگشت در یک آتشسوزی آسیب دیده و نکته جالب در مورد ایشون اینه که با وجود این ضایعه قطعات دشوار و پیچیده جاز رو اجرا میکردن
#django
🆔 @CodeBazDev
👍1
چند سال پیش توی یک شرکت کار میکردم که چند محصول نرمافزاری داشت.
پلفرم A یک پلتفرم گردشگری بود که من با django و react و postgres داشتم توسعه اش میدادم.
پلفرم B هم یک پلفرم رزرو آنلاین وقت دکتر بود (شبیه اسنپدکتر یا تپسیدکتر) که یک تیم دیگه با node js و vue و mysql توسعه داده بودند.
تو پلتفرم A ما نقش های تورلیدر و مسافر رو داشتیم و تو پلتفرم B نقش های دکتر و بیمار
از اونجایی که این نقش ها خیلی شبیه به هم بودند، یه روز مدیر عامل پیشنهاد داد چی میشه اگه پلتفرم B رو بیاریم در دل A بگنجونیم. اینطوری که پزشک اسمش عوض بشه به تورلیدر و بیمار هم اسمش عوض بشه به مسافر!
خیلی ایده قشنگی بود ولی ما مخالفت کردیم چون این دو تا محصول با دو تا تکنولوژی خیلی متفاوت توسعه داده شده بودند. هر طوری فکر میکردیم میدیدیم نمیشه به راحتی این دو رو با هم مرتبط کرد.
اولین ایده ای که به ذهنم رسید این بود که برم node js و vue یاد بگیرم.
این ایده رو امتحان کردم. یه مقدار که با پروژه دست و پنجه نرم کردم دیدم من حتی اگه node و vue هم یاد بگیرم بعدش باید ببینم برنامهنویسان قبلی تو این پروژه چه کرده اند. آخه پروژه B خودش دو سه سالی توسعه اش طول کشیده بود برای همین دو سه بار معماری عوض کرده بودند و دست خط های مختلفی از برنامهنویس های مختلفی توش دیده میشد. هر جای پروژه یه قانون خاصی برای خودش داشت. مثلا داشبوردش با ین منطق متفاوتی از فرانتش کار میکرد در صورتی که هر دو هم node و vue بودند.
یه مقدار بیشتر که R&D کردم با معجزه ای به نام
این دستور میتونه از روی جداول دیتابیس، براتون مدل بسازه
میدونستم که جنگو میتونه همزمان چندین دیتابیس رو مدیریت کنه. پس دست به کار شدم و دیتابیس mysql رو به پروژه خودم وصل کردم.
بعد یه اپ جدید ساختم و با استفاده از
بعد از اینم دیگه همه چی برام روال شد. دیگه هر دیتایی میخواستم با orm جنگو کوئری میزدم. حتی میتونستم با drf براش api بنویسم.
خلاصه:
با دستور
پ.ن: فقط مشکلش این بود که نمیشد روش migrate زد. اگه گفتید چرا؟ 😊
#django
🆔 @CodeBazDev
پلفرم 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
گاهی یه نام گذاری اشتباه در بکند میتونه حسابی تو فرانت افتضاح به بار بیاره
به این عکس توجه کنید. اینجا سمت فرانت از ابزاری استفاده شده که به صورت خودکار کد های بکند رو اسکن میکنه و براشون کد js جنریت میکنه
ستون سمت چپ ایراد داره
ستون سمت راست درسته
در این مثال یک اشتباه در نامگذاری سمت بکند باعث شده ۷ تا تابع با نام نادرست سمت فرانت تولید بشه.
اگه متوجه منظورم نشدید کامنت بذارید تا ویس بدم و توضیح بدم
#django #pep8
🆔 @CodeBazDev
🙏1