درک قوی از نقش ها و عملکرد پروژه ها و برنامه ها در چارچوب جنگو ایجاد کنید.
در جنگو، می توانید از دو جزء اصلی برای ایجاد یک برنامه وب استفاده کنید. برنامه ها و پروژه ها توسعه دهندگان گاهی اوقات از این اصطلاحات به جای یکدیگر استفاده می کنند، اگرچه آنها معانی و عملکردهای متمایزی در چارچوب وب جنگو دارند.
آشنایی با پروژه های جنگو
در جنگو، یک پروژه یک ظرف سطح بالا برای برنامه وب شما است. یک پروژه شامل تنظیمات برنامه وب شما و یک یا چند برنامه است که هر کدام مجموعه خاصی از عملکردها یا ویژگی ها را برای برنامه وب شما ارائه می کنند. همچنین شامل هر مؤلفه ای است که بین برنامه های مختلف آن به اشتراک گذاشته شده است. در پروژه جنگو، می توانید ابزارها و ابزارهایی را بیابید که مدیریت برنامه وب شما را آسان می کند، مانند ابزار خط فرمان جنگو و سرور توسعه جنگو.
اجزای یک پروژه جنگو
یک پروژه جنگو معمولاً شامل برنامه های مختلف و تنظیمات برنامه وب شما است. هر زمان که پروژه جدیدی ایجاد می کنید، جنگو به طور خودکار فایل های حاوی این تنظیمات را تولید می کند. اجزای موجود در پروژه جنگو عبارتند از:
- تنظیمات: ماژول تنظیمات شامل پیکربندی های مورد نیاز برای پروژه شما و برنامه های جداگانه در پروژه شما است. این ماژول عمدتاً شامل گزینههای پیکربندی مانند اتصال پایگاه داده، میانافزار، برنامه نصبشده، میزبانهای مجاز و سایر پیکربندیهای مورد نیاز برای کارکرد برنامه وب شما است.
- URL ها: ماژول URL ها یک الگوی URL را برای برنامه شما تعریف می کند. هر الگوی URL در پروژه شما می تواند به یک الگوی URL دیگر در برنامه شما یا مستقیماً به یک تابع مشاهده که درخواست URL خاص را رسیدگی می کند، نگاشت کند. چه الگوی URL به یک تابع view یا یک الگوی URL دیگر در برنامه شما نگاشت شود، هدف نهایی این است که آن را به نمایی که به طور موثر درخواست را رسیدگی می کند، نگاشت کنید.
- WSGI: ماژول WSGI (Web Server Gateway Interface) استاندارد پایتون برای وب سرورها و برنامه ها است. ماژول WSGI این امکان را برای جنگو فراهم می کند تا بر روی سرورهای مختلف اجرا شود.
- ASGI: ماژول ASGI (Insynchronous Server Gateway Interface) درخواست های ناهمزمان مانند اتصالات WebSockets را مدیریت می کند. ASGI استانداردی برای وب سرورهای ناهمزمان برای برقراری ارتباط با برنامه های کاربردی وب پایتون است.
- سایر مؤلفه ها: گاهی اوقات، بسته به نیاز برنامه، از شما خواسته می شود که اجزای خود را به پروژه جنگو خود اضافه کنید. این اجزاء شامل فایل های ثابت، قالب ها، فایل های رسانه ای و دستورات مدیریت سفارشی می باشد.
چگونه یک پروژه جنگو ایجاد کنیم
برای ایجاد یک پروژه جنگو، باید از ابزار خط فرمان django-admin استفاده کنید. با دنبال کردن مراحل زیر می توانید پروژه جنگو خود را ایجاد کنید:
- در رابط خط فرمان خود، به دایرکتوری که میخواهید پروژه جنگو خود را ایجاد کنید بروید.
- جنگو را با pip package manager.pip install django نصب کنید
- دستور زیر را تایپ کنید و آن را اجرا کنید:django-admin startproject
pip install django
django-admin startproject <your_project_name>
دستور بالا یک دایرکتوری مانند زیر ایجاد می کند:
شما متوجه اضافه شدن نام دایرکتوری پروژه خود خواهید شد، به عنوان مثال، نام پروژه شما دو بار ظاهر می شود. اگر میخواهید از شر آن خلاص شوید، میتوانید زمانی که دستور startproject خود را اجرا میکنید، یک دوره اضافه کنید:
django-admin startproject <your_project_name> .
اکنون ساختار پروژه شما به شکل زیر خواهد بود:
با انجام مراحل بالا، باید یک پروژه جنگو را با موفقیت ایجاد کرده باشید. فایل manager.py ایجاد شده در پروژه شما برای تعامل با پروژه جنگو شما مهم است.
آشنایی با اپلیکیشن جنگو
هدف یک برنامه این است که پروژه جنگو شما را با عملکرد خاصی ارائه دهد. یک برنامه به شما کمک می کند تا با تقسیم کردن عملکردهای پروژه خود به اجزای کوچکتر، پایگاه کد خود را سازماندهی کنید.
به عنوان مثال، در یک پروژه وبلاگ، یک برنامه اختصاص داده شده به احراز هویت و مجوز و دیگری اختصاص داده شده به پست های وبلاگ خواهید داشت. شما می توانید چندین برنامه را بر اساس نیازهای خاص پروژه خود ایجاد کنید.
اجزای برنامه جنگو
یک برنامه جنگو از ماژول های مربوط به پروژه، یعنی به یک ویژگی خاص وب سایت شما تشکیل شده است. مانند یک پروژه، جنگو به طور خودکار فایل های مفیدی را هنگام ایجاد یک برنامه تولید می کند. فایل های تولید شده توسط جنگو شامل موارد زیر است:
- views.py: این فایل حاوی تمام منطق لازم برای دریافت درخواست ها و ارسال پاسخ است. همچنین تعیین می کند که کدام قالب HTML بر اساس اقدامات کاربر در وب سایت شما ارائه شود.
- models.py: این ماژول ساختار داده برنامه شما را ایجاد می کند و تعیین می کند که پایگاه داده چگونه آن را ذخیره کند. برای تعریف دادهها از ORM جنگو (نقشهبرداری شی-رابطهای) استفاده میکند. مؤلفه مدل ها روابط مختلف پایگاه داده را در جنگو تعریف می کند.
- admin.py: ماژول مدیریت رابط مدیریت برنامه جنگو شما را تعریف می کند. شما باید مدل های خود را در داخل فایل مدیریت ثبت کنید. اگر به عملکردهای مدیریت اضافی فراتر از موارد ارائه شده توسط جنگو نیاز دارید، می توانید نماهای سفارشی را برای رابط مدیریت خود در این ماژول تعریف کنید.
- urls.py: این فایل الگوهای URL یا مسیرهای منحصر به فرد یک برنامه جنگو خاص را تعریف می کند. گاهی اوقات، جنگو به طور خودکار این فایل را تولید نمی کند. اگر این اتفاق افتاد، می توانید آن را به صورت دستی در فهرست برنامه خود ایجاد کنید.
جنگو برخی اجزای دیگر مانند apps.py و tests.py را تولید می کند. این فایلها تنظیمات برنامه شما را تعریف میکنند و به ترتیب به شما امکان میدهند تستهای واحد بنویسید.
نحوه ایجاد اپلیکیشن جنگو
قبل از ایجاد یک برنامه، باید یک پروژه ایجاد کرده باشید. پس از ایجاد پروژه خود، به دایرکتوری حاوی فایل manager.py بروید و دستور زیر را در ترمینال خود اجرا کنید:
python manage.py startproject <app_name>
دستور بالا یک ساختار پوشه مانند این را در همان سطح دایرکتوری پروژه شما ایجاد می کند:
تفاوت بین یک برنامه و یک پروژه در جنگو
تفاوت های مشخصی بین یک پروژه و یک برنامه در جنگو وجود دارد. برخی از آنها به شرح زیر است.
قابلیت استفاده مجدد کد
در جنگو، یک برنامه یک جزء قابل استفاده مجدد از برنامه وب شما است. این بدان معناست که اگر برنامهای دارید که احراز هویت کاربر را برای یک پروژه انجام میدهد، میتوانید از همان برنامه در پروژه دیگری با تغییرات کم یا بدون تغییر استفاده مجدد کنید. از طرف دیگر، یک پروژه قابل استفاده مجدد نیست. هنگامی که یک پروژه برای یک برنامه وب خاص ایجاد می کنید، نمی توانید از آن برای برنامه دیگری استفاده کنید.
محدوده عملیات
یک پروژه در سطح بالاتری نسبت به یک برنامه عمل می کند، زیرا مسئولیت پیکربندی و مدیریت کلی وب سایت شما را بر عهده دارد. از طرف دیگر، یک برنامه تنها مسئول یک ویژگی یا عملکرد خاص وب سایت شما است.
ساختار پوشه
واضح ترین تفاوت بین یک برنامه و یک پروژه، ساختار پوشه آنها است. یک پروژه معمولاً شامل تنظیمات و سایر فایل های پیکربندی است که مسئول رفاه وب سایت شما هستند.
یک برنامه از معماری MVT جنگو پیروی می کند. این فقط حاوی فایلها و پیکربندیهایی است که مسئول سلامت یک ویژگی خاص وبسایت شما هستند.
پروژه و برنامه شما با هم کار می کنند تا یک برنامه وب خوب ایجاد کنند
اگرچه پروژه و برنامه شما منحصر به فرد خود را دارند، اما در نهایت برای ارائه یک تجربه یکپارچه در هنگام ساخت برنامه مورد استفاده قرار می گیرند. شما باید بتوانید هر دو مؤلفه پروژه و برنامه را برای ساختن و سفارشی کردن برنامه وب خود ترکیب کنید. با اجرای برنامه و پروژه خود، می توانید ساخت وب سایت خود را با جنگو شروع کنید.