سوالات مصاحبه فنی Django برای استخدام برنامه‌‌‌نویسان

Django Interview Questions

12 بهمن 1400
django-interview-questions

جنگو نام خود را از «جنگو راینهاردت» گرفته است. یک چارچوب وب رایگان و منبع باز مبتنی بر پایتون است که از الگوی معماری Model-view-template (MVT) پیروی می کند. در حال حاضر، این چارچوب توسط بنیاد نرم‌افزار جنگو (DSF)، یک سازمان مستقل مستقر در ایالات متحده، نگهداری می‌شود.

مزایای استفاده از جنگو:

بلوغ: جنگو بیش از یک دهه است که مورد استفاده قرار گرفته است. در این بازه زمانی، ویژگی‌های زیادی به آن اضافه شده و بهبود یافته است تا به یک چارچوب قوی تبدیل شود. جدای از آن، تعداد زیادی از توسعه دهندگان وجود دارند که از جنگو استفاده می کنند.

پنل مدیریت: جنگو یک داشبورد مدیریتی ارائه می‌کند که می‌توانیم از آن برای انجام عملیات اولیه CRUD روی مدل‌ها استفاده کنیم.

پلاگین ها: به برنامه نویسان اجازه می دهد تا ویژگی های مختلف را به برنامه ها اضافه کنند و فضای کافی برای سفارشی سازی باقی بگذارند.

کتابخانه ها: با توجه به توسعه گسترده جامعه، تعداد زیادی کتابخانه برای هر کار وجود دارد.

ORM: به ما کمک می کند تا با داده ها به روشی شی گراتر کار کنیم.

1. معماری جنگو را توضیح دهید؟

جنگو از الگوی MVT پیروی می کند که بر اساس معماری Model View Controller است. این کمی با الگوی MVC متفاوت است زیرا کنترلر توسط خود چارچوب کنترل می شود.

معماری جنگو

2. ساختار دایرکتوری پروژه جنگو را توضیح دهید؟

manager.py - یک ابزار خط فرمان که به شما امکان می دهد با پروژه جنگو خود تعامل داشته باشید
init__.py__ - یک فایل خالی که به پایتون می گوید که دایرکتوری فعلی باید به عنوان یک بسته پایتون در نظر گرفته شود.
settings.py - شامل تنظیمات پروژه فعلی مانند اتصالات DB است.
urls.py - تمام URL های پروژه در اینجا موجود است.
wsgi.py - این یک نقطه ورودی برای برنامه شما است که توسط وب سرورها برای سرویس دهی به پروژه ای که ایجاد کرده اید استفاده می شود.

3. مدل های جنگو چیست؟

مدل در جنگو به کلاسی اشاره دارد که به جدول پایگاه داده یا مجموعه پایگاه داده نگاشت می شود. هر ویژگی کلاس مدل جنگو یک فیلد پایگاه داده را نشان می دهد. آنها در app/models.py تعریف شده اند

مثال:

from django.db import models
class SampleModel(models.Model):
field1 = models.CharField(max_length = 50)
field2 = models.IntegerField()
class Meta:
db_table = “sample_model”

4. کاربرد قالب ها در فریم ورک جنگو چیست؟

قالب ها بخشی جدایی ناپذیر از معماری Django هستند. آنها به طور کلی شامل HTML ،CSS و js هستند که در آنها متغیرهای پویا و اطلاعات با کمک viewها تعبیه شده است. برخی از ساختارها توسط موتور قالب شناسایی و تفسیر می شوند. اصلی ترین آنها متغیرها و برچسب ها هستند.

نحو زبان قالب جنگو شامل چهار ساختار زیر است:

Variables

Tags

Filters

Comments

5.کاربرد نماها (view) در جنگو را توضیح دهید؟

تابع view مانند یک تابع پایتون است که یک درخواست وب را می گیرد و یک پاسخ وب را برمی گرداند. این پاسخ می تواند محتویات HTML یک صفحه وب، یا تغییر مسیر، یا خطای 404، یا یک سند XML، یا یک تصویر و غیره باشد.

مثال:

from django.http import HttpResponse
def sample_function(request):
 return HttpResponse(“Welcome to Django”)

دو نوع view وجود دارد:

نماهای مبتنی بر تابع: در این، نمای خود را به عنوان یک تابع وارد می کنیم.
نماهای مبتنی بر کلاس: این یک رویکرد شی گرا است.

6.ORM در DJANGO  چیست؟

ORM (مخفف Object Relational Mapper) ما را قادر می‌سازد تا با پایگاه‌های داده به روشی بهتری تعامل داشته باشیم، مانند اینکه می‌توانیم از نوشتن کوئریهای خام خودداری کنیم، امکان بازیابی، ذخیره، حذف و انجام سایر عملیات روی پایگاه داده بدون نوشتن هیچ SQL وجود دارد. کوئری. به عنوان یک لایه انتزاعی بین مدل ها و پایگاه داده کار می کند.

7. فایل های استاتیک را تعریف کنید و کاربرد آنها را توضیح دهید؟

وب سایت ها به طور کلی نیاز به ارائه فایل های اضافی مانند تصاویر یا جاوا اسکریپت یا CSS دارند. در جنگو به این فایل‌ها «فایل‌های استاتیک» گفته می‌شود، جدای از آن، جنگو فایل‌های django.contrib.static را برای مدیریت این فایل‌های استاتیک فراهم می‌کند.

8. Django Rest Framework (DRF) چیست؟

Django Rest Framework یک چارچوب منبع باز مبتنی بر جنگو است که به شما امکان می دهد API های RESTful را به سرعت ایجاد کنید.

9. قالب جینجا (Jinja) چیست؟

Jinja Templating یک موتور قالب بسیار محبوب برای پایتون است، آخرین نسخه Jinja2 است.

10. کاربرد URLها در جنگو را شرح دهید؟

URL ها یکی از مهم ترین بخش های یک برنامه وب هستند و جنگو با کمک ماژول خود به نام URLconf (پیکربندی URL) روشی زیبا برای طراحی URL های سفارشی خود در اختیار شما قرار می دهد. عملکرد اصلی این ماژول پایتون این است که می تواند URLهای خود را در جنگو به روشی که دوست دارید طراحی کنید و سپس آنها را به تابع پایتون (تابع view) نگاشت کنید. این URL ها می توانند ثابت و پویا باشند. این نشانی‌های اینترنتی در urls.py وجود دارند، جایی که با تابع view معادل مطابقت دارند.

مثال:

from django.urls import path
from . import views
urlpatterns = [
   path('data/2020/', views.data_2020),
   path('data/<int:year>/', views.data_year)
]

11.کاربرد سیگنال ها در جنگو چیست؟

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

12. کش در جنگو را توضیح دهید؟

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

13. چگونه فایل های استاتیک را پیکربندی کنیم؟

اطمینان حاصل کنید که django.contrib.staticfiles به INSTALLED_APPS  اضافه شده است.

در فایل تنظیمات STATIC_URL  تعریف کنید.

STATIC_URL = '/static/'
{% load static %}
<img src="{% static 'my_sample/abcxy.jpg' %}" alt="ABC image">

14. چرخه حیات جنگو را توضیح دهید؟

هر زمان که درخواستی به یک صفحه وب ارسال می شود، جنگو یک شی HttpRequest ایجاد می کند که حاوی ابرداده در مورد درخواست است. پس از آن جنگو نمای خاص را بارگذاری می کند و HttpRequest را به عنوان اولین آرگومان به تابع view ارسال می کند. هر نما یک شی HttpResponse را برمی گرداند.

15. چه پایگاه های داده ای توسط جنگو پشتیبانی می شود؟

PostgreSQL و MySQL، SQLite و Oracle. جدای از اینها، جنگو همچنین از پایگاه داده هایی مانند ODBC، Microsoft SQL Server، IBM DB2، SAP SQL Anywhere و Firebird با استفاده از بسته های شخص ثالث پشتیبانی می کند.

16. کاربرد Middleware در جنگو چیست؟

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

17. اهمیت فایل settings.py چیست؟

همانطور که از نام آن پیداست، این فایل پیکربندی ها یا تنظیمات پروژه جنگو ما را ذخیره می کند، تنظیماتی مانند پیکربندی پایگاه داده، موتورهای پشتیبان، میان افزارها، برنامه های کاربردی نصب شده، تنظیمات URL اصلی، آدرس های فایل استاتیک، موتورهای قالب، تنظیمات URL اصلی، کلیدهای امنیتی، میزبان های مجاز

نویسنده شوید

دیدگاه‌های شما (2 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

Mohammad Gholampour
27 فروردین 1401
مرسی. خیلی عالی بود. خیلی خیلی ممنون

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

روکسو
12 اردیبهشت 1401
قدردان حمایت شما هستیم.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

میلاد
23 فروردین 1401
سوالات خیلی آبکی هستن. توی کدوم مصاحبه اینارو میپرسن آخه

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

روکسو
12 اردیبهشت 1401
از نظر شما سپاسگزاریم و سعی می‌کنیم این مقاله را بهبود ببخشیم.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.