Ninja Learn | نینجا لرن
1.26K subscribers
95 photos
36 videos
11 files
306 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
معرفی Pydantic 🧩

ـPydantic یه کتابخونه خفنه برای پایتون که بهت اجازه می‌ده راحت و دقیق داده‌هات رو اعتبارسنجی (validation) و تایپ کنی. اگه توی پروژه‌های بزرگ کار می‌کنی، Pydantic خیلی کمکت می‌کنه چون بهت کمک می‌کنه داده‌ها رو تمیز و بی‌نقص نگه داری.


چرا Pydantic؟ 🔍

فرض کن می‌خوای داده‌های کاربر رو توی یه اپلیکیشن بگیری، اما مطمئن نیستی که داده‌ها دقیقا همونی هستن که می‌خوای. ممکنه کاربر یه مقدار اشتباه وارد کنه، یه فیلد رو جا بندازه، یا نوع داده رو اشتباه بزنه. با Pydantic، می‌تونی مطمئن باشی که همه چیز درست وارد شده و اگه چیزی اشتباه بود، خیلی راحت یه ارور می‌گیری و جلوش رو می‌گیری.


چطور کار می‌کنه؟ 🔨

ـPydantic با استفاده از مدل‌ها کار می‌کنه. مدل‌ها همون کلاس‌های پایتون هستن که به کمکشون می‌تونی ساختار داده رو تعریف کنی. بیاید با یه مثال شروع کنیم:

from pydantic import BaseModel

class User(BaseModel):
id: int
name: str
email: str
age: int = 18 # مقدار پیش‌فرض

user_data = {
"id": 1,
"name": "Ali",
"email": "[email protected]"
}

user = User(**user_data)
print(user)

اینجا یه مدل به نام User تعریف کردیم که شامل id، name، email و age هست. اگه فیلدی رو اشتباه بدیم یا از نوعی غیر از نوع مشخص‌شده استفاده کنیم، Pydantic خطا می‌ده.


بررسی Validation در Pydantic 🛠️

ـPydantic بهت این امکان رو می‌ده که خیلی راحت داده‌ها رو اعتبارسنجی کنی. مثلا اگه بخوای مطمئن بشی که email به فرمت درستی وارد شده، Pydantic خودش اینو هندل می‌کنه و نیازی نیست دستی بررسی کنی. بیاین یه مثال دیگه رو ببینیم:

from pydantic import BaseModel, EmailStr, PositiveInt

class User(BaseModel):
id: PositiveInt
name: str
email: EmailStr
age: int = 18

try:
user = User(id=-1, name="Ali", email="ali@bad-email", age=22)
except ValueError as e:
print("خطا:", e)

اینجا PositiveInt و EmailStr رو استفاده کردیم که به طور خودکار id باید مثبت باشه و email هم باید فرمت درستی داشته باشه. این یعنی خیلی راحت می‌تونی داده‌ها رو کنترل کنی و از ورود داده‌های اشتباه جلوگیری کنی.

مدل‌های تو در تو (Nested Models) 🧬

اگه داده‌هات پیچیده‌ترن و شامل چند مدل می‌شن، می‌تونی مدل‌های تو در تو بسازی. مثلا:

from typing import List
from pydantic import BaseModel

class Address(BaseModel):
street: str
city: str

class User(BaseModel):
id: int
name: str
addresses: List[Address]

user_data = {
"id": 1,
"name": "Ali",
"addresses": [
{"street": "خیابون اول", "city": "تهران"},
{"street": "خیابون دوم", "city": "مشهد"}
]
}

user = User(**user_data)
print(user)

جمع‌بندی 🎯

فهمیدیم Pydantic یه ابزار قوی برای مدیریت و اعتبارسنجی داده‌هاست که به‌ویژه تو پروژه‌های بزرگ و APIها خیلی کمک می‌کنه. می‌تونی مدل‌های پیچیده بسازی، داده‌ها رو اعتبارسنجی کنی، و با استفاده از تایپ‌های قوی پایتون، کد تمیزتر و قابل خوانا تر بکنی.


امید وارم مفید بوده باشه :)

#python #pydantic #programing



@ninja_learn_ir
👍83👌2🔥1
از این به بعد هرروز میخوام یه نکته و توصیه برنامه نویسی بهتون بکنم 🌚

🔆 CHANNEL | GROUP
19👍6
توصیه اول:

هیچ‌وقت فکر نکن که دیگه همه چیزو بلدی و به قله رسیدی. چون دقیقاً همون لحظه‌ایه که جلوی پیشرفتت رو گرفتی و از حرکت ایستادی.

#توصیه

🔆 CHANNEL | GROUP
👌25👍3
This media is not supported in your browser
VIEW IN TELEGRAM
#programing #algorithm


این ویدیو الگوریتم‌های مختلف Sorting رو به تصویر می‌کشه و نشون میده چطور هر کدوم عملیات مرتب‌سازی رو انجام میدن.
واقعا دیدنیه 🌚

🔆 CHANNEL | GROUP
👍54👏2👌1
توصیه امروز

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

#توصیه

🔆 CHANNEL | GROUP
👍203
هشتک #توصیه اضافه شد برای پستایی که بهتون توصیه های خوب خوب میکنم 😁
👏122😍2👍1
توصیه امروز:

هیچوقت دیر نیست

#توصیه

🔆 CHANNEL | GROUP
👍152
#خبر

پایتون داره میترکونه 🐍
هم توی وب هم توی هوش مصنوعی هم توی چیزای دیگه واقعا خیلی اینده امید وار کننده ای داره این لعنتی

🔆 CHANNEL | GROUP
🏆17👍75👎2
توصیه امروز:

پله پله برو جلو و گرنه با سر میخوری زمین :)

#توصیه

🔆 CHANNEL | GROUP
👍1641🔥1👏1
توصیه امروز:

شکست اولین مرحله برای پیروزیه

#توصیه

🔆 CHANNEL | GROUP
10👎1
دوستان شرمنده دوروزه پست نزاشتم درگیر یکسری مسائل شدم. 😅
سعی میکنم از فردا روال عادی رو جلو ببریم.

ممنون میشم با ریکشن و شیر کردن بهمون انرژی بدید 😊❤️
20👍6
استفاده از PWA در Django 🌐

امروز می‌خوایم درباره یه موضوع داغ صحبت کنیم: Progressive Web Apps (PWA) و چطور می‌تونیم ازش توی Django استفاده کنیم. اگه دنبال این هستی که اپلیکیشن وبی بسازی که نه تنها روی مرورگرها کار کنه، بلکه تجربه‌ای شبیه به اپلیکیشن‌های موبایل به کاربران بده، PWA گزینه عالیه.


حالا PWA چی هست؟ 🤔

خب PWAها وب‌اپلیکیشن‌هایی هستن که ویژگی‌های اپلیکیشن‌های موبایل رو دارن. این ویژگی‌ها شامل:

1⃣ عملکرد آفلاین:
کاربران می‌تونن بدون اینترنت به اپلیکیشن دسترسی داشته باشن.

2⃣ نصب روی صفحه اصلی:
می‌تونی اپلیکیشن رو مستقیماً روی صفحه اصلی گوشی نصب کنی.

3⃣ سرعت بارگذاری بالا: PWAها به دلیل cache کردن منابع، خیلی سریع بارگذاری می‌شن.


چطور PWA رو توی Django پیاده‌سازی کنیم؟ 🚀

برای ساختن PWA با Django، مراحل زیر رو دنبال کن:

1⃣ نصب Django و تنظیم پروژه

اول از همه، یه پروژه Django جدید ایجاد کن:
django-admin startproject my_pwa
cd my_pwa
python manage.py startapp my_app

2⃣ تنظیمات پروژه

حالا باید my_app رو به INSTALLED_APPS توی فایل settings.py اضافه کنی:

INSTALLED_APPS = [
...
'my_app',
]

3⃣ ساخت فایل Manifest

فایل Manifest یه فایل JSON هست که اطلاعاتی درباره اپلیکیشن تو می‌ده. این فایل رو به اسم manifest.json در پوشه static بساز:

{
"name": "My PWA",
"short_name": "PWA",
"start_url": "/",
"display": "standalone",
"background_color": "#FFFFFF",
"theme_color": "#000000",
"icons": [
{
"src": "icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}

4⃣ اضافه کردن Service Worker

ـService Worker یه جاوااسکریپت‌ فایلیه که به مرورگر اجازه می‌ده کارهایی رو در پس‌زمینه انجام بده، مثلاً cache کردن منابع. این فایل رو به اسم sw.js در پوشه static بساز:

self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('my-pwa-cache').then((cache) => {
return cache.addAll([
'/',
'/static/icon-192x192.png',
'/static/icon-512x512.png',
// Add other resources here
]);
})
);
});

self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request);
})
);
});

5⃣ اضافه کردن به HTML

حالا باید فایل‌های manifest و service worker رو به قالب HTML خودت اضافه کنی. به عنوان مثال، در base.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="manifest" href="{% static 'manifest.json' %}">
<title>My PWA</title>
</head>
<body>
<h1>خوش اومدی به PWA من</h1>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/static/sw.js').then((registration) => {
console.log('Service Worker registered with scope:', registration.scope);
});
});
}
</script>
</body>
</html>

جمع بندی 🎉

با انجام این مراحل، شما یک PWA با Django ساختید که می‌تونه به کاربران تجربه‌ای مشابه با اپلیکیشن‌های موبایل بده. این یعنی کاربرها می‌تونن اپلیکیشن شما رو نصب کنن و حتی وقتی اینترنت ندارن هم بهش دسترسی داشته باشن. PWAها به سرعت در حال محبوبیت هستن و می‌تونی با استفاده از Django و این تکنیک‌ها، یه اپلیکیشن عالی بسازی.

امید وارم مفید بوده باشه :)❤️

#django #pwa


🔆 CHANNEL | GROUP
18👍12🔥1
دوستان نظرتون چیه بعضی وقتی درمورد رشته های دانشگاهی مرتبط به کامپیوتر صحبت کنم؟
👌17👎10👍1
🌱 چطوری قدرت حل مسئله‌تون رو قوی کنید؟

حل مسئله مهارتیه که توی زندگی، مخصوصاً دنیای برنامه‌نویسی، همیشه به دردت می‌خوره. باید قوی‌تر بشی، چالش‌های بزرگ رو به راهکارهای کوچک و عملی تبدیل کنی و بدونی چطور از پس مشکلات بربیای. چندتا توصیه می‌خوام بهت بکنم که بهت کمک کنن بهتر و حرفه‌ای‌تر توی حل مسئله پیش بری:


1⃣ مسئله رو کوچیک کن 🧩

ببین، اینکه کل مسئله رو بخوای یه جا حل کنی معمولاً باعث پیچیدگی و گیج‌شدنه. بیا مسئله رو به بخش‌های کوچیک‌تر تقسیم کن. اگه یه پروژه بزرگ داری، مثل جمع‌آوری و تحلیل دیتا، کار با API و نمایش نتایج، اینا رو جدا جدا حل کن. وقتی مسئله رو کوچیک کنی، قدم به قدم که جلو می‌ری، نه‌تنها به راه‌حل نزدیک‌تر می‌شی، بلکه توی ذهنت هم سبک‌تر و قابل مدیریت‌تر می‌شه.

2⃣ همیشه بگو چرا؟ 🤔

یه عادت خوب اینه که همیشه از خودت بپرسی "چرا؟" مثلاً اگه یه بخش کدت کار نمی‌کنه، به جای اینکه همینطوری چند تا چیز رو تغییر بدی، دقیقاً بفهم چرا اینطوری شده. با این کار، می‌فهمی ریشه مشکل کجاست و بهتر می‌تونی ازش جلوگیری کنی. هر جا مشکلی دیدی، یه قدم عمیق‌تر بشو و دلیل اصلی رو پیدا کن.

3⃣ الگوریتم و ساختار داده‌ها رو یاد بگیر 📚

خودت می‌دونی، بدون الگوریتم و ساختار داده نمی‌شه توی دنیای برنامه‌نویسی قوی شد. وقت بذار روی اینا، تمرین کن و یاد بگیر که هر جا چه ساختار داده و الگوریتمی می‌تونه به دردت بخوره. مثلاً وقتی لیستی از داده‌های طولانی داری، الگوریتم‌های جستجو و مرتب‌سازی می‌تونه کمکت کنه راه بهتری پیدا کنی. هر چی بیشتر روی این‌ها کار کنی، حل مسائل برات سریع‌تر و راحت‌تر می‌شه.

4⃣ از مسائل سخت نترس 💪

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

5⃣ مرور تجربه‌های قبلی 🔄

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


یه مثال عملی: طراحی یه سیستم پیشنهاد فیلم

فرض کن می‌خوای یه سیستم پیشنهاد فیلم درست کنی. اولش که کل این پروژه رو نگاه می‌کنی، شاید پیچیده به نظر بیاد. ولی بیا به چند مرحله تقسیمش کن:

1⃣ جمع‌آوری دیتا:
اول داده‌های فیلم‌ها رو جمع کن.

2⃣ مدل‌سازی دیتا:
یه مدل ساده برای ذخیره ویژگی‌های فیلم مثل ژانر، امتیاز و بازیگرها درست کن.

3⃣ طراحی الگوریتم پیشنهاد:
اینجا الگوریتمی بنویس که بر اساس علاقه کاربر، پیشنهادهای مناسبی بده.

4⃣ ارزیابی و بهبود:
حالا الگوریتمت رو ارزیابی کن و اگه نیاز داشت، بهبودش بده.

با این روش، دیگه ذهنت گیج نمی‌شه و می‌تونی هر بخش رو با تمرکز بیشتری حل کنی.


حل مسئله مثل یه عضله می‌مونه، هر چی بیشتر روش کار کنی قوی‌تر می‌شه. این توصیه‌ها رو تمرین کن و همیشه ذهنت رو برای چالش‌های جدید آماده نگه دار. مطمئن باش این مسیر سختی‌هاش رو داره، ولی با صبر و تمرین به جایی می‌رسی که هیچ مسئله‌ای نمی‌تونه جلوت رو بگیره 💥

#توصیه #حل_مسئله


🔆 CHANNEL | GROUP
👏11👍1🔥1
توصیه امروز:

وقتی به بلوغ ذهنی میرسی که بفهمی بزرگترین رقیبت خودتی

#توصیه


🔆 CHANNEL | GROUP
👍11
Ninja Learn | نینجا لرن
دوستان نظرتون چیه بعضی وقتی درمورد رشته های دانشگاهی مرتبط به کامپیوتر صحبت کنم؟
خب دوستان استقبال کردن دراینده درمورد
رشته مهندسی کامپیوتر صحبت میکنم و شاخه هایی که داره و ... 🫡

منتظرش باشید 😁
🔥9👍1
IMG_8643.JPG
2.6 MB
عکس قبلی مثل اینکه کیفیش خیلی جالب نبود
این دیگه ته کیفیتشه😂
👍61😢1
توصیه امروز:

حتی اگه فرشته هم باشی مردم به صدای بال زدنت گیر میدن
پس سعی نکن همرو راضی نگه داری

#توصیه

🔆 CHANNEL | GROUP
5👍5👎1