مقدمه و مفهوم ORM

سلام

در این فصل نحوۀ تعیین سطح دسترسی برای کاربران معتبر به فرم ها و ویوها را به شکل اصولی کار می کنیم و بعد از آن پست های یک تاپیک را به صورت لیستی نمایش می دهیم. در انتها برخی از ویژگی های Django ORM را مرور می کنیم.

حالا سوالی که پیش میاد این است که ORM اصلا چیست؟!

ORM یا Object-Relational Mapping روشی است که برنامه نویس به جای اینکه در برنامه، مستقیم روی دیتابیس کوئری اجرا کند این کار را از طریق فریم ورک انجام می دهد. یعنی جنگو یک سری توابع دارد که به واسطۀ آن می توانیم درخواست های خودمان را به دیتابیس ارسال و جواب را دریافت کنیم.

بنابراین دیگر در برنامه خبری از کوئری های دیتابیس مثل select * from mytable نیست. البته این به معنای عدم نیاز به دانش دیتابیس در زمان توسعۀ برنامه نبوده و لازم است که به ساختار تمام کوئری ها مسلط باشیم.

فواید زیادی برای ORM وجود دارد که من می خواهم به دو مورد اشاره کنم:

1) امنیت بسیار بالا: با استفاده از ORM حملاتی مثل SQL injection عملا منتفی خواهد بود.

2) سرعت بسیار بالاتر: توابع بهینه سازی شده و برای هر منظور مشخص است که قرار است از کدام تابع استفاده شود.

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

نویسنده: تمدن

 

مطلب بعدی: ویوهای محافظت شده | Protecting Views

مطلب قبلی: تغییر پسورد

بدون دیدگاه

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جنگو
پیکربندی گواهینامۀ https

سلام حالا می خواهیم برنامۀ خودمان را با گواهینامۀ https امن کنیم. ساده ترین کار برای انجام آن Let’s Encrypt است. قبل از Let’s Encrypt هرگز تنظیمات https به این راحتی نبوده و مهمتر اینکه اینکار کاملاً رایگان است. آن ها راه حلی به نام certbot را ارائه داده اند …

جنگو
پیکربندی سرویس ایمیل

سلام یکی از بهتر سرویس دهنده های ایمیل Mailgun با قابلیت ۱۲ هزار ایمیل رایگان در ماه است. به صورت رایگان ثبت نام کنید. برای اینکار باید آن را با سرویس دهندۀ دامین خود تنظیم کنید که در این آموزش از tamadon.org استفاده شده است. حالا اولین رکورد DNS را …

جنگو
پیکربندی NGINX

سلام کار بعدی که قرار است انجام شود؛ تنظیمان Nginx به شکلی است که پاسخگویی و سرویس دهی مربوط به فایل های استاتیک را خود انجام دهد و سایر درخواست ها را به Gunicorn بفرستد. یک فایل پیکربندی با نام boards را درون /etc/nginx/sites-available/ و با محتوای زیر اضافه می …

هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.