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

سلام
وقت بخیر
چند وقتی هست میخوام یک زبان برای برنامه نویسی وب استفاده کنم
دنبال یه زبان سطح بالا و راحت هستم
جدیدا با جنگو اشنا شدم یه هفته ایی باهاش کار کردم
قبلش جاوا اسکریپت کار کردم ولی سخت بود
به نظر دوستان آیا با جنگو میشه همه کار کرد
آخه بیشر سایت ها با نود جی اس و لاراول هستن
اگه جنگو خوب بود اونا هم با جنگو مینوشتن
میگن شخصی سازی توی جنگو خیلی سخته
و اینکه django rest api همون rest api هست دیگه آخه یه سایت مستقل داره البته یکی از دوستان گفت این سایتش هم با زبان روبی نوششته شده
و اینکه graph ql جای rest api رو میگیره ؟؟ یعنی خیلی ازش سر تره ؟
بنظرتون ارزش داره یک سال وقت بذاریم کامل جنگو رو یاد بگیریم ؟

سلام، جنگو و‌پایتون با توجه به بازار کار خوب ارزش یادگیری دارند،
درضمن فکر کنم منظورتون از زبان جدید پایتون بود :slightly_smiling_face:

4 پسندیده

مثل این میمونه که بگین تو ایران 50 درصد ماشینا پرایده پس حتما از بنز بهتره
شاید به خاطر تفاوت هایی که وجود داره این مثالم خیلی درست نباشه ولی امیدوارم ایده کلی رو بگیرین از این مثال
من خودم به خاطر مسیری که برای خودم انتخاب کردم (Deep Learning) با پایتون زیاد کار میکنم ولی شما اگه با پایتون کار نکردین لزومی نداره برین سراغ پایتون و جنگو (هر چند که فریم ورک واقعا خوبیه)
من طبق چیزایی که توی اینترنت سرچ کردم و خوندم، کسایی که چندین سال تجربه کار هم با django و هم با ruby on rails دارن، ruby on rails رو ترجیح میدن. ولی خوب برای کسایی مثل من که Python کار کردن طبیعتا راحت تره که بریم سراغ همون django .
با لاراول یه مدت کار کردم و به هیچ عنوان پیشنهادش نمیکنم.

2 پسندیده

ممنون از پاسختون
آیا نیازه توی جنگو حتما به صورت api بنویسیم
و اینکه میگن graphql از django rest api بهتره . درسته ؟
دنبال فیلم آموزشی بودم برای طریقه عضویت کاربر با شماره موبایل و ارسال کد فعال سازی ولی جایی پیدا نکردم

بستگی به شما داره که نیاز به API دارین یا نه؟ مثلا کسی که قراره علاوه بر سایت، اپلیکیشن موبایل هم داشته باشه قطعا به API نیاز داره.
پیشنهاد میکنم این سری ویدیو از جادی در مورد API رو ببینید تا درک کنید API چیه و لازمتون میشه یا نه؟


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

django خودش یه مدل یوزر پیشفرض داره که هم خیلی امنه و هم خیلی بی دردسر، ورودش با email هست و فکر میکنم first name و last name هم داره، هرچیزی به جز این بخواین مثلا ذخیره محل سکونت یا ورود با شماره موبایل، باید یا مدل یوزر رو تغییر بدین که از چندین سطح مختلف میشه این کار رو انجام داد، یا هم این که میتونید یه مدل user_profile بسازید و با foreign key وصلش کنید به مدل یوزر پیشفرض django و همه چیزای اضافه رو توی این مدل user_profile پیاده سازی کنید (دومی ساده‌تر و بی‌درد‌سر تره، اولی اصولی تره).

برای ارسال کد فعال سازی راحت ترین کاری که میتونید انجام بدید اینه که موقعی که کاربر ثبت نام میکنه یه عدد مثلا 6 رقمی random تولید کنید و با یه مدت زمان انقضا کم توی یه چیزی مثل REDIS نگهش دارین یا توی همون دیتابیس با یه timestamp که بفهمین کی منقضی میشه، بعدش این عدد random رو با استفاده از API یه سایت ارسال sms (قاصدک، کاوه نگار و …) ارسالش کنید برای کاربری که ثبت نام کرده و کاربر رو redirect کنید به یه form که کد دریافتی رو از کاربر بپرسه، بعد اونجا باید کد رو از کاربر دریافت کنید و درصورت یکسان بودن با اونی که توی REDIS یا دیتابیس ذخیره کردین و نگذشتن تاریخ انقضا اکانت اون کاربر رو active کنید.

الآن اگه خود django رو در حد معقولی یاد بگیرین فهمیدن و انجام دادن موارد بالا اصلا سخت نیست.
من خودم اون اوایل این سری ویدیو رو دیدم و خوب توضیح میده:

2 پسندیده

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

1 پسندیده

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

4 پسندیده

سلام
به نظرم نمیشه گفت یک فریمورک برای همه کار ها بهترینه،جنگو برای کارهایی که بیشتر نیاز به دیتابیس دارن مناسبتره تا اکسپرس جی اس،همینطور اکسپرس و نود برای کارهای ایونت محور بهتره به نظرم به خاطر یک سری تفاوت ها در پایتون و جاوااسکریپت،ولی تو هر دوتا فریمورک شما میتونید همه کارهارو انجام بدید ولی شاید به خوبی اون یکی که برای این کار مناسبتره نباشه،برای مثال جنگو چنل ۲ به نظرم خیلی ابزار قوی و خوبیه برای کار های ایونت محور مثل چت روم و داره بهترم میشه.
برای نوشتن api تو جنگو شما میتونید هم از django-rest-framework استفاده کنید هم از graphene برای نوشتن api به شکل graphql و این که سایت جنگو رست فریم ورک رو با روبی نوشتن به نظرم مشکلی در قدرت این ابزار نیست،شما وب سایت های بزرگی که با جنگو نوشته شدن رو نگاه کنید تا ببینید جنگو قدرت کمی نداره،برای مثال اینستاگرام و یودمی.
جنگو چهارچوب مشخصی برای انجام کارها داره که توسعه دهنده باید رعایتشون کنه و به همین دلیل میگن قابلیت شخصی سازی توی جنگو کمه،این چهارچوب باعث میشه که جنگو بتونه امنیت اپلیکیشن شمارو بالا ببره ،به شخصه تا حالا به مشکلی برنخوردم که توی جنگو براش راه حلی نباشه و بگم به خاطر چهاچوبی که جنگو داره نمیتونم کاری رو انجام بدم

1 پسندیده

سلام، سایت django-rest-framework با ruby نوشته نشده! اگه پایین سایت رو نگاه کنید میبینید که نوشته:

Documentation built with MkDocs.
این MkDocs یه پکیج Python هست که در واقع یه Static site generator هستش و اصلا کاری با Back-end نداره. از سایت [MkDocs](https://www.mkdocs.org) :
Host anywhere

MkDocs builds completely static HTML sites that you can host on GitHub pages, Amazon S3, or anywhere else you choose.

حالا الآن documentation ساخته شده برای django-rest-framework روی GitHub pages هست و برای همین ابزار هایی مثل Wappalyzer میگن Back-end سایت Ruby on Rails هست.

3 پسندیده

ممنون از تذکرتون،منم با wappalyzer چک کردم و نتیجه گیری کردم.

1 پسندیده

https://tango-with-django.readthedocs.io

2 پسندیده

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

اما امان از این که بخوای پروژه رو یکم scale بدی…
خیلی مسخره میشه. جنگو به نظر خیلی پیچیده میاد.

یادمه وقتی میخواستم rest api درست کنم، از django rest framework استفاده میکردم، با permission ها میخواستم کار کنم، همینطوری که میرفتم جلو کتابخونه هایی که باید نصب میکردم بیشتر میشد :neutral_face:.

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

اگر typing توش رعایت میشد، باز قابل تحمل بود.

پروژه بعدی که بزنم احتمالا از ی micro framework استفاده میکنم.

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

به نظرم هرچیزی ارزش یادگیری داره.

1 پسندیده

typing اینجا یعنی چی؟

خوب اگه استراکچر اپتون رو مرتب پیش ببرین یعنی اینکه همه‌ی پکیج ها رو توی یک دونه اپ قرار ندین این پیچیدگی تقریبا ساده میشه . به طور مثال از scale حالت نرمال جنگو scale متوسط به بالا داره . این فریم ورک علاوه بر برای API زدن خیلی ویژگی های دیگه ام باهاش هست . میکرو فرمورک هم پیشنهاده خوبیه اگه صرفا میخواین API داشته باشید . گر چه من همون ترجیه میدم از DRF استفاده کنم که داکیومنتشن مناسبی هم داره . تقریبا تا امروز ما رو که لنگ نذاشته :grin:

مثلا شما توی زبون های استاتیک تایپ، اینو دارید:
func view(req:Request, res:Response)

شما به راحتی میتونید از ادیتور hint بگیرید ( مثلا attribute های req یا متد هاش یا… )
ولی توی جنگو انگار دارید توی ی فایل text کد میزنید! هیچ hint ای دریافت نمیکنید و در بهترین حالت باید کلاس های خودجنگو رو import کنید و typing رو خودتون اعمال کنید

نظاره کنید.

1 پسندیده

۵۵ لاین کد هست کجاش این پیچیدگی داره :woozy_face::grin::grin:

واقعا دیگه از این ارث بری های مسخره توی permission ها خسته شده بودم. برای ی کار کوچیک باید چندین بار ارث بری میکردم

این پروژه میتونست خیلی ساده تر از اینا پیش بره. تازه هنوز تکمیل نشده بود و هزار تا todo داشتم :neutral_face:

1 پسندیده

با فلسک و این پکیج کاره شما رو آسون تر می‌کنه

https://www.flaskapi.org/

https://flask-user.readthedocs.io/en/latest/authorization.html

2 پسندیده