MMN-DEV</>
چرا ORM ? 👇 #django
یکی از دلایل اصلی که توسعهدهندهها به سراغ جنگو میرن، وجود ORM یا همون Object-Relational Mapping قدرتمندش هست. حالا ORM چی هست؟ به زبان ساده، یه ابزار یا روشی هست که به شما اجازه میده به جای اینکه مستقیم با زبان SQL و دیتابیس کار کنید، با استفاده از کدهای پایتون و اشیاء (Objects) دیتابیستون رو مدیریت کنید. یعنی به جای نوشتن کوئریهای پیچیده SQL، شما مدلهایی رو توی پایتون تعریف میکنید و جنگو خودش این مدلها رو به جداول دیتابیس تبدیل میکنه. این باعث میشه که کار با دیتابیس خیلی سریعتر، تمیزتر و قابلفهمتر بشه.
1-رهایی از شر کوئری های پیچیده و دست و پا گیر
یکی از برتریهای بزرگ ORM جنگو اینه که شما رو از پیچیدگیهای دیتابیسهای مختلف آزاد میکنه. فرض کنید یه پروژه رو با دیتابیس SQLite شروع کردید، ولی بعداً تصمیم گرفتید به PostgreSQL یا MySQL مهاجرت کنید. اگه مستقیم با SQL کار کرده باشید، باید کلی از کوئریهاتون رو بازنویسی کنید چون هر دیتابیس syntax خاص خودش رو داره. اما با ORM جنگو، چون شما با پایتون کار میکنید و نه SQL خام، این تغییر دیتابیس خیلی راحتتر انجام میشه. جنگو خودش سازگاری رو مدیریت میکنه و شما فقط باید تنظیمات رو آپدیت کنید. این انعطافپذیری برای پروژههای بزرگ یا تیمی که ممکنه نیازهاشون تغییر کنه، یه مزیت بزرگه.
2-خدافظی با SQL Injection
یه مزیت دیگه اینه که ORM جنگو به شدت روی امنیت تمرکز داره. مثلاً وقتی از ORM استفاده میکنید، دیگه لازم نیست نگران حملاتی مثل SQL Injection باشید، چون جنگو به صورت خودکار ورودیها رو sanitize میکنه و مطمئن میشه که کد مخربی وارد دیتابیستون نشه.
3-ساده تر شدن تعریف روابط پیچیده بین جدولها
کار با روابط پیچیده بین جداول (مثل one-to-many یا many-to-many) خیلی سادهتر میشه. شما فقط توی مدلهاتون رابطهها رو تعریف میکنید و جنگو بقیه کار رو براتون انجام میده. این باعث میشه زمان توسعه کمتر بشه و کدهاتون خواناتر و قابلنگهداریتر بشه.
#django
1-رهایی از شر کوئری های پیچیده و دست و پا گیر
یکی از برتریهای بزرگ ORM جنگو اینه که شما رو از پیچیدگیهای دیتابیسهای مختلف آزاد میکنه. فرض کنید یه پروژه رو با دیتابیس SQLite شروع کردید، ولی بعداً تصمیم گرفتید به PostgreSQL یا MySQL مهاجرت کنید. اگه مستقیم با SQL کار کرده باشید، باید کلی از کوئریهاتون رو بازنویسی کنید چون هر دیتابیس syntax خاص خودش رو داره. اما با ORM جنگو، چون شما با پایتون کار میکنید و نه SQL خام، این تغییر دیتابیس خیلی راحتتر انجام میشه. جنگو خودش سازگاری رو مدیریت میکنه و شما فقط باید تنظیمات رو آپدیت کنید. این انعطافپذیری برای پروژههای بزرگ یا تیمی که ممکنه نیازهاشون تغییر کنه، یه مزیت بزرگه.
2-خدافظی با SQL Injection
یه مزیت دیگه اینه که ORM جنگو به شدت روی امنیت تمرکز داره. مثلاً وقتی از ORM استفاده میکنید، دیگه لازم نیست نگران حملاتی مثل SQL Injection باشید، چون جنگو به صورت خودکار ورودیها رو sanitize میکنه و مطمئن میشه که کد مخربی وارد دیتابیستون نشه.
3-ساده تر شدن تعریف روابط پیچیده بین جدولها
کار با روابط پیچیده بین جداول (مثل one-to-many یا many-to-many) خیلی سادهتر میشه. شما فقط توی مدلهاتون رابطهها رو تعریف میکنید و جنگو بقیه کار رو براتون انجام میده. این باعث میشه زمان توسعه کمتر بشه و کدهاتون خواناتر و قابلنگهداریتر بشه.
#django
مفهوم Dynamic URL در جنگو
یعنی آدرسهایی که یه بخششون متغیره، مثلاً:
این بخش متغیر (مثل عدد یا اسم) از URL گرفته میشه و به تابع مربوطه توی
🧩 چطوری تعریف میشه؟
🎯 انواع داده قابل استفاده در URL:
#django
یعنی آدرسهایی که یه بخششون متغیره، مثلاً:
/blog_post/532/ یا /user/ali/
این بخش متغیر (مثل عدد یا اسم) از URL گرفته میشه و به تابع مربوطه توی
views.py داده میشه.🧩 چطوری تعریف میشه؟
urls.py:path('blog_post/<int:id>/', views.blog_detail)views.py:def blog_detail(request, id):
return HttpResponse(f"پست شماره {id}")
🎯 انواع داده قابل استفاده در URL:
int --> <int:id>str --> <str:name>slug --> <slug:slug>path --> <path:foo>#django
👍1
دستورات
در جنگو (Django)، وقتی با پایگاه داده (Database) کار میکنی، دو دستور مهم وجود داره:
1.
🔹 این دستور تغییراتی که توی مدلها (Models) دادی رو ثبت میکنه.
مثل اینه که به جنگو بگی: "من یه سری تغییر توی جدولها دادم، لطفاً این تغییرات رو یادداشت کن."
2.
🔹 این دستور تغییراتی که با
یعنی واقعاً جدولها رو توی پایگاه داده میسازه یا تغییر میده.
مثال ساده:
فرض کن یه مدل جدید ساختی:
حالا باید:
1.
2.
#django
makemigrations و migrate :در جنگو (Django)، وقتی با پایگاه داده (Database) کار میکنی، دو دستور مهم وجود داره:
1.
makemigrations :🔹 این دستور تغییراتی که توی مدلها (Models) دادی رو ثبت میکنه.
مثل اینه که به جنگو بگی: "من یه سری تغییر توی جدولها دادم، لطفاً این تغییرات رو یادداشت کن."
2.
migrate :🔹 این دستور تغییراتی که با
makemigrations ثبت شده بودن رو روی پایگاه داده اعمال میکنه. یعنی واقعاً جدولها رو توی پایگاه داده میسازه یا تغییر میده.
مثال ساده:
فرض کن یه مدل جدید ساختی:
class Book(models.Model):
noscript = models.CharField(max_length=100)
حالا باید:
1.
python manage.py makemigrations ➜ جنگو میفهمه که مدل Book جدید اضافه شده 2.
python manage.py migrate ➜ جدول Book واقعاً توی دیتابیس ساخته میشه.#django
❤️🔥 ربات جدید بنده آماده شد ، دوستان میتونن ازش برای ساخت تصویر با هوش مصنوعی به صورت رایگان و نامحدود استفاده کنن :
@Tasvirakbot
@Tasvirakbot
MMN-DEV</> pinned «❤️🔥 ربات جدید بنده آماده شد ، دوستان میتونن ازش برای ساخت تصویر با هوش مصنوعی به صورت رایگان و نامحدود استفاده کنن : @Tasvirakbot»
چرا باید vscode رو حذف کنی و به جاش از نسخه VSCodium استفاده کنی ؟
اگه برنامهنویس باشی یا حتی یه ذره با کدنویسی سروکار داشته باشی، حتماً اسم Visual Studio Code (VS Code) رو شنیدی. یه ویرایشگر کد فوقالعاده که مایکروسافت ساخته و کلی طرفدار داره. اما یه لحظه صبر کن! اگه به آزادی نرمافزار و حریم خصوصی اهمیت میدی، شاید بهتر باشه یه نگاهی به VSCodium بندازی. حالا بذار بگم این VSCodium چیه و چرا باید بری سراغش.
VSCodium چیه اصلاً؟
VSCodium در واقع همون VS Codeـه، ولی با یه تفاوت بزرگ: کاملاً متنباز (Open Source) و بدون جاسوسافزارهای مایکروسافت! وقتی VS Code رو نصب میکنی، یه سری ابزارهای telemetry (ردیابی داده) همراهش میاد که اطلاعاتی از کارات جمع میکنه و میفرسته برای مایکروسافت. شاید برات مهم نباشه، ولی اگه مثل من یه ذره حساسی به این که کی داره چی رو ازت نگاه میکنه، VSCodium همون چیزیه که دنبالشی. این پروژه کدهای VS Code رو میگیره، چیزای اضافی و ردیابی رو حذف میکنه و یه نسخه پاک و آزاد تحویلت میده.
چرا VSCodium رو نصب کنم؟
1. حریم خصوصی: همونطور که گفتم، هیچ دادهای ازت جمع نمیکنه. اگه دوست نداری مایکروسافت بفهمه چه پلاگینهایی نصب کردی یا چه پروژههایی داری روش کار میکنی، این بهترین انتخابه.
2. متنباز بودن: کدش کاملاً شفافه. میتونی خودت بری ببینی چی به چیه و اگه خواستی تغییرش بدی. حس آزادی بهت میده!
3. سبک و سریع: چون زلمزیمبوهای اضافی رو حذف کرده، یه ذره سبکتر از VS Code عمل میکنه (هرچند تفاوتش خیلی توی چشم نیست).
4. همه پلاگینها کار میکنن: نگران نباش، تمام افزونههایی که توی VS Code استفاده میکردی، اینجا هم کار میکنن. فقط کافیه مخزن مایکروسافت رو غیرفعال کنی و از Open VSX Registry استفاده کنی.
5. حمایت از فلسفه آزادی: با نصب VSCodium، یه جورایی به جامعه متنباز کمک میکنی و نشون میدی که نرمافزار آزاد برات مهمه.
چطوری نصبش کنم؟
نصبش خیلی سادهست و بسته به سیستمعاملت فرق میکنه:
ویندوز: فایل نصبی رو از سایت رسمی VSCodium (vscodium.com) دانلود کن، بازش کن و مراحل رو برو جلو. مثل هر برنامه دیگه!
لینوکس: اگه از اوبونتو یا دبیان استفاده میکنی، میتونی با یه دستور توی ترمینال نصبش کنی. مثلاً:
یا اگه از فدورا هستی:
مک: فایل DMG رو دانلود کن، بازش کن و بکشش توی پوشه Applications. تموم!
یه نکته کوچیک
اولین بار که بازش میکنی، ممکنه بگه فلان افزونه رو نمیتونه از مخزن مایکروسافت پیدا کنه. نگران نشو، کافیه بری توی تنظیمات و مخزن پیشفرض رو به Open VSX تغییر بدی. یه سرچ ساده تو گوگل یا داک رسمی VSCodium راهنماییات میکنه.
#tutorial
#linux_tut
اگه برنامهنویس باشی یا حتی یه ذره با کدنویسی سروکار داشته باشی، حتماً اسم Visual Studio Code (VS Code) رو شنیدی. یه ویرایشگر کد فوقالعاده که مایکروسافت ساخته و کلی طرفدار داره. اما یه لحظه صبر کن! اگه به آزادی نرمافزار و حریم خصوصی اهمیت میدی، شاید بهتر باشه یه نگاهی به VSCodium بندازی. حالا بذار بگم این VSCodium چیه و چرا باید بری سراغش.
VSCodium چیه اصلاً؟
VSCodium در واقع همون VS Codeـه، ولی با یه تفاوت بزرگ: کاملاً متنباز (Open Source) و بدون جاسوسافزارهای مایکروسافت! وقتی VS Code رو نصب میکنی، یه سری ابزارهای telemetry (ردیابی داده) همراهش میاد که اطلاعاتی از کارات جمع میکنه و میفرسته برای مایکروسافت. شاید برات مهم نباشه، ولی اگه مثل من یه ذره حساسی به این که کی داره چی رو ازت نگاه میکنه، VSCodium همون چیزیه که دنبالشی. این پروژه کدهای VS Code رو میگیره، چیزای اضافی و ردیابی رو حذف میکنه و یه نسخه پاک و آزاد تحویلت میده.
چرا VSCodium رو نصب کنم؟
1. حریم خصوصی: همونطور که گفتم، هیچ دادهای ازت جمع نمیکنه. اگه دوست نداری مایکروسافت بفهمه چه پلاگینهایی نصب کردی یا چه پروژههایی داری روش کار میکنی، این بهترین انتخابه.
2. متنباز بودن: کدش کاملاً شفافه. میتونی خودت بری ببینی چی به چیه و اگه خواستی تغییرش بدی. حس آزادی بهت میده!
3. سبک و سریع: چون زلمزیمبوهای اضافی رو حذف کرده، یه ذره سبکتر از VS Code عمل میکنه (هرچند تفاوتش خیلی توی چشم نیست).
4. همه پلاگینها کار میکنن: نگران نباش، تمام افزونههایی که توی VS Code استفاده میکردی، اینجا هم کار میکنن. فقط کافیه مخزن مایکروسافت رو غیرفعال کنی و از Open VSX Registry استفاده کنی.
5. حمایت از فلسفه آزادی: با نصب VSCodium، یه جورایی به جامعه متنباز کمک میکنی و نشون میدی که نرمافزار آزاد برات مهمه.
چطوری نصبش کنم؟
نصبش خیلی سادهست و بسته به سیستمعاملت فرق میکنه:
ویندوز: فایل نصبی رو از سایت رسمی VSCodium (vscodium.com) دانلود کن، بازش کن و مراحل رو برو جلو. مثل هر برنامه دیگه!
لینوکس: اگه از اوبونتو یا دبیان استفاده میکنی، میتونی با یه دستور توی ترمینال نصبش کنی. مثلاً:
sudo apt install vscodium
یا اگه از فدورا هستی:
sudo dnf install vscodium
مک: فایل DMG رو دانلود کن، بازش کن و بکشش توی پوشه Applications. تموم!
یه نکته کوچیک
اولین بار که بازش میکنی، ممکنه بگه فلان افزونه رو نمیتونه از مخزن مایکروسافت پیدا کنه. نگران نشو، کافیه بری توی تنظیمات و مخزن پیشفرض رو به Open VSX تغییر بدی. یه سرچ ساده تو گوگل یا داک رسمی VSCodium راهنماییات میکنه.
#tutorial
#linux_tut
اگه مشکل mount کردن هاردهای اکسترنال یا فلش مموری NTFS داری، این ابزار به کمکت میاد! 🙌
با این برنامه میتونی به راحتی از طریق GUI پارتیشنها رو انتخاب کنی و دستور
ویژگیها:
انتخاب پارتیشنها بهصورت گرافیکی
درخواست پسورد روت برای اجرا با دسترسیهای بالا
نمایش نتیجه اجرای دستور به صورت واضح
https://github.com/mmnosrati/ntfs-mount-fixer
#linux
#linux_tools
با این برنامه میتونی به راحتی از طریق GUI پارتیشنها رو انتخاب کنی و دستور
ntfsfix --clear-dirty رو روی پارتیشنهای NTFS اجرا کنی. این دستور باعث میشه که مشکلات مربوط به فلش و هاردهای NTFS حل بشه و بتونی دوباره به راحتی ازشون استفاده کنی.ویژگیها:
انتخاب پارتیشنها بهصورت گرافیکی
درخواست پسورد روت برای اجرا با دسترسیهای بالا
نمایش نتیجه اجرای دستور به صورت واضح
https://github.com/mmnosrati/ntfs-mount-fixer
#linux
#linux_tools
GitHub
GitHub - mmnosrati/ntfs-mount-fixer: NTFS Mount Fixer is a simple GUI tool that helps users fix NTFS partition errors on (ARCH…
NTFS Mount Fixer is a simple GUI tool that helps users fix NTFS partition errors on (ARCH BASE) Linux systems. - mmnosrati/ntfs-mount-fixer
⭕️ آشیانه برنامهنویسان
🌐 dev.to
منبع جامعی شامل آموزش، مطالعات، بنچمارک، مقایسه، تستها، اخبار فناوری، تغییرات، ترفندها، نمونهکارها، مسابقات طراحی و...
توی بخش Videos هم یه عاااااااالمه فیلم آموزشی و مفید داره
هرچیزی فکرشو کنید توش پیدا میشه
کافیه موضوع دلخواهتون رو سرچ کنید.
🌐 dev.to
منبع جامعی شامل آموزش، مطالعات، بنچمارک، مقایسه، تستها، اخبار فناوری، تغییرات، ترفندها، نمونهکارها، مسابقات طراحی و...
توی بخش Videos هم یه عاااااااالمه فیلم آموزشی و مفید داره
هرچیزی فکرشو کنید توش پیدا میشه
کافیه موضوع دلخواهتون رو سرچ کنید.
📌 ویرایشگر متن فارسی – تحت وب و رایگان
اگه دنبال یه ویرایشگر متن فارسی ساده، شیک و آنلاین هستین که با موبایل و لپتاپ هم عالی کار کنه، اینو از دست ندین 👇
🖋 با این ابزار میتونی:
متن فارسی رو راستچین و تمیز تایپ کنی
بولد، ایتالیک، لیست، رنگ و کلی چیز دیگه بزنی
فایل متنی بارگذاری یا دانلود کنی
📎 لینک استفاده مستقیم:
🌐 https://persian-editor.vercel.app/
📁 سورس کد تو گیتهاب:
🔗 https://github.com/mmnosrati
#tools
اگه دنبال یه ویرایشگر متن فارسی ساده، شیک و آنلاین هستین که با موبایل و لپتاپ هم عالی کار کنه، اینو از دست ندین 👇
🖋 با این ابزار میتونی:
متن فارسی رو راستچین و تمیز تایپ کنی
بولد، ایتالیک، لیست، رنگ و کلی چیز دیگه بزنی
فایل متنی بارگذاری یا دانلود کنی
📎 لینک استفاده مستقیم:
🌐 https://persian-editor.vercel.app/
📁 سورس کد تو گیتهاب:
🔗 https://github.com/mmnosrati
#tools
🎧 Lo-Fi Chill Player - آرامش در هر لحظه!
لوفای باکس آپدیت شد :
1-مشکل پخش ایستگاههای Lo-Fi حل شد
2-حالت تمامصفحه اضافه شد و دکمه تغییر تم و بک گراند هم اضافه شد
https://lofibox.pages.dev/
لوفای باکس آپدیت شد :
1-مشکل پخش ایستگاههای Lo-Fi حل شد
2-حالت تمامصفحه اضافه شد و دکمه تغییر تم و بک گراند هم اضافه شد
https://lofibox.pages.dev/
👍1
MMN-DEV</>
در حال بروزرسانی
ربات @Tasvirakbot آپدیت شد ، پر سرعت تر از قبل ، هر عکسی رو بخواید براتون میسازه❤️💫
❤3
@mmn_dev_آموزش_کامل_گیت_و_گیتهاب_برای_مبتدیان.pdf
192.3 KB
این آموزش جامع رو برای شما نوشتم و آماده کردم که GIT و Github رو از صفر و به زبون ساده یاد بگیرید.
توی این فایل، همهچیز قدمبهقدم توضیح داده شده، از نصب گیت تا کار با گیتهاب و ...
#git
#tutorial
توی این فایل، همهچیز قدمبهقدم توضیح داده شده، از نصب گیت تا کار با گیتهاب و ...
#git
#tutorial
❤7👍3
دوستان ربات @Tasvirakbot رو آپدیت کردم و سرور هاش رو ارتقا دادم ، الان میتونید هر نوع تصویری با هر استایلی رو با متن فارسی یا انگلیسی با هوش مصنوعی بسازید ❤️🚀
❤2
MMN-DEV</> pinned «دوستان ربات @Tasvirakbot رو آپدیت کردم و سرور هاش رو ارتقا دادم ، الان میتونید هر نوع تصویری با هر استایلی رو با متن فارسی یا انگلیسی با هوش مصنوعی بسازید ❤️🚀»
MMN-DEV</>
Photo
سلام بچهها!
🔺 امروز میخوام یه موضوع مهم تو دنیای امنیت رایانه باهاتون به اشتراک بذارم: مبهمسازی کد یا همون Code Obfuscation.
حالا این چیه؟ مبهمسازی کد مثل اینه که کد برنامهت رو یه جوری قاطیپاطی کنی که برای هکرا یا آدمای کنجکاو مثل یه پازل پیچیده بشه. هدفش اینه که خوندن و مهندسی معکوس کدت سختتر بشه، ولی برنامهت همچنان درست کار کنه.
🔸این کار تو امنیت نرمافزار خیلی مهمه، چون هکرا دنبال اینن به سورس کدها دسترسی پیدا کنن. مثلاً تو اپلیکیشنهای بانکی یا بازیهای آنلاین، مبهمسازی باعث میشه کار هکرا برای پیدا کردن راه نفوذ سختتر بشه.
⬅️ حالا چطور این کارو میکنن؟ روشهای زیادی هست! مثلاً میتونی اسم متغیرها و تابعها رو به یه چیز بیمعنی مثل "x12z" تغییر بدی، یا منطق کد رو با اضافه کردن دستورات بیربط پیچیدهتر کنی.
⬅️ یه روش دیگه هم اینه که کد رو به یه شکل رمزنگاریشده تبدیل کنی که فقط موقع اجرا معلوم بشه چی به چیه.
🔻ولی خب، مبهمسازی یه شمشیر دو لبهست! اگه بیش از حد پیچیده کنی، ممکنه خودت هم موقع دیباگ کردن به دردسر بیفتی یا عملکرد برنامهت افت کنه.
✅ من در مورد این مسئله هم یک سایت رو پیاده سازی کردم که خیلی راحت کدهای جاوااسکریپتی رو براتون مبهم سازی میکنه ، در ادامه هم اونو در اختیارتون میذارم❤️
#security
#tutorial
🔺 امروز میخوام یه موضوع مهم تو دنیای امنیت رایانه باهاتون به اشتراک بذارم: مبهمسازی کد یا همون Code Obfuscation.
حالا این چیه؟ مبهمسازی کد مثل اینه که کد برنامهت رو یه جوری قاطیپاطی کنی که برای هکرا یا آدمای کنجکاو مثل یه پازل پیچیده بشه. هدفش اینه که خوندن و مهندسی معکوس کدت سختتر بشه، ولی برنامهت همچنان درست کار کنه.
🔸این کار تو امنیت نرمافزار خیلی مهمه، چون هکرا دنبال اینن به سورس کدها دسترسی پیدا کنن. مثلاً تو اپلیکیشنهای بانکی یا بازیهای آنلاین، مبهمسازی باعث میشه کار هکرا برای پیدا کردن راه نفوذ سختتر بشه.
⬅️ حالا چطور این کارو میکنن؟ روشهای زیادی هست! مثلاً میتونی اسم متغیرها و تابعها رو به یه چیز بیمعنی مثل "x12z" تغییر بدی، یا منطق کد رو با اضافه کردن دستورات بیربط پیچیدهتر کنی.
⬅️ یه روش دیگه هم اینه که کد رو به یه شکل رمزنگاریشده تبدیل کنی که فقط موقع اجرا معلوم بشه چی به چیه.
🔻ولی خب، مبهمسازی یه شمشیر دو لبهست! اگه بیش از حد پیچیده کنی، ممکنه خودت هم موقع دیباگ کردن به دردسر بیفتی یا عملکرد برنامهت افت کنه.
✅ من در مورد این مسئله هم یک سایت رو پیاده سازی کردم که خیلی راحت کدهای جاوااسکریپتی رو براتون مبهم سازی میکنه ، در ادامه هم اونو در اختیارتون میذارم❤️
#security
#tutorial
❤1👍1👏1
این هم از سایت مبهم ساز که درست کردم ، منتها چون مبهم سازی بیشتر در کدهای جاوا اسکریپتی صورت میگیره ، این پروژه هم تمرکزش روی کدهای جاوااسکریپت هستش ، خیلی راحت میتونید باهاش کار کنید :
https://js-obfusecator.pages.dev/
https://js-obfusecator.pages.dev/
❤2👏1
ربات @castmanbot هم آنلاینه ، به سرعت نور براتون لینک دانلود پادکست های castbox رو اوکی میکنه 🚀