جنگولرن
3.78K subscribers
287 photos
74 videos
31 files
555 links
آموزش Django و بستگان
Download Telegram
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
امشب اولین جلسه دوره هستش 😍💖💜

دیسکورد رو نصب کنید و توی سرور برگزاری دوره عضو بشید، لینک عضویت :
https://discord.gg/seyedbax

آموزش نصب دیسکورد
https://t.me/SEYED_BAX/6716

امشب ساعت ۹ روی این Live که توی تصویر مشخص کردم کلیک کنید تا وارد کلاس بشید

یک vpn خوب حتما دم دست داشته باشید، شاید لازمتون شد. البته اگر بدون vpn وصل شدید و صدا و تصویر رو داشتید به گیرنده هاتون دست نزنید (متسوریفای میتونه گزینه خوبی باشه)

شب میبینمتون عشقا 🥳
@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی
امشب اولین جلسه دوره هستش 😍💖💜 دیسکورد رو نصب کنید و توی سرور برگزاری دوره عضو بشید، لینک عضویت : https://discord.gg/seyedbax آموزش نصب دیسکورد https://t.me/SEYED_BAX/6716 امشب ساعت ۹ روی این Live که توی تصویر مشخص کردم کلیک کنید تا وارد کلاس بشید یک…
دوره رایگان آموزش برنامه نویسی توسط سید و رفقا (کانال @SEYED_BAX)

✔️قطعا مطالب مفیدی توی این دوره رایگان میتونید یاد بگیرید.
امشب (شنبه 25 فروردین 1403) اولین جلسه است.

من سید (@seyed_dev) رو میشناسم و میدونم دانش خوبی توی برنامه نویسی (بخصوص پایتون) و دیتابیس های no sql و داکر و... داره. ازش یاد بگیرید/بگیریم
👍12👎4
معرفی پکیج Django-Hijack

بدون اینکه رمز کاربرهای سایت تون رو بدونید وارد اکانت شون بشید 😬
من نمیدونم کجا میتونه کاربرد مفیدی داشته باشه

https://github.com/django-hijack/django-hijack
🔥3🥱2👍1
Link4Help
کاملترین دوره آموزشی کار با فرم ها در #جنگو به زبان فارسی، این آموزش را از سایت دانشجویار تهیه کنید. در این دوره با موارد زیر آشنا می شویم: - آشنایی با توکن CSRF - شخصی سازی فیلدها با widget ها - آشنایی با متد is_valid و دیکشنری cleaned_data - استفاده از…
کاملترین دوره آموزشی کار با فرم ها در #جنگو به زبان فارسی
عجب اعتماد به نفسی داشتم 4 سال پیش 😂

یاد نموداره افتادم

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

✔️این دوره رایگان نیست
😁12
This media is not supported in your browser
VIEW IN TELEGRAM
نکته مهم
یادگیری بدون تمرین به درد نمیخوره
✔️هفته ای 8 تا دوره و کتاب ببینی و بخونی. وقتی تمرین نکنی، هیچی نمیشی 😂

انگار جنگولرن داره از جنگو فاصله میگیره 😡🤬
👍11
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
اگر نمیدونید یک کامند دقیقا چیکار میکنه دقیقا ، میتونید توی این سایت واردش کنید و توضیح برای هر قسمتش دریافت کنید

explainshell.com

@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132
Forwarded from CodeCrafters (Mojtaba)
انتخاب محل ذخیره سازی تصاویر: فایل سیستم یا پایگاه داده؟

تصمیم گیری در مورد بهترین راه برای ذخیره سازی تصاویر بین Blob (Binary Large Object)در پایگاه داده و فایل سیستم (مانند S3) همیشه بحث برانگیز بوده.

پایگاه داده یا فایل سیستم؟ کدوم بهتره؟

اول از همه، بریم سراغ مزایای هر کدوم:

پایگاه داده:

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

فایل سیستم (مانند S3):

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

پس کدوم رو انتخاب کنیم؟

خب، بستگی به نیاز شما داره!

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

در نهایت...

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

#Database #General
@Code_Crafters
👍5
Media is too big
VIEW IN TELEGRAM
نکاتی در مورد JsonResponse و Ajax در جنگو

بخشی از آپدیت جدید دوره فروشگاه اینترنتی با جنگو.
این قسمت در مورد اینا صحبت شد:
✔️ توی این قسمت پیغام با موفقیت با خطا مواجه شد رو دیدیم😂
✔️ نکاتی در مورد JsonResponse یاد گرفتیم
✔️ با Ajax دارپ دان های استان شهرستان رو اوکی کردیم
✔️ با متد dumps آشنا شدیم
و...

لینک آپارات:
https://www.aparat.com/v/yULMG
هر انتقاد یا پیشنهادی به این قسمت دارید به @miladhzz پیام بدید
تشکر
4👍3😁1
سلام دوستان امروز می خواهیم درباره ی dunder new صحبت کنیم ، dunder new یک special method (یک class method هم هست پس اولین مقدارش خود کلاسه)

در پایتون هست که در واقع سازنده اصلی نمونه ها از کلاس این متد هست :)

خیلی جاها شنیدیم کهconstructor ، dunder init  هست ولی dunder init فقط یک initializer  هست و در واقع constructor اصلی dunder new هست

جالبه بدونید که dunder new قبل از ساخته شدن کامل  یک نمونه کلاس و حتی قبل از dunder init کال میشه :)

اگر می خواهیم dunder new رو برای خودمون تغییر بدیم باید حواسمون باشه که این کار رو انجام بدیم
return super().new(cls)
تا ی
ک نمونه از اون کلاس ساخته بشه ساخته بشه
خب حالا بریم حرفمون رو اثبات کنیم :

class Test:
   
    def init(self):
        print("Hi i'm in dunder init")
   
    def new(cls):
       print("Hi i'm in dunder new")
       return super().new(cls)

t1 = Test()
print(t1)

#output
Hi i'm in dunder new                                                                                                                         
Hi i'm in dunder init
<main.Test o
bject at 0x7f7371425748>                                                                                                     


     خب الان براتون سوال میشه که اصلا این dunder new به چکاری میاد؟ یا چجوری تونستیم که خود کلاس رو به کلاسی که ازش ارث برده بفرستیم در صورتی که هنوز خود کلاس ایجاد نشده !
خب بریم که به سوالات جواب بدیم :)

برای سوال اول بعضی موقع ها هست ما می خواهیم قدرت بیشتری رو در ساختن نمونه های کلاسمون رو داشته باشیم یا در واقع اصلا نگذاریم  اون نمونه از کلاس تشکیل بشه
مثل این مثال :

class Person:
   
    def init(self, age, name):
        self.age = age
        self.name = name
       
    def new(cls, age, name):
       if age == 16 and name == 'parsa':
           return None
       return super().new(cls)

p1 = Person(16 , 'parsa')
print(p1)

#output
None


  خب در مثال
بالا ما گفتیم که قبل از اینکه نمونه از کلاس رو بسازی بیا و چک کن اگر سن اون آدم 16 و اسم اون parsa بود این  نمونه از کلاس رو نساز ( در واقع  با مقدار 16 و parsa   اون شی آدم نیست!)
البته این مثال برای طنز قضیه بود :)

خب حالا می رسیم به سوال دوم در پایتون متد type علاوه بر تشخیص یک شی وظیفه ایجاد کلاس رو هم داره (جالبه نه؟)

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

برای ایجاد یک کلاس با متد type اینگونه عمل می کنیم

my_class = type('Class_name', (), {})

print(my_class)

#output
<class 'main.Class_name'>    
 

  خب دیدن چه با حال بود :)  در قسمت اول اسم کلاس و در قسمت بعد  یک تاپل هست که کلاس هایی که قراره ازشون ارث ببره
و در قسمت آخر هم یک دیکشنری هست که خصوصیات اون کلاس رو به همراه داره
به همین راحتی !

اگر مفید بود به اشتراک بگذارید :)
👍12
.

لینک ویدیوی جلسه 3:
https://youtu.be/quxptvrXuEk

تو این ویدیو، با پایتون در مورد data casting, conditions and if statement, input و یکسری سوالات الگوریتمی صحبت کردیم

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

از طریق لینک زیر می‌تونید از دوره حمایت کنید:
https://reymit.ir/seyedbax

هرگونه سوالی دارید توی گروه تخصصیمون یا دیسکورد بپرسید :
https://discord.gg/seyedbax

https://t.me/QaDeveloper

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

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Media is too big
VIEW IN TELEGRAM
فیلم آموزش نحوه اتصال پروژه جنگو به درگاه پرداخت زرین پال

از آپارات Mojtaba_Ghahri

توی این ویدئو از سندباکس زرین پال استفاده میشه.

لینک آپارات:
https://www.aparat.com/v/HBhix
👏9👍6
معرفی پکیج az-iranian-bank-gateways
از گیت هاب علی زاهدی

✔️اتصال جنگو به درگاه بانک های مختلف

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


لینک github:
https://github.com/ali-zahedi/az-iranian-bank-gateways
👍132
شبیه ساز درگاه های بانکی ایران

بعد از بررسی ها و خوندن پرسش و پاسخ های دوستان توی گروه های جنگو
متوجه شدم که محیط sandbox یا test زرین پال و pay.ir از یه تایمی به بعد دیگه غیرفعال شدن

✔️و متاسفانه داکیومنت هاشون رو آپدیت نکردن و همه رو به اشتباه انداختن

سایت banktest.ir زحمت کشیده و درگاه پرداخت بعضی بانکهارو شبیه سازی کرده

البته من ترجیح میدم خودم یه شبیه ساز بنویسم

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

✔️البته وقتی درگاه پرداخت مستقیم از بانک ها میگیریم، آی پی سرور رو میخوان و از هر آی پی نمیشه request داد. ولی شاید زرین پال اینو چک نمیکنه

آپدیت:
خدایا توبه 🤬 انصافا سرویس دهنده رو ببین. انگار هر کی استخدام شده یه داکیومنت ساخته
سایت زرین پال رو که باز میکنی. لینک توسعه دهندگان مستندات pdf گذاشته که برای سال 1393 هست و توضیحات وب سرویس WSDL یا SOAP هست:
https://www.zarinpal.com/pg/services/WebGate/wsdl
نمونه کد جنگو برای سال 1395 هست و سرویس REST هست و آدرس ها اینجوری هستن (اینجا سندباکس کار میکنه):
https://www.zarinpal.com/pg/rest/WebGate/PaymentRequest.json
حالا توی گوگل سرچ کن 'داکیومنت زرین پال' دو تا سایت داره با توضیحات متفاوت و آدرس ها اینجوری هستن (توی این جدیده سندباکس کار نمیکنه):
https://api.zarinpal.com/pg/v4/payment/request.json
👍61🔥1😁1
Forwarded from CodeCrafters (Mojtaba)
باینری ها در PostgreSQL: ذخیره سازی اطلاعات خام

تصور کنید می‌خواهید عکسی از گربه‌تان را در PostgreSQL ذخیره کنید. چطور می‌توانید این کار را انجام دهید؟

پایگاه داده PostgreSQL نوع داده‌ای به نام bytea را ارائه می‌دهد که برای ذخیره اطلاعات باینری مانند تصاویر، فایل‌های صوتی و ویدئوها ایده‌آل است.

تفاوت باینری و رشته‌های کاراکتری:

* رشته‌های باینری مانند "بایت‌های خام" هستند و می‌توانند هر نوع داده‌ای را ذخیره کنند، از جمله صفر و کاراکترهای غیرقابل چاپ.
* رشته‌های کاراکتری برای ذخیره متن مناسب هستند و محدودیت‌هایی در مورد کاراکترهای مجاز دارند.

فرمت‌های ذخیره سازی:

هگزادسیمال: هر بایت به عنوان دو رقم شانزده‌گانی نمایش داده می‌شود (مثلاً "00" برای بایت صفر). این فرمت خوانایی بیشتری دارد.
نوع Escape: برخی از بایت‌ها با کاراکترهای خاص علامت‌گذاری می‌شوند. این فرمت قدیمی‌تر است و کاربرد کمتری دارد.

کاربردها:

۱.ذخیره تصاویر، فایل‌های صوتی و ویدئوها
۲.ذخیره داده‌های باینری مانند کدهای برنامه
۳.ذخیره اطلاعات رمزنگاری شده

مثال:

فرض کنید می‌خواهید تصویر گربه‌تان را با نام cat.jpg در پایگاه داده ذخیره کنید:

INSERT INTO photos (name, data)
VALUES ('cat.jpg', BYTEA('\xFF\xD8\xFF\xE0'));


نکات:

پایگاه داده PostgreSQL از نوع داده BLOB (Binary Large Object) نیز برای ذخیره داده‌های باینری پشتیبانی می‌کند. فرمت ورودی BLOB با bytea متفاوت است، اما توابع و عملگرهای مشابهی دارند.
می‌توانید از توابع و عملگرهای مختلفی برای کار با داده‌های bytea استفاده کنید، مانند LENGTH(), SUBSTRING() و COMPARE().

نتیجه:

نوع داده bytea یک ابزار قدرتمند برای ذخیره و مدیریت داده‌های باینری در PostgreSQL است. با استفاده از این نوع داده، می‌توانید انواع مختلف اطلاعات را به طور کارآمد و ایمن ذخیره کنید.

#PostgreSQL
@Code_Crafters
👍51
Forwarded from Microfrontend.ir
کاربرد Real Time Web در مصاحبه System Design

یکی از سوال های مهم در مصاحبه فنی برنامه نویسی و System Design یا طراحی سیستم بهره گیری از کاربرد Real Time Web است. در این ویدیو به بررسی انواع روش های پیاده سازی و کاربردهای آن در طراحی سیستم می‌پردازیم. راهکارهایی همچون وب سوکت، Short and long Polling، امکانات HTTP/2 و ویژگی مهم Server Sent Event مطرح و در ادامه پلی
لیست هرکدام را پیاده سازی میکنیم.

Link: https://youtu.be/6d3smYCV7XQ

playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBw0ej6VPfTtMdssjqcNoSt8

〰️〰️〰️〰️〰️〰️
@microfrontend_ir
4
Forwarded from Microfrontend.ir
پیاده سازی Short Polling برای وب

در این ویدیو به معرفی روش Short Polling برای پیاده سازی مکانیزم Real Time Web پرداختیم. ابتدا یک سرویس ساده وب را با جنگو نوشتیم که تغییرات قیمت را برگرداند سپس در سمت کلاینت با استفاده از یک چارت تغییرات را نمایش دادیم و سعی کردیم شیوه اتصال مجدد به سرور را بهینه تر کنیم.


link: https://youtu.be/5GymaQGTmHc

playlist: https://www.youtube.com/watch?v=6d3smYCV7XQ&list=PLJ9zDGwhhsBw0ej6VPfTtMdssjqcNoSt8

〰️〰️〰️〰️〰️〰️
©@microfrontend_ir
4
هر چی کلمه سفته توش باشه من بهش حساس میشم.
دلیلش رو میخوای بدونی اینو بخون (اتفاقی که برای خودم افتاده):

https://t.me/djangolearn_ir/96
😁16👍4
جنگولرن
بالاخره بریم برای مطالعه کتاب Fluent Python شاید با این کتاب یکم پایتون یاد بگیریم اگه نکته خاصی وجود داشت. توی کامنت های همین پست قرار میدم.
کتاب Fluent Python
کانال @pyHints آموزش با این کتاب رو شروع کرده
✔️فقط سوالات رو پاسخ میده. لذا خودتون کتاب رو بخونید. و توی این جلسات آنلاین ابهامی اگه دارید بپرسید.

لینک قسمت صفر:

https://youtu.be/Jc5TrKIxybQ
👍5
جنگولرن
رشد ارگانیک کانال جنگولرن امیدوارم که مطالب کانال برای دوستان مفید باشه 😊 البته گاهی اوقات پیش اومده که پستی رو فوروارد میکنم برای گروه django2
ادامه رشد ارگانیک کانال جنگولرن - 3K

ان شاالله یکم سرم خلوت بشه مطالب تخصصی بیشتری در مورد جنگو پست می کنم.
👏155🔥3👍1👎1