ORM جنگو چیست؟ + ویژگی های Django ORM
فهرست مطالب
ORM جنگو از جمله چارچوبهای جنگو به حساب میآید که این امکان را برای توسعه دهندگان فراهم میآورد تا بتوانند با استفاده از APIهای سطح بالا شیء گرا با پایگاه داده تعامل داشته باشند. تاریخچهٔ مسیر ارائه رشد و پیشرفت ORM جنگو به شرح زیر است.
مسیر آغاز توسعه جنگو به سال 2003 برمیگردد. جنگو در ابتدا به عنوان ابزاری برای مدیریت محتوای وب سایت به حساب میآمد. در این مسیر توسعه دهندگان همواره به دنبال راهکارهایی بودند تا بتوانند به آسانی با پایگاه داده در تعامل باشند. جنگو در سال 2005 به عنوان یک پروژه منبع باز منتشر شد. یک از ویژگیهای مهم و کلیدی آن داشتن ORM بود که این امکان را برای کاربران فراهم میآورد تا بتوانند مدلهای داده را به شکل کلاسهای پایتون تعریف و به وسیله آن به آسانی با پایگاه داده در تعامل باشند.
ORM جنگو این امکان را برای توسعهدهندگان فراهم میآورد تا بدون نیاز به نوشتنSQL ، عملیات CRUD (ایجاد، خواندن، بهروزرسانی، حذف) را انجام دهند. با گذشت زمان مسیر توسعه و بهبود طی شد. یکی از این توسعهها و بهروزرسانیها این امکان را برای توسعه دهندگان فراهم میآورد تا تغییرات در مدلهای دادهای خود را به طور خودکار در پایگاه داده اعمال کنند.
ORM چیست؟
ORM مخفف عبارت (Object-Relational Mapper) میباشد و یک تکنولوژی است که این امکان را برای برنامه نویسان فراهم میآورد تا بتوانند با پایگاه دادهها به روش شیء گرا کار نمایند. در این تکنولوژی دادهها به اشیا در زبان برنامه نویسی تبدیل میشوند و برعکس. این امر باعث میشود تا نحوه تعامل با پایگاه داده آسانتر شده و در کنار آن نیاز به نوشتن کدهای SQL کاهش یابد.
مزایای ORM
بهرهگیری از این تکنولوژی مزایای زیادی را برای افراد به همراه میآورد. برخی از این مزایا به شرح زیر هستند.
- سازگاری با پایگاه دادههای مختلف: ORM این امکان را برای افراد فراهم میآورد تا بتوانند به صورت همزمان از چندین پایگاه داده استفاده نمایند و تغییر در پایگاه داده نیازی به تغییرات عمده در کد نویسی نداشته باشد.
- بهبود بهرهوری: ازآنجا که ORM نیاز به نوشتن کدهای SQL را تا حد زیادی کاهش میدهد توسعه دهندگان میتوانند با سرعت بالاتر و در عین حال خطای کمتری به برنامه نویسی بپردازند.
- نگهداری آسان: ازآنجا که با استفاده از تکنولوژی ORM کدها شیء گرا هستند به تبع خوانایی و نگهداری از آنها آسانتر از کدهای SQL است.
- ایمنی بالا: استفاده از ORM از بسیاری از حملات SQL Injection جلوگیری میکند.
- و…
آشنایی با Django ORM
یکی از ویژگیهای اصلی و بسیار مهم این فریمورک است که به توسعهدهندگان اجازه میدهد بهصورت شیءگرا با پایگاه دادههای رابطهای کار کنند. این روش به جای نوشتن مستقیم دستورات SQL، از کلاسها و اشیا پایتون برای تعامل با پایگاه داده استفاده میکند.
در اینجا به توضیح درباره چند مفهوم کلیدی برای درک هنگام کار با ORM جنگو میپردازیم.
- مدلها که شامل کلاسهای پایتون هستند که جدولهای پایگاه داده را نشان میدهند.
- فیلدها که به تعریف نوع دادهها میپردازند فیلدها انواع مختلفی دارند از جمله فیلدهایی که جنگو ارائه میدهد میتوان به IntegerField، CharField، DateField و غیره اشاره کرد.
- کوئری ستها که در راستای جستجو از پایگاه داده برای دادهها استفاده میشوند.
- مدیران که نحوه بازیابی دادهها را از یک مدل تعریف میکنند. هر مدل دارای یک مدیر پیشفرض است، اما میتوانید مدیران سفارشی را برای فیلتر کردن یا اصلاح مجموعههای کوئری تعریف کنید.
- فراهم کردن انواع مختلف روابط بین مدلها که به شما اجازه میدهد تا نحوه ارتباط مدلها با یکدیگر را تعریف کنید.
- Migrations که فایلهایی هستند که تغییرات طرحواره پایگاه داده را توصیف و میتوانند آن تغییرات را در پایگاه داده اعمال کنند.
ویژگیهای ORM جنگو
از جمله بخشهای مهم و کلیدی این فریمورک به حساب میآید که به شما اجازه میدهد تا با پایگاه دادههای دیگر تعامل داشته باشید. از جمله ویژگیهای کلیدی ORM جنگو میتوان به موارد زیر اشاره کرد.
- امنیت بالا: شما با بهره گیری از ORM از بسیاری از دغدغهها و مشکلات امنیتی در امان خواهید بود چرا که تمامی دادهها با استفاده از این تکنولوژی به شکلی ایمن به پایگاه داده ارسال میشوند.
- عملیات CRUD: پشتیبانی از مواردی مثل ایجاد (Create)، خواندن (Read)، بهروزرسانی (Update) و حذف (Delete) میپردازد. این امر میتواند به آسانی و با استفاده از متدهای مناسب صورت پذیرد.
- کار با کوئریها: فراهم آوردن امکان ساخت و اجرای کوئریها به شکل شیءگرا و با بهره گیری از APIهای قدرتمند. این امر باعث میشود تا کدها خواناتر و نگهداری از آنها آسانتر گردد.
- پشتیبانی از انواع روابط بین مدلها: روابط به چندین دسته تقسیم میشوند که جنگو ORM از انواع آنها پشتیبانی میکند. دسته بندی روابط به شرح زیر است.
- روابط یک به چند: این امکان را فراهم میآورد تا یک شیء با چندین شیء دیگر در ارتباط باشد.
- چند به چند: از این رابطه در راستای تعریف روابط پیچیده میان جداول کاربرد دارد.
- یک به یک: رابطه یک به یک میان دو شیء را نشان میدهد.
این ویژگیها باعث میشوند که جنگو ORM ابزاری قدرتمند و کارا برای توسعه برنامههای مبتنی بر پایگاه داده باشد و به توسعهدهندگان کمک کند تا به صورت مؤثرتر و با خطای کمتر کدهای خود را بنویسند و مدیریت کنند.
راه اندازی Django ORM
در راستای راه اندازی Django ORM شما بایستی مسیر زیر را طی نمایید.
- در نخستین مرحله بایستی جنگو را نصب نمایید. شما میتوانید جنگو را با استفاده از pip نصب کنید.
- بعد از نصب جنگو با اجرای دستور django-admin startproject name project قادر خواهید بود تا یک پروژه جدید ایجاد و نام پروژه خود را به جای name project قرار دهید.
- در راستای ایجاد یک برنامه جنگو شما بایستی وارد دایرکتوری اصلی پروژه خود شویدو دستور python manager.py startapp name app را اجرا نمایید. (نام برنامه را میتوانید با name app عوض کنید.) نکته: پروژه جنگو می تواند شامل چندین برنامه باشد که هر کدام هدف خاصی را دنبال می کنند.
- ازآنجا که مدلها ساختار جداول پایگاه داده شما را تعریف میکنند بایستی مدلهای خود را تعریف کنید.
- بعد از تعریف مدلها، بایستی جدولهای پایگاه داده را ایجاد کنید. شما با اجرای دستور python manager.py makemigrations قادر خواهید بود تا فایلهای مهاجرت را بر اساس تغییراتی که در مدلهای خود ایجاد کردهاید ایجاد نمایید.
- پس از راه اندازی پایگاه داده شما، میتوانید از ORM جنگو برای انجام عملیات پایگاه داده استفاده کنید.
و در آخر
ORM جنگو عبارت است از یک تکنولوژی و ابزار قدرتمند که از آن در راستای تعامل با دیتابیسها در فریمورک جنگو استفاده میشود. شما به عنوان یک توسعه دهنده با استفاده از ORM قادر خواهید بود تا بدون نیاز به نوشتن کدهای SQL دادههای خود را در دیتابیس مدیریت نمایید. Django ORM به پشتیبانی از طیف گستردهای از backendهای پایگاه داده، از جمله MySQL، PostgreSQL، SQLite و Oracle پشتیبانی میکند و با تغییر نیازمندیهای پروژه، جابهجایی بین پایگاههای داده مختلف را آسان میکند. استفاده از این تکنولوژی به توسعهدهندگان اجازه میدهد کدهای تمیزتر و قابل نگهداری تری بنویسند که آزمایش و اشکالزدایی آسانتر است.
سؤالات متداول
دلایل استفاده از ORM در جنگو چیست؟
شما با استفاده از ORM در جنگو قادر خواهید بود تا تعامل با پایگاه داده را سهولت بخشید و با استفاده از دادهها به جای نوشتن کوئریهای SQL سطح خوانایی و همینطور تغییر کدها را بهبود بخشید.
آیا میتوان کوئریهای سفارشی SQL اجرا کرد؟
بله، با استفاده از متد `raw()` میتوانید کوئری را مستقیماً اجرا کرده و نتیجه را به صورت شیء پایتونی دریافت کنید.
به این مقاله امتیاز دهید!
میانگین امتیاز 0 / 5. تعداد رأی ها : 0
هنوز هیچ رأیی داده نشده. اولین نفر باشید!
اولین دیدگاه را اضافه کنید.