سلام به همگی! 🌟
امروز میخوایم دربارهی یه اصل مهم تو کدنویسی پایتون صحبت کنیم که کدهاتون رو خوشگلتر و مرتبتر میکنه: PEP 8! 😎
خب، PEP 8 چیه؟ 🤔
توی پایتون PEP 8 یه استاندارده برای کدنویسی پایتونه که باعث میشه کدهامون تمیزتر و قابلفهمتر باشه؛ هم واسه خودمون و هم واسه بقیه. حالا بیایم با هم نکات اصلیش رو ببینیم 👇
اصول اصلی PEP 8 🧩
1. تورفتگی (Indentation)
2. بیشترین طول خط (Line Length)
3. شکستن خطوط در عملگرها (Operators)
وقتی میخوای یه خط طولانی رو بشکنی، عملگرها (
4. خطوط خالی (Blank Lines)
5. ایمپورتها (Imports)
- قبل و بعد از عملگرها (
- داخل پرانتزها و کروشهها فاصله اضافه نذار. مثال:
با رعایت این نکات، کدتون حسابی تر و تمیز و استاندارد میشه! 💯
#python
#pep8
Group: @azad_program
Channel: @kiau_program
امروز میخوایم دربارهی یه اصل مهم تو کدنویسی پایتون صحبت کنیم که کدهاتون رو خوشگلتر و مرتبتر میکنه: PEP 8! 😎
خب، PEP 8 چیه؟ 🤔
توی پایتون PEP 8 یه استاندارده برای کدنویسی پایتونه که باعث میشه کدهامون تمیزتر و قابلفهمتر باشه؛ هم واسه خودمون و هم واسه بقیه. حالا بیایم با هم نکات اصلیش رو ببینیم 👇
اصول اصلی PEP 8 🧩
1. تورفتگی (Indentation)
برای هر سطح تورفتگی از ۴ فاصله استفاده کن! فاصلهها کدهاتو همهجا یکدست نشون میدن. 📏
2. بیشترین طول خط (Line Length)
هر خط کدت بهتره از ۷۹ کاراکتر بیشتر نشه تا همهجا خوب خونده بشه. واسه توضیحات هم بهتره به ۷۲ کاراکتر محدودش کنی. 📝
3. شکستن خطوط در عملگرها (Operators)
وقتی میخوای یه خط طولانی رو بشکنی، عملگرها (
+, -) رو اول خط جدید بذار، مثل این:
result = (first_variable
+ second_variable
- third_variable)
4. خطوط خالی (Blank Lines)
با خطوط خالی بخشهای کدتو از هم جدا کن. بین توابع و کلاسها ۲ خط خالی بذار و بین متدها ۱ خط خالی. 🌿
5. ایمپورتها (Imports)
ایمپورتها رو اول فایل و به ترتیب بذار:6. فضاهای خالی (Whitespace)
1. کتابخونههای استاندارد
2. کتابخونههای خارجی
3. کتابخونههای پروژه
هر دسته رو هم با یه خط خالی جدا کن. 🤓
- قبل و بعد از عملگرها (
=, +, -) یه فاصله بذار.- داخل پرانتزها و کروشهها فاصله اضافه نذار. مثال:
# recommended:
x = (a + b) * (c - d)
# not recommended:
x = ( a + b ) * ( c - d )
با رعایت این نکات، کدتون حسابی تر و تمیز و استاندارد میشه! 💯
#python
#pep8
Group: @azad_program
Channel: @kiau_program
❤5💯2👍1
🌐 تفاوتهای IPv4 و IPv6 🌐
پروتکل های IPv4 و IPv6 دو پروتکل اصلی برای شناسایی دستگاهها در شبکه هستند.
🔹 تعداد آدرسها:
- پروتکل IPv4 از 32 بیت استفاده میکند و حدود 4.3 میلیارد آدرس را پشتیبانی میکند.
- پروتکل IPv6 با 128 بیت، امکان ایجاد 34 تریلیون تریلیون تریلیون آدرس را فراهم میکند.
🔹 سادهسازی پیکربندی:
- پروتکل IPv6 قابلیت پیکربندی خودکار (SLAAC) دارد که به دستگاهها اجازه میدهد بدون نیاز به DHCP، آدرس IP خود را تنظیم کنند.
🔹 امنیت:
- پروتکل IPv6 به طور پیشفرض از IPsec برای امنیت ارتباطات استفاده میکند، در حالی که در IPv4 این ویژگی اختیاری است.
🔹 بهبود عملکرد:
- با حذف NAT (ترجمه آدرس شبکه)، ارتباطات مستقیمتر و سریعتر انجام میشود.
🔹 پشتیبانی از موبایل:
- پروتکل IPv6 بهینهسازی شده برای دستگاههای موبایل و اینترنت اشیا (IoT) است.
با توجه به رشد روزافزون اینترنت و نیاز به آدرسهای بیشتر، انتقال به IPv6 ضروری است! 🚀
Group: @azad_program
Channel: @kiau_program
پروتکل های IPv4 و IPv6 دو پروتکل اصلی برای شناسایی دستگاهها در شبکه هستند.
🔹 تعداد آدرسها:
- پروتکل IPv4 از 32 بیت استفاده میکند و حدود 4.3 میلیارد آدرس را پشتیبانی میکند.
- پروتکل IPv6 با 128 بیت، امکان ایجاد 34 تریلیون تریلیون تریلیون آدرس را فراهم میکند.
🔹 سادهسازی پیکربندی:
- پروتکل IPv6 قابلیت پیکربندی خودکار (SLAAC) دارد که به دستگاهها اجازه میدهد بدون نیاز به DHCP، آدرس IP خود را تنظیم کنند.
🔹 امنیت:
- پروتکل IPv6 به طور پیشفرض از IPsec برای امنیت ارتباطات استفاده میکند، در حالی که در IPv4 این ویژگی اختیاری است.
🔹 بهبود عملکرد:
- با حذف NAT (ترجمه آدرس شبکه)، ارتباطات مستقیمتر و سریعتر انجام میشود.
🔹 پشتیبانی از موبایل:
- پروتکل IPv6 بهینهسازی شده برای دستگاههای موبایل و اینترنت اشیا (IoT) است.
با توجه به رشد روزافزون اینترنت و نیاز به آدرسهای بیشتر، انتقال به IPv6 ضروری است! 🚀
Group: @azad_program
Channel: @kiau_program
👍5
توزیعهای لینوکسی و کاربردهای آنها
1. اوبونتو (Ubuntu): مناسب برای کاربران تازهکار و دسکتاپ. با رابط کاربری ساده و پشتیبانی گسترده، برای کارهای روزمره، برنامهنویسی و حتی بازیها عالی است. ( البته در زیر ساخت خیلی از شرکت ها از اوبنتو سرور استفاده میشه).
2. دبیان (Debian): پایدار و قابل اعتماد، مناسب برای سرورها و سیستمهای مهم. به دلیل ثبات بالا، انتخاب خوبی برای توسعهدهندگان و مدیران سیستم است.
3. فدورا (Fedora): بهروزترین نرمافزارها را ارائه میده و برای توسعهدهندگان ایدهآل است.
4. آرچ لینوکس (Arch Linux): برای کاربران پیشرفته که میخواهند سیستم خود را از پایه بسازند. انعطافپذیری بالا و کنترل کامل بر روی نصب نرمافزارها را فراهم میکند.
7. لینکس مینت (Linux Mint): بهترین گزینه برای کسانی که از ویندوز به لینوکس مهاجرت میکنند. رابط کاربری آشنا و امکانات متنوع آن باعث راحتی استفاده میشود.
8. کالی لینوکس (Kali Linux): مخصوص تست نفوذ و امنیت سایبری طراحی شده است. ابزارهای پیشرفتهای برای هکرها اخلاقی فراهم میکند.
Group: @azad_program
Channel: @kiau_program
1. اوبونتو (Ubuntu): مناسب برای کاربران تازهکار و دسکتاپ. با رابط کاربری ساده و پشتیبانی گسترده، برای کارهای روزمره، برنامهنویسی و حتی بازیها عالی است. ( البته در زیر ساخت خیلی از شرکت ها از اوبنتو سرور استفاده میشه).
2. دبیان (Debian): پایدار و قابل اعتماد، مناسب برای سرورها و سیستمهای مهم. به دلیل ثبات بالا، انتخاب خوبی برای توسعهدهندگان و مدیران سیستم است.
3. فدورا (Fedora): بهروزترین نرمافزارها را ارائه میده و برای توسعهدهندگان ایدهآل است.
4. آرچ لینوکس (Arch Linux): برای کاربران پیشرفته که میخواهند سیستم خود را از پایه بسازند. انعطافپذیری بالا و کنترل کامل بر روی نصب نرمافزارها را فراهم میکند.
7. لینکس مینت (Linux Mint): بهترین گزینه برای کسانی که از ویندوز به لینوکس مهاجرت میکنند. رابط کاربری آشنا و امکانات متنوع آن باعث راحتی استفاده میشود.
8. کالی لینوکس (Kali Linux): مخصوص تست نفوذ و امنیت سایبری طراحی شده است. ابزارهای پیشرفتهای برای هکرها اخلاقی فراهم میکند.
Group: @azad_program
Channel: @kiau_program
❤1👍1
📊 کتابخانههای ضروری Python برای علم داده
💡 در این تصویر، مجموعهای از کتابخانههای مهم Python که در علم داده استفاده میشوند، معرفی شدهاند. این کتابخانهها شامل ابزارهایی برای جمعآوری داده، پردازش، تحلیل، یادگیری ماشین، یادگیری عمیق، و استقرار مدلها هستند.
کتابخانه Scrapy: جمعآوری داده و وباسکرپینگ
کتابخانه pandas: دستکاری دادهها، پیشپردازش و تحلیل اکتشافی دادهها (EDA)
کتابخانه Matplotlib: تجسم دادهها
کتابخانه Statsmodels: تحلیلهای آماری و سری زمانی
کتابخانه scikit-learn: یادگیری ماشین
کتابخانه TensorFlow: یادگیری عمیق
کتابخانه spaCy: پردازش زبان طبیعی
کتابخانه Flask: استقرار مدل
کتابخانه PySpark: دادههای حجیم و محاسبات توزیعشده
کتابخانه Apache Airflow: اتوماسیون و ارکستراسیون جریان کاری
➖➖➖➖➖➖➖➖➖➖➖➖
💡 در این تصویر، مجموعهای از کتابخانههای مهم Python که در علم داده استفاده میشوند، معرفی شدهاند. این کتابخانهها شامل ابزارهایی برای جمعآوری داده، پردازش، تحلیل، یادگیری ماشین، یادگیری عمیق، و استقرار مدلها هستند.
کتابخانه Scrapy: جمعآوری داده و وباسکرپینگ
کتابخانه pandas: دستکاری دادهها، پیشپردازش و تحلیل اکتشافی دادهها (EDA)
کتابخانه Matplotlib: تجسم دادهها
کتابخانه Statsmodels: تحلیلهای آماری و سری زمانی
کتابخانه scikit-learn: یادگیری ماشین
کتابخانه TensorFlow: یادگیری عمیق
کتابخانه spaCy: پردازش زبان طبیعی
کتابخانه Flask: استقرار مدل
کتابخانه PySpark: دادههای حجیم و محاسبات توزیعشده
کتابخانه Apache Airflow: اتوماسیون و ارکستراسیون جریان کاری
➖➖➖➖➖➖➖➖➖➖➖➖
❤4👍1
⭕️ مفهوم JSON:
در دنیای برنامه نویسی JSON یا JavaScript Object Notation، یک فرمت سبک و مستقل از زبان برای تبادل دادههاست. JSON بسیار خوانا و به راحتی قابل استفادست و به همین دلیل برای انتقال دادهها بین سرور و کلاینت محبوبه.
همونطور که از نامش پیداست JSON به معنی «نمادگذاری اشیا در جاوا اسکریپت» هست و معمولاً همراه با جاو اسکریپت شناسایی میشه، اما یک فرمت استاندارد رد و بدل دیتا و مستقل از زبان مثل XML یا YAML و مشترک بین تمامی زبان هاست که از خوانایی بالایی برخورداره.
مثال منوی غذا با JSON:
جیسون ویژگی های مختلفی مثل سادگی و خوانایی، پشتیبانی گسترده توسط زبان ها، اندازه کوچیک و ... داره.
همینطور از کاربرد های اون میشه به وب سرویس ها یا API ها و تبادل دیتاها بین سرور و کلاینت، ذخیره سازی داده در پایگاه داده های NoSQL مثل MongoDB و ذخیره سازی تنظیمات نرم افزار ها اشاره کرد.
Group: @azad_program
Channel: @kiau_program
در دنیای برنامه نویسی JSON یا JavaScript Object Notation، یک فرمت سبک و مستقل از زبان برای تبادل دادههاست. JSON بسیار خوانا و به راحتی قابل استفادست و به همین دلیل برای انتقال دادهها بین سرور و کلاینت محبوبه.
همونطور که از نامش پیداست JSON به معنی «نمادگذاری اشیا در جاوا اسکریپت» هست و معمولاً همراه با جاو اسکریپت شناسایی میشه، اما یک فرمت استاندارد رد و بدل دیتا و مستقل از زبان مثل XML یا YAML و مشترک بین تمامی زبان هاست که از خوانایی بالایی برخورداره.
فرض کنین که یک منوی غذا در یک رستوران دارین که شامل نام غذا، قیمت، مواد تشکیلدهنده و اطلاعات دیگه ایه. حالا تصور کنین که این منو رو میخواین در قالبی ذخیره کنین که برای یک اپلیکیشن موبایل قابل استفاده باشه. JSON این امکان رو میده به سادگی این اطلاعات رو به صورت ساختارمند ذخیره کنید.
مثال منوی غذا با JSON:
{
"restaurant": "Delicious Dishes",
"menu": [
{
"name": "Pasta",
"price": 12.5,
"ingredients": ["noodles", "tomato sauce", "cheese"]
},
{
"name": "Caesar Salad",
"price": 8.0,
"ingredients": ["lettuce", "chicken", "parmesan", "croutons"]
},
{
"name": "Burger",
"price": 10.0,
"ingredients": ["bun", "beef patty", "lettuce", "cheese", "tomato"]
}
]
}جیسون ویژگی های مختلفی مثل سادگی و خوانایی، پشتیبانی گسترده توسط زبان ها، اندازه کوچیک و ... داره.
همینطور از کاربرد های اون میشه به وب سرویس ها یا API ها و تبادل دیتاها بین سرور و کلاینت، ذخیره سازی داده در پایگاه داده های NoSQL مثل MongoDB و ذخیره سازی تنظیمات نرم افزار ها اشاره کرد.
Group: @azad_program
Channel: @kiau_program
❤3
🎯 ترفند جالب پایتونی: سرعتبخشیدن به کدها با list comprehension 🚀
یکی از روشهای بهینهسازی و خواناتر کردن کدهای پایتون، استفاده از list comprehension هست. این روش برای ساخت لیستها بهصورت کوتاه و سریع استفاده میشه.
💡 مثال ساده: فرض کنید میخواهید مربع اعداد ۱ تا ۱۰ رو توی یه لیست ذخیره کنید.
🔻 روش سنتی:
🔺 با list comprehension:
نتیجه هر دو روش یکیه:
اما روش دوم کوتاهتر، سریعتر و شیکتره! 😎
✨ چالش برای شما:
با همین روش یه لیست بسازید که اعداد زوج بین ۱ تا ۲۰ رو شامل بشه. ✅
#پایتون #programming #python
Group: @azad_program
Channel: @kiau_program
یکی از روشهای بهینهسازی و خواناتر کردن کدهای پایتون، استفاده از list comprehension هست. این روش برای ساخت لیستها بهصورت کوتاه و سریع استفاده میشه.
💡 مثال ساده: فرض کنید میخواهید مربع اعداد ۱ تا ۱۰ رو توی یه لیست ذخیره کنید.
🔻 روش سنتی:
squares = []
for i in range(1, 11):
squares.append(i 2)
print(squares)
🔺 با list comprehension:
squares = [i 2 for i in range(1, 11)]
print(squares)
نتیجه هر دو روش یکیه:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
اما روش دوم کوتاهتر، سریعتر و شیکتره! 😎
✨ چالش برای شما:
با همین روش یه لیست بسازید که اعداد زوج بین ۱ تا ۲۰ رو شامل بشه. ✅
#پایتون #programming #python
Group: @azad_program
Channel: @kiau_program
❤3👏1
✅ آشنایی با Destructuring در جاوااسکریپت
ویژگی "Destructuring" یا "تخریب و تجزیه" یکی از ویژگیهای قدرتمند و بشدت کاربردی در جاوااسکریپته که به شما اجازه میده به راحتی عناصر یک آرایه یا آیتم های یک object یا شی رو استخراج کنین و به متغیرهای مجزا اختصاص بدین. این ویژگی که در ES6 معرفی شد، باعث افزایش خوانایی و کاهش کدهای تکراری میشه.
فرض کنین یک آرایه با 8 عدد دارین که میخواین سه آیتم اول اون رو استخراج و داخل متغیر ذخیره کنین. یکی از روش های مرسوم گرفتن آیتم های داخل آرایه با استفاده از index هست.
اما با استفاده از ویژگی Destructuring این کار خیلی ساده تر میشه و میتونین با تجزیه آرایه سه ایتم اول اون رو استخراج کنین
همینطور با ترکیب این ویژگی و rest operator (...) میتونین باقی ایتم هارو در قالب یک ارایه استخراج کنین
برای object ها در طول برنامه هم میتونین از این ویژگی استفاده کنین و آیتم های داخل آبجکت رو destructure کنین. اما نکته قابل توجه اینه که اسم آیتم تجزیه شده با آیتم داخل object به صورت دیفالت باید برابر باشه.
حالا فرض کنین یک تابع داخل برنامه دارین که کارهای مختلفی داخلش انجام میشه و میخواید به عنوان خروجی چیز های مختلفی رو return کنین و زمان استفاده از اون تابع بهشون دسترسی داشته باشین:
⭕️ مفهوم Destructuring در زبان های دیگه به شکل های مختلفی دیده میشه:
⁉️ مفهوم Destructuring یا Unpacking در Python
⁉️ مفهوم Tuple Destructuring در Swift
⁉️ مفهوم Destructuring در Ruby
Group: @azad_program
Channel: @kiau_program
ویژگی "Destructuring" یا "تخریب و تجزیه" یکی از ویژگیهای قدرتمند و بشدت کاربردی در جاوااسکریپته که به شما اجازه میده به راحتی عناصر یک آرایه یا آیتم های یک object یا شی رو استخراج کنین و به متغیرهای مجزا اختصاص بدین. این ویژگی که در ES6 معرفی شد، باعث افزایش خوانایی و کاهش کدهای تکراری میشه.
فرض کنین یک آرایه با 8 عدد دارین که میخواین سه آیتم اول اون رو استخراج و داخل متغیر ذخیره کنین. یکی از روش های مرسوم گرفتن آیتم های داخل آرایه با استفاده از index هست.
const array = [1, 2, 3, 4, 5, 6, 7, 8]
const item1 = array[0]
const item2 = array[1]
const item3 = array[2]
اما با استفاده از ویژگی Destructuring این کار خیلی ساده تر میشه و میتونین با تجزیه آرایه سه ایتم اول اون رو استخراج کنین
const [a, b, c] = [1, 2, 3, 4, 5, 6, 7, 8]
همینطور با ترکیب این ویژگی و rest operator (...) میتونین باقی ایتم هارو در قالب یک ارایه استخراج کنین
const [a, b, c, ...rest] = [1, 2, 3, 4, 5, 6, 7, 8]
برای object ها در طول برنامه هم میتونین از این ویژگی استفاده کنین و آیتم های داخل آبجکت رو destructure کنین. اما نکته قابل توجه اینه که اسم آیتم تجزیه شده با آیتم داخل object به صورت دیفالت باید برابر باشه.
حالا فرض کنین یک تابع داخل برنامه دارین که کارهای مختلفی داخلش انجام میشه و میخواید به عنوان خروجی چیز های مختلفی رو return کنین و زمان استفاده از اون تابع بهشون دسترسی داشته باشین:
const doWork = function () {
const age = 20;
const name = "Reza";
const numbers = [1, 2, 3, 4];
function doSomeThings(number) {
numbers.push(number);
// ...
}
// ...
return { age, numbers, doSomeThings };
};
// Destructuring
const { age, numbers, doSomeThings } = doWork();
console.log(age); // 20
console.log(numbers); // [1, 2, 3, 4]
doSomeThings(10);
console.log(numbers); /// [1, 2, 3, 4, 10]⭕️ مفهوم Destructuring در زبان های دیگه به شکل های مختلفی دیده میشه:
⁉️ مفهوم Destructuring یا Unpacking در Python
a, b, c = [1, 2, 3]
print(a) # 1
print(b) # 2
print(c) # 3
⁉️ مفهوم Tuple Destructuring در Swift
let (x, y) = (1, 2)
print(x) // 1
print(y) // 2
⁉️ مفهوم Destructuring در Ruby
a, b, c = [1, 2, 3]
puts a # 1
puts b # 2
puts c # 3
Group: @azad_program
Channel: @kiau_program
❤1
🔍 آشنایی با توابع Lambda در پایتون 💡
توابع Lambda در پایتون، توابع ناشناس و یکخطی هستند که بدون نیاز به تعریف نام، عملیات سادهای را اجرا میکنند. این توابع مخصوص مواقعی هستند که به یک تابع کوچک و سریع نیاز دارید، اما نمیخواهید برای آن یک تابع جداگانه تعریف کنید. 🌟
--------------
🎯 ساختار تابع Lambda
ساختار کلی:
به عنوان مثال:
------------
🎯 کاربردها
1. استفاده در توابعی مثل
مثال: فیلتر کردن اعداد زوج از یک لیست:
2. مرتبسازی پیشرفته:
مرتب کردن لیستی از دیکشنریها:
3. اعمال عملیات ریاضی:
به توان ۲ رساندن اعداد:
---
🚀 نکته: Lambda ساده، اما قدرتمند است! مناسب برای کدنویسی کوتاه و سریع، اما برای عملیات پیچیده بهتر است از توابع معمولی استفاده کنید. 💻✨
Group: @azad_program
Channel: @kiau_program
توابع Lambda در پایتون، توابع ناشناس و یکخطی هستند که بدون نیاز به تعریف نام، عملیات سادهای را اجرا میکنند. این توابع مخصوص مواقعی هستند که به یک تابع کوچک و سریع نیاز دارید، اما نمیخواهید برای آن یک تابع جداگانه تعریف کنید. 🌟
--------------
🎯 ساختار تابع Lambda
ساختار کلی:
lambda پارامترها: عملیات یا خروجی
به عنوان مثال:
add = lambda x, y: x + y
print(add(3, 5)) # خروجی: 8
------------
🎯 کاربردها
1. استفاده در توابعی مثل
map, filter, sorted:مثال: فیلتر کردن اعداد زوج از یک لیست:
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # خروجی: [2, 4]
2. مرتبسازی پیشرفته:
مرتب کردن لیستی از دیکشنریها:
students = [{'name': 'Ali', 'grade': 85}, {'name': 'Sara', 'grade': 92}]
sorted_students = sorted(students, key=lambda x: x['grade'])
print(sorted_students)
3. اعمال عملیات ریاضی:
به توان ۲ رساندن اعداد:
numbers = [1, 2, 3]
squared = list(map(lambda x: x**2, numbers))
print(squared) # خروجی: [1, 4, 9]
---
🚀 نکته: Lambda ساده، اما قدرتمند است! مناسب برای کدنویسی کوتاه و سریع، اما برای عملیات پیچیده بهتر است از توابع معمولی استفاده کنید. 💻✨
Group: @azad_program
Channel: @kiau_program
This media is not supported in your browser
VIEW IN TELEGRAM
سوپر کامپیوتر El Capitan
سریع ترین سوپرکامپیوتر جهان
سازنده HPE
قدرت پردازش دو quintillions
یعنی 2Exaflops !!!
Group: @azad_program
Channel: @kiau_program
سریع ترین سوپرکامپیوتر جهان
سازنده HPE
قدرت پردازش دو quintillions
یعنی 2Exaflops !!!
Group: @azad_program
Channel: @kiau_program
👍5
سلام به همه اعضای گروه 🙌🏻
اینجا توی گروه ما کلی استعداد و علاقه به برنامهنویسی جمع شده و به ذهنم رسید که از این پتانسیل فوقالعاده استفاده کنیم.
میخوام یک تیم برنامهنویسی دانشجویی تشکیل بدم که هدفش انجام پروژههای واقعی باشه. این تیم یک فرصت عالیه برای کسانی که میخوان تجربه کاری کسب کنن، رزومهشون رو قوی کنن و حتی درآمد داشته باشن.
💻 تخصصهایی که بهشون نیاز داریم:
- بکاند: Python (Django, Flask) یا #C . ا net. یا هر زبان دیگهای
- فرانتاند: HTML, CSS, JavaScript (React, Vue.js)
- توسعه دسکتاپ: Python (PyQt, Tkinter) یا #C و یا تکنولوژیهای دیگه
- توسعه موبایل: kotlin Flutter, React Native یا Native Development
- اتوماسیون و اسکریپتنویسی: Python یا Bash
- طراحی: UI/UX
- گرافیست
-طراح لوگو
🔹 چرا این تیم؟
1. روی پروژههای تمرینی و واقعی کار میکنیم (مثلاً طراحی سایت برای خودمون).
2. درآمد حاصل از پروژهها به صورت درصدی بین اعضای تیم تقسیم میشه.
3. همه کارها با همکاری و هدفمند پیش میره.
🔸 شرایط عضویت:
- دانشجو یا علاقهمند به برنامهنویسی
- مسئولیتپذیر و علاقهمند به یادگیری
- حداقل آشنایی با یکی از حوزههای بالا
🔔 اگه علاقه داری عضو این تیم باشی، پیوی پیام بده
بیاید با هم یه تیم قوی و حرفهای بسازیم. منتظرتونم! 🌟
@i_kent8
اینجا توی گروه ما کلی استعداد و علاقه به برنامهنویسی جمع شده و به ذهنم رسید که از این پتانسیل فوقالعاده استفاده کنیم.
میخوام یک تیم برنامهنویسی دانشجویی تشکیل بدم که هدفش انجام پروژههای واقعی باشه. این تیم یک فرصت عالیه برای کسانی که میخوان تجربه کاری کسب کنن، رزومهشون رو قوی کنن و حتی درآمد داشته باشن.
💻 تخصصهایی که بهشون نیاز داریم:
- بکاند: Python (Django, Flask) یا #C . ا net. یا هر زبان دیگهای
- فرانتاند: HTML, CSS, JavaScript (React, Vue.js)
- توسعه دسکتاپ: Python (PyQt, Tkinter) یا #C و یا تکنولوژیهای دیگه
- توسعه موبایل: kotlin Flutter, React Native یا Native Development
- اتوماسیون و اسکریپتنویسی: Python یا Bash
- طراحی: UI/UX
- گرافیست
-طراح لوگو
🔹 چرا این تیم؟
1. روی پروژههای تمرینی و واقعی کار میکنیم (مثلاً طراحی سایت برای خودمون).
2. درآمد حاصل از پروژهها به صورت درصدی بین اعضای تیم تقسیم میشه.
3. همه کارها با همکاری و هدفمند پیش میره.
🔸 شرایط عضویت:
- دانشجو یا علاقهمند به برنامهنویسی
- مسئولیتپذیر و علاقهمند به یادگیری
- حداقل آشنایی با یکی از حوزههای بالا
🔔 اگه علاقه داری عضو این تیم باشی، پیوی پیام بده
بیاید با هم یه تیم قوی و حرفهای بسازیم. منتظرتونم! 🌟
@i_kent8
❤🔥1👎1
جنگو ORM
واژهی ORM مختصرشدهی Object Relational Mapping است، Django ORM بخشی از جنگو است که وظیفهی اتصال به پایگاهداده، و دریافت و ارسال اطلاعات به آن را به دوش میکشد.
در واقع بدون وجود ORM در جنگو مجبور هستیم که در نرمافزار یا وباپلیکیشنهای خود کوئریهای دیتابیسی مثل SQL بزنیم و بهنحوی، مستقیماً نرمافزار خود را به پایگاهداده متصل کنیم. این امکان در پایتون وجود دارد که با کتابخانههای مختلف میتوانید به پایگاهدادههای مختلف متصل شوید و با استفاده از آنها اشیاء را در پایگاهداده ذخیره یا بازیابی نمایید.
با وجود جنگو ORM، بدون احتیاج به اتصال مستقیم به پایگاهداده، شما از Syntax همان ORM برای ذخیره و بازیابی اطلاعات استفاده میکنید، بدون احتیاج به اینکه از Syntax و زبان آن پایگاهداده استفاده کنید. در مقابل، در پسزمینه، آن ORM کدهای شما را به کوئریهای دیتابیسی تبدیل میکند که به این کار Map کردن میگویند.
مثال ساده:
یک مدل از کتاب که دارای فیلد های عنوان، نام نویسنده، تاریخ انتشار و قیمت هست
به روز رسانی و حذف به صورت تکی
به روز رسانی و حذف به صورت گروهی
Group: @azad_program
Channel: @kiau_program
واژهی ORM مختصرشدهی Object Relational Mapping است، Django ORM بخشی از جنگو است که وظیفهی اتصال به پایگاهداده، و دریافت و ارسال اطلاعات به آن را به دوش میکشد.
در واقع بدون وجود ORM در جنگو مجبور هستیم که در نرمافزار یا وباپلیکیشنهای خود کوئریهای دیتابیسی مثل SQL بزنیم و بهنحوی، مستقیماً نرمافزار خود را به پایگاهداده متصل کنیم. این امکان در پایتون وجود دارد که با کتابخانههای مختلف میتوانید به پایگاهدادههای مختلف متصل شوید و با استفاده از آنها اشیاء را در پایگاهداده ذخیره یا بازیابی نمایید.
با وجود جنگو ORM، بدون احتیاج به اتصال مستقیم به پایگاهداده، شما از Syntax همان ORM برای ذخیره و بازیابی اطلاعات استفاده میکنید، بدون احتیاج به اینکه از Syntax و زبان آن پایگاهداده استفاده کنید. در مقابل، در پسزمینه، آن ORM کدهای شما را به کوئریهای دیتابیسی تبدیل میکند که به این کار Map کردن میگویند.
مثال ساده:
یک مدل از کتاب که دارای فیلد های عنوان، نام نویسنده، تاریخ انتشار و قیمت هست
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=100)
published_date = models.DateField()
price = models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return self.title
#دیتایی که داریم
data = {
"title": "Hollywood",
"author": "Charles Bukowski",
"published_date": "1989-01-01",
"price": 150.99
}
# بازیابی همه رکورد ها و دریافت عنوان نویسنده
books = Book.objects.all()
for book in books:
print(book.title, book.author)
# یافتن کتابی با عنوان خاص
book = Book.objects.get(title="Hollywood")
print(book.author)
# کتابهایی که قیمتشان کمتر از 160 است
cheap_books = Book.objects.filter(price__lt=160)
for book in cheap_books:
print(book.title, book.price)
به روز رسانی و حذف به صورت تکی
# به روز رسانی کردن قیمت کتاب
book = Book.objects.get(title="Hollywood")
book.price = 159.99
book.save()
# حذف رکورد
book = Book.objects.get(title="Hollywood")
book.delete()
به روز رسانی و حذف به صورت گروهی
Book.objects.filter(price__gt=150).update(price=149.99)
Book.objects.filter(price__lt=100).delete()
Group: @azad_program
Channel: @kiau_program
👍8❤1
Azad's Programmers
جنگو ORM واژهی ORM مختصرشدهی Object Relational Mapping است، Django ORM بخشی از جنگو است که وظیفهی اتصال به پایگاهداده، و دریافت و ارسال اطلاعات به آن را به دوش میکشد. در واقع بدون وجود ORM در جنگو مجبور هستیم که در نرمافزار یا وباپلیکیشنهای خود…
جنگو ORM
2/2
چه متد هایی داریم که میتونیم استفاده کنیم و چه ریسپانسی برمیگردونند .
متد .all()
با استفاده از این متد میتوانیم تمامی ابجکت های یک مدل را برگردانیم و در صورت خالی بودن یک کوئری ست خالی برمیگردد.
متد .get()
با استفاده از این متد میتوانیم یک ابجکت را از دیتابیس بگیریم.
متد .exclude()
برعکس متد filter که جلو تر گفته شده تمامی ابجکت هایی که داخل دیتابیس هستند و از شرطی که تعیین کردیم صدق نمیکنند را بگیریم.
تمامی ابجکت هایی که نمرات انها برابر با 10 نیست را برمیگرداند.
متد .order_by()
با این متد میتوانیم ابجکت یک مدل را بر اساس یک ویژگی مرتب کنیم.
در حال حاضر به صورت صعودی مرتب میشوند.
در این تابع میتوانید با گذاشتن یک - قبل از نام فیلد، ترتیب را به صورت نزولی دریافت کنید.
متد .count()
با این متد میتوانیم تعداد اعضای QuerySet را بشماریم.
متد .filter()
با استفاده از این متد میتوانیم تمامی اشیاء یک مدل را که در شرایط داخل پرانتز صدق میکنند را بگیریم.
در این متد ما برای ایجاد محدودیت بیشتر میتوانیم با استفاده از این لیست این محدودیت هارو ایجاد کنیم .
در صورت تمایل هم میتونید با سرچ Field Lookups اطلاعات بیشتری بدست بیارید.
#django
Group: @azad_program
Channel: @kiau_program
2/2
چه متد هایی داریم که میتونیم استفاده کنیم و چه ریسپانسی برمیگردونند .
متد .all()
با استفاده از این متد میتوانیم تمامی ابجکت های یک مدل را برگردانیم و در صورت خالی بودن یک کوئری ست خالی برمیگردد.
>>> User.objects.all()
متد .get()
با استفاده از این متد میتوانیم یک ابجکت را از دیتابیس بگیریم.
>>> user1 = User.objects.get(username="my_name")
>>> print(user1.username, user1.score)
my_name 17
متد .exclude()
برعکس متد filter که جلو تر گفته شده تمامی ابجکت هایی که داخل دیتابیس هستند و از شرطی که تعیین کردیم صدق نمیکنند را بگیریم.
>>> User.objects.exclude(score=10)
تمامی ابجکت هایی که نمرات انها برابر با 10 نیست را برمیگرداند.
متد .order_by()
با این متد میتوانیم ابجکت یک مدل را بر اساس یک ویژگی مرتب کنیم.
>>> User.objects.order_by('score')در حال حاضر به صورت صعودی مرتب میشوند.
در این تابع میتوانید با گذاشتن یک - قبل از نام فیلد، ترتیب را به صورت نزولی دریافت کنید.
>>> User.objects.order_by('-score')متد .count()
با این متد میتوانیم تعداد اعضای QuerySet را بشماریم.
>>> User.objects.count()
21
>>> User.objects.filter(age=18).count()
2
متد .filter()
با استفاده از این متد میتوانیم تمامی اشیاء یک مدل را که در شرایط داخل پرانتز صدق میکنند را بگیریم.
User.objects.filter(score=10)
در این متد ما برای ایجاد محدودیت بیشتر میتوانیم با استفاده از این لیست این محدودیت هارو ایجاد کنیم .
در صورت تمایل هم میتونید با سرچ Field Lookups اطلاعات بیشتری بدست بیارید.
برابری exact , iexact
سرچ کردن در متن contains , icontains
کوچکتر lt
کوچکتر یا مساوی lte
بزرگتر gt
بزرگتر یا مساوی gte
بررسی ابتدای رشتهها startswith , istartswith
بررسی انتهای رشتهها endswith , iendswith
عملگر in پایتونی in
#django
Group: @azad_program
Channel: @kiau_program
❤5⚡1👍1
Django Honeypot🍯
یک پکیج امنیتی که یک صفحه ی لاگین جعلی برای پنل ادمین شما ایجاد میکند که شبیه به پنل اصلی شما است ولی در واقع برای فریب کاربر های غیر مجاز است و شما میتوانید متوجه بشوید چه کسانی قصد ورود به پنل شمارا داشته اند
مزایا:
ردیابی حملات: شما میتونین هر کسی که سعی داره بدون اجازه وارد پنل ادمین بشه رو شناسایی کنین
کاهش ریسک حملات: هکرها به اشتباه فکر میکنن وارد صفحه اصلی شدن و شما میتونین از این فرصت استفاده کنین تا حمله رو مدیریت کنین
سادگی استفاده: بدون نیاز به تغییرات پیچیده توی پروژه تون به راحتی میتونید این پکیج رو نصب و استفاده کنین.
چطور از django honeypot استفاده کنیم؟
1) اول از همه باید پکیج رو نصب کنی
2) بعد از نصب باید django honeypot رو به تنظیمات پروژه اضافه کنی توی فایل settings.py خط زیر رو
اضافه کنید
.3) حالا باید به مسیر جعلی برای پنل ادمین بسازید توی فایل urls.py این تغییرات رو اعمال کنید:
مسیر /admin/ حالا صفحه جعلی ادمینه که تله ی شماست .
مسیر real-admin / هم مسیر واقعی پنل ادمین شماست که فقط خودتون میدونید.
محدودیتها:
این روش ممکن است برای رباتهای پیشرفته که فیلدهای مخفی را نادیده میگیرند، مؤثر نباشد.
برای امنیت بهتر، میتوان از Honeypot همراه با سایر روشها مانند CAPTCHA یا Rate Limiting استفاده کرد.
جمعبندی:
هانیپات یک روش ساده و کارآمد برای جلوگیری از اسپم فرمها در جنگو است. اگر به دنبال راهکاری سبک و بدون تأثیر منفی بر تجربه کاربری هستید، این روش میتواند انتخاب خوبی باشد.
Group: @azad_program
Channel: @kiau_program
یک پکیج امنیتی که یک صفحه ی لاگین جعلی برای پنل ادمین شما ایجاد میکند که شبیه به پنل اصلی شما است ولی در واقع برای فریب کاربر های غیر مجاز است و شما میتوانید متوجه بشوید چه کسانی قصد ورود به پنل شمارا داشته اند
مزایا:
ردیابی حملات: شما میتونین هر کسی که سعی داره بدون اجازه وارد پنل ادمین بشه رو شناسایی کنین
کاهش ریسک حملات: هکرها به اشتباه فکر میکنن وارد صفحه اصلی شدن و شما میتونین از این فرصت استفاده کنین تا حمله رو مدیریت کنین
سادگی استفاده: بدون نیاز به تغییرات پیچیده توی پروژه تون به راحتی میتونید این پکیج رو نصب و استفاده کنین.
چطور از django honeypot استفاده کنیم؟
1) اول از همه باید پکیج رو نصب کنی
pip install django-admin-honeypot
2) بعد از نصب باید django honeypot رو به تنظیمات پروژه اضافه کنی توی فایل settings.py خط زیر رو
اضافه کنید
INSTALLED_APPS = [
#another_apps
'admin_honeypot',
]
.3) حالا باید به مسیر جعلی برای پنل ادمین بسازید توی فایل urls.py این تغییرات رو اعمال کنید:
from django.urls import path, include
import admin_honeypot.urls
urlpatterns = [
path('admin/', include('admin_honeypot.urls', namespace='admin_honeypot')),
path('real-admin/', admin.site.urls)
]
مسیر /admin/ حالا صفحه جعلی ادمینه که تله ی شماست .
مسیر real-admin / هم مسیر واقعی پنل ادمین شماست که فقط خودتون میدونید.
محدودیتها:
این روش ممکن است برای رباتهای پیشرفته که فیلدهای مخفی را نادیده میگیرند، مؤثر نباشد.
برای امنیت بهتر، میتوان از Honeypot همراه با سایر روشها مانند CAPTCHA یا Rate Limiting استفاده کرد.
جمعبندی:
هانیپات یک روش ساده و کارآمد برای جلوگیری از اسپم فرمها در جنگو است. اگر به دنبال راهکاری سبک و بدون تأثیر منفی بر تجربه کاربری هستید، این روش میتواند انتخاب خوبی باشد.
Group: @azad_program
Channel: @kiau_program
👍8❤4
🌐 اولین وبسایت دنیا: داستان شروع اینترنت!
دنیای اینترنت و صفحات وب که امروزه باهاش در ارتباطیم، 34 سال پیش از یه سایت ساده شروع شد. این سایت توسط تیم برنرز-لی (Tim Berners-Lee)، دانشمند بریتانیایی، در سال 1991 در دسترس عموم قرار گرفت.
در 29 آذر 1369، برنرز-لی در مرکز تحقیقات هستهای اروپا (CERN) متوجه شد دانشمندان برای اشتراک اطلاعات به سیستمی ساده نیاز دارن. اون شبکهای جهانی طراحی کرد که بعدها به World Wide Web (WWW) معروف شد. ابتدا این وبسایت فقط برای کارمندان CERN قابل دسترسی بود اما در مرداد 1370 عمومی شد.
از اونجایی که مفهوم Server تازه بود، تیم یادداشتی با جوهر قرمز روی کامپیوتر NeXT (میزبان پروژه) نوشت: "این دستگاه یک سرور است؛ آن را خاموش نکنید!"
آدرس وبسایت:
http://info.cern.ch
این سایت ساده توضیح میداد وب چیه و چطور میشه ازش استفاده کرد. بدون عکس، صرفاً با HTML، پروتکل HTTP و یک URL ساخته شده بود.
Group: @azad_program
Channel: @kiau_program
دنیای اینترنت و صفحات وب که امروزه باهاش در ارتباطیم، 34 سال پیش از یه سایت ساده شروع شد. این سایت توسط تیم برنرز-لی (Tim Berners-Lee)، دانشمند بریتانیایی، در سال 1991 در دسترس عموم قرار گرفت.
در 29 آذر 1369، برنرز-لی در مرکز تحقیقات هستهای اروپا (CERN) متوجه شد دانشمندان برای اشتراک اطلاعات به سیستمی ساده نیاز دارن. اون شبکهای جهانی طراحی کرد که بعدها به World Wide Web (WWW) معروف شد. ابتدا این وبسایت فقط برای کارمندان CERN قابل دسترسی بود اما در مرداد 1370 عمومی شد.
از اونجایی که مفهوم Server تازه بود، تیم یادداشتی با جوهر قرمز روی کامپیوتر NeXT (میزبان پروژه) نوشت: "این دستگاه یک سرور است؛ آن را خاموش نکنید!"
آدرس وبسایت:
http://info.cern.ch
این سایت ساده توضیح میداد وب چیه و چطور میشه ازش استفاده کرد. بدون عکس، صرفاً با HTML، پروتکل HTTP و یک URL ساخته شده بود.
Group: @azad_program
Channel: @kiau_program
👍7❤3
🌐 مفهوم REST Api و RESTful API!
امروز میخوایم درمورد یک ساختار و معماری مهم در API ها به اسم REST و REST Api صحبت کنیم.
⁉️ اما API اصلا چیه؟
ببینید، API مثل یه جور پل ارتباطی میمونه بین دو برنامه یا Server و Client، به زبان ساده تر، API یسری قوانین و دستورالعمله که به برنامه ها میگه چطوری باهم حرف بزنن و اطلاعات رد و بدل کنن.
فرض کنین شما یه اپلیکیشن هواشناسی دارید. این اپلیکیشن برای اینکه اطلاعات هوا رو نشون بده باید با یه سرویس هواشناسی ارتباط برقرار کنه. این ارتباط از طریق API انجام میشه.
⭕️ اول از همه REST Api چیه؟
یه REST API در واقع یه راه ارتباطی بین دو تا نرمافزاره که از اصول REST پیروی میکنه. به زبان سادهتر، یه سری قوانین و استانداردهایی رو رعایت میکنه تا نرمافزارها بتونن به راحتی با هم حرف بزنن و اطلاعات رد و بدل کنن.
چی کار میکنه؟
به نرمافزارها اجازه میده تا دادهها رو درخواست بدن، ایجاد کنن، ویرایش کنن یا حذف کنن.
چطوری کار میکنه؟
از پروتکل HTTP برای ارتباط استفاده میکنه (همون پروتکلی که مرورگرها برای باز کردن صفحات وب استفاده میکنن).
چه شکلیه؟
معمولاً از فرمتهایی مثل JSON یا XML برای انتقال دادهها استفاده میکنه.
‼️ تفاوت REST Api با RESTful API
یک REST Api از پروتکل HTTP استفاده میکنه و یکسری از عملیات CRUD (ایجاد، خواندن، بروزرسانی، حذف) رو انجام میده اما ممکنه همه اصول REST رو رعایت نکنه.
وقتی که یک REST Api به طور کامل به اصول، قواعد، قوانین و ساختار معماری REST پایبند باشه و تمامی عملیات رو به طول کامل انجام بده به یک RESTful API تبدیل میشه
🔸 مفاهیم کلیدی در REST API:
منابع (Resources): هر چیزی که تو یه برنامه میخوایم بهش دسترسی داشته باشیم یه منبع حساب میشه. مثلاً کاربرها، پست ها، محصولات و …
درخواست ها (Requests): درخواست ها مثل دستوراتی هستن که به API میدیم. مثلاً میگیم “همه کاربرهارو بده” یا “یه کاربر جدید اضافه کن”.
پاسخ ها (Responses): پاسخ ها هم مثل جواب هایی هستن که API به ما میده. مثلاً یه لیست از کاربرها یا یه پیام که میگه “کاربر با موفقیت اضافه شد”.
متدهای HTTP: برای اینکه مشخص کنیم چه کاری می خوایم انجام بدیم، از یه سری متدها استفاده میکنیم،
مثل:
GET: برای گرفتن اطلاعات
POST: برای اضافه کردن اطلاعات
PUT: برای ویرایش اطلاعات
DELETE: برای حذف اطلاعات
🔸 یه مثال ساده از REST API:
فرض کنید یه اپلیکیشن داریم که لیست کتاب ها رو نشون میده.
درخواست GET /books: یعنی “همه کتاب ها رو بده”.
پاسخ: یه لیست از همه کتاب ها برمیگرده.
درخواست POST /books: یعنی “یه کتاب جدید اضافه کن”.
پاسخ: یه پیام میاد که میگه “کتاب با موفقیت اضافه شد”.
Group: @azad_program
Channel: @kiau_program
امروز میخوایم درمورد یک ساختار و معماری مهم در API ها به اسم REST و REST Api صحبت کنیم.
⁉️ اما API اصلا چیه؟
ببینید، API مثل یه جور پل ارتباطی میمونه بین دو برنامه یا Server و Client، به زبان ساده تر، API یسری قوانین و دستورالعمله که به برنامه ها میگه چطوری باهم حرف بزنن و اطلاعات رد و بدل کنن.
فرض کنین شما یه اپلیکیشن هواشناسی دارید. این اپلیکیشن برای اینکه اطلاعات هوا رو نشون بده باید با یه سرویس هواشناسی ارتباط برقرار کنه. این ارتباط از طریق API انجام میشه.
⭕️ اول از همه REST Api چیه؟
یه REST API در واقع یه راه ارتباطی بین دو تا نرمافزاره که از اصول REST پیروی میکنه. به زبان سادهتر، یه سری قوانین و استانداردهایی رو رعایت میکنه تا نرمافزارها بتونن به راحتی با هم حرف بزنن و اطلاعات رد و بدل کنن.
چی کار میکنه؟
به نرمافزارها اجازه میده تا دادهها رو درخواست بدن، ایجاد کنن، ویرایش کنن یا حذف کنن.
چطوری کار میکنه؟
از پروتکل HTTP برای ارتباط استفاده میکنه (همون پروتکلی که مرورگرها برای باز کردن صفحات وب استفاده میکنن).
چه شکلیه؟
معمولاً از فرمتهایی مثل JSON یا XML برای انتقال دادهها استفاده میکنه.
‼️ تفاوت REST Api با RESTful API
یک REST Api از پروتکل HTTP استفاده میکنه و یکسری از عملیات CRUD (ایجاد، خواندن، بروزرسانی، حذف) رو انجام میده اما ممکنه همه اصول REST رو رعایت نکنه.
وقتی که یک REST Api به طور کامل به اصول، قواعد، قوانین و ساختار معماری REST پایبند باشه و تمامی عملیات رو به طول کامل انجام بده به یک RESTful API تبدیل میشه
🔸 مفاهیم کلیدی در REST API:
منابع (Resources): هر چیزی که تو یه برنامه میخوایم بهش دسترسی داشته باشیم یه منبع حساب میشه. مثلاً کاربرها، پست ها، محصولات و …
درخواست ها (Requests): درخواست ها مثل دستوراتی هستن که به API میدیم. مثلاً میگیم “همه کاربرهارو بده” یا “یه کاربر جدید اضافه کن”.
پاسخ ها (Responses): پاسخ ها هم مثل جواب هایی هستن که API به ما میده. مثلاً یه لیست از کاربرها یا یه پیام که میگه “کاربر با موفقیت اضافه شد”.
متدهای HTTP: برای اینکه مشخص کنیم چه کاری می خوایم انجام بدیم، از یه سری متدها استفاده میکنیم،
مثل:
GET: برای گرفتن اطلاعات
POST: برای اضافه کردن اطلاعات
PUT: برای ویرایش اطلاعات
DELETE: برای حذف اطلاعات
🔸 یه مثال ساده از REST API:
فرض کنید یه اپلیکیشن داریم که لیست کتاب ها رو نشون میده.
درخواست GET /books: یعنی “همه کتاب ها رو بده”.
پاسخ: یه لیست از همه کتاب ها برمیگرده.
درخواست POST /books: یعنی “یه کتاب جدید اضافه کن”.
پاسخ: یه پیام میاد که میگه “کتاب با موفقیت اضافه شد”.
Group: @azad_program
Channel: @kiau_program
👍5❤2
Azad's Programmers
⭕️ رابط برنامه نویسی کاربردی (API): رابط برنامهنویسی کاربردی (Application Programming Interface) یا به طور مخفف API، مجموعهای از قوانین و پروتکلهاست که به نرمافزارها اجازه میده با همدیگه ارتباط برقرار کنن. به زبان ساده، API ها واسطهای هستن که به برنامهها…
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 نحوه کارکرد Api به روایت تصویر :)
https://t.me/kiau_program/149
Group: @azad_program
Channel: @kiau_program
https://t.me/kiau_program/149
Group: @azad_program
Channel: @kiau_program
🤣6⚡1
🎉 به مناسبت سالروز گروه Azad's Programmer، سرور دیسکورد ما راهاندازی شد! 🎉
برای تعامل بیشتر و بهرهگیری از امکانات جدید، به ما در سرور دیسکورد بپیوندید:
https://discord.gg/y8xd5dYC
منتظرتون هستیم! 🚀
برای تعامل بیشتر و بهرهگیری از امکانات جدید، به ما در سرور دیسکورد بپیوندید:
https://discord.gg/y8xd5dYC
منتظرتون هستیم! 🚀
Discord
Join the Azad's Programmer👨💻👩💻 Discord Server!
Check out the Azad's Programmer👨💻👩💻 community on Discord - hang out with 3 other members and enjoy free voice and text chat.
5❤🔥5👍1👎1