فایل های پروژه و app

سلام . چه فرقی بین فایل های پروژه ای که میسازیم و app که داخل جانگو میسازیم هستش؟

مثلا در داخل پروژه urls داریم داخل app هم همچین چیزی داریم

سلام .

وقتی پروژه رو با دستوری مثل django-admin startproject config

میسازیم در اصل کانفیگ کل پروژه پیاده میشه .

مثلا در فایل settings.py اطلاعات دیتابیس - ادرس دامنه یا ای پی سرور - اسم اپ هایی که باید نصب بشن تا بتونیم ازشون استفاده کنیم و یا کتابخونه هایی مثل django rest framework رو قرار میدیم و غیره.

در فایل urls.py که در کنار فایل settings.py قرار گرفته فقط ادرس ورود به پنل ادمین هست .

وقتی اپمون رو با دستوری مثل python manage.py startapp polls

میسازیم این یک قسمت جدا از پروژه هست ! وقتی داخل اپمون در فایل views.py کلاس ویو ها یا فانکشن ها رو مینوسیم نیاز به ادرس دهی دارن پس ما باید خودمون فایل urls.py رو اضافه کنیم و مسیر دهی کنیم این فایل مسیر های خوده اپ هست فقط . !‌!! این فایل وقتی اپ رو میسازیم از قبل وجود نداره !!!.

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

http://127.0.0.1:8000/admin

اما اون اپی که ساختیم رو چطور مسیر دهی کنیم ؟

اول داخل settings.py اپ رو ثبت میکنیم .

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls.apps.PollsConfig',

]

بعد داخل urls.py داخل دایرکتوری پروژه مون include رو به path اضافه میکنیم.
اسم اپ من polls بود پس به صورت زیر به پروژه اضافه اش میکنم .

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls'))
]

بعد میتونم با اضافه کردن اسم اپ به اخر ای پی , برم به مسیر اپی که ساختم .

در مورد مسیر های داخل اپ هم جنگو میره داخل دایرکتوری polls فایل urls.py رو پیدا میکنه با ارسال درخواست ویو های مربوطه رو اجرا میکنه .

شاید نتونسته باشم درست توضیح بدم اما این لینک میتونه کمک خوبی باشه .

https://docs.djangoproject.com/en/2.2/intro/tutorial01/

2 Likes