فهرست مطالب
پنل ادمین Django، یکی از قابلیت های مفید و پراستفاده جنگو است و همچنین ویژگی اپلیکیشن ها در جنگو باعث مدیریت بهتر کدهای پیچیده و عظیم خواهد شد. فرض کنید اگر یک پروژه جنگو دارای بخش های مختلفی نظیر بخش کاربران، احراز هویت، وبلاگ، فروشگاه یا پرداخت باشد چگونه باید این بخش ها را از همدیگر جدا کرد؟ پاسخ این سوال، استفاده از اپلیکیشن های Django است.
در سومین ویدیو دوره آموزشی توسعه سریع وب با Django 2، به سراغ اپلیکیشن های جنگو میرویم و نیز دستی به پنل ادمین Django میکشیم.
دوره آموزشی توسعه سریع وب با Django 2 به صورت رایگان و هفتگی منتشر خواهد شد و عام المنفعه خواهد بود. در ادامه به توضیحاتی میپردازیم تا درک بهتری از Application ها در جنگو پیدا کنید و سپس با پنل ادمین Django آشنا خواهیم شد.
تفاوت پروژه و اپلیکیشن در Django چیست؟
در مستندات پروژه Django، پروژه اصطلاحا به یک Web Application گفته میشود که با زبان پایتون و جنگو ساخته شده است. همانند قسمت دوم بلاگ پای که یک پروژه Django ساختیم.
هنگامی که یک پروژه Django میسازیم با ساختاری مشابه زیر روبه رو هستیم.
زمانی که یک پروژه Django را میسازیم، پوشه ای همنام با اسم پروژه به اسم blogpy تشکیل خواهد شد که شامل فایل هایی نظیر settings.py، urls.py و … خواهد بود. در این فایل ها تنها تنظیمات اصلی و مهم برنامه Django قرار خواهد گرفت. برای مثال اگر وارد فایل urls.py شویم، آدرس پنل ادمین Django که به صورت پیشفرض ساخته میشود را خواهیم دید.
حال به سراغ مفهوم تری به نام Application ها در جنگو میرویم. پروژه های Django توسط سازمان ها و شرکت های بزرگی استفاده میشود که ممکن است انتظارات گوناگونی از پروژه داشته باشند. برای مثال بخش وبلاگ برای درج اخبار شرکت، بخش صفحات اصلی و پیشنهادات ویژه، بخش فروشگاه و سبد خرید و پرداخت های آنلاین و یا هر نوع ویژگی ای که بخواهید در پروژه خود پیاده سازی کنید.
زمانی که پروژه های تجاری و بزرگ را با جنگو توسعه میدهید، حجم کدها بعد از یک زمان بسیار زیاد خواهد شد. به همین دلیل با استفاده از قابلیت اپلیکیشن ها در جنگو، بخش های مختلف پروژه را از یکدیگر جدا میکنیم. برای مثال برای وبلاگ یک اپلیکیشن blog خواهیم ساخت. برای پیشنهادات ویژه یک اپلیکیشن offer خواهیم ساخت و برای فروشگاه یک اپلیکیشن store و … به همین ترتیب بخش های مختلف برنامه را از یکدیگر جدا میکنیم تا کدها شکسته شوند.
در ویدیو طریقه ساخت اپلیکیشن ها را یاد خواهیم گرفت، هنگامی که یک اپلیکیشن جنگو میسازید ساختاری مشابه عکس زیر خواهید داشت. البته در قسمت های آینده طریقه اضافه کردن مدل های اپلیکیشن جنگو به پنل ادمین Django را خواهیم آموخت.
البته باید به این نکته دقت داشته باشید هنگامی که یک اپلیکیشن جنگو میسازید، حتما باید آن را در فایل settings.py و قسمت INSTALLED_APPS وارد کنید.
پنل ادمین Django، قدرتمند و ساده
هنگامی که یک پروژه Django را اجرا میکنیم، پنل ادمین Django به صورت پیشفرض در آدرس http://127.0.0.1:8000/admin/ اجرا خواهد شد. (دقت کنید در انتهای آدرس باید حتما علامت / را قرار دهید تا بتوانید وارد پنل ادمین Django شوید.
پس از ساخت super user و وارد کردن نام کاربردی و کلمه عبور، وارد پنل ادمین پیشفرض جنگو خواهیم شد. همانطور که در ویدیو مشاهده کردید، از طریق پنل ادمین Django میتوانید به راحتی کاربرهای وب اپلیکیشن را ویرایش کنید یا یک کاربر جدید بسازید و یا حتی یک کاربر را حذف کنید.
همانطور که در تصویر مشاهده میکنید، اپلیکیشن Users یکی از اپلیکیشن های پیشفرض جنگو است که به صورت خودکار هنگام migration ساخته میشود و میتوانید از آن استفاده کنید. همانطور که میبینید جنگو نیز به صورت ماژولار نوشته شده است و توسط اپلیکیشن های Built-In جنگو میتوانید امکانات اولیه توسعه پروژه را به راحتی در اختیار داشته باشید.
همچنین اگر مایل به مطالعه بیشتر در رابطه با پنل ادمین جنگو هستید، میتوانید به مستندات رسمی پنل ادمین Django مراجعه کنید.
در قسمت های آینده بلاگ پای، به سراغ ساخت دیتابیس Postgresql توسط داکر و اتصال آن به پروژه میرویم تا بتوانیم اپلیکیشن وبلاگ را توسعه دهیم.
سلام شبتون بخیر
شما توی این ويدئو فرمودید venv رو انتقال بدیم توی پوشه blogpy ولی وقتی اینکار رو می کنیم موقع ران پروژه ارور میده
File “manage.py”, line 16
) from exc
^
SyntaxError: invalid syntax
مشکل از کجاست؟
ولی وقتی برمیگرپونیم به پوشه قبلترش ران که می کنیم اجرا میشه
سلام و درود
فعال شدن virtualenv وابستگی به محل فایلهای venv نداره. در واقع نباید با عوض کردن مکان پوشه ی venv تغییری در نحوه اجرای پروژه به وجود بیاد. این خطا برای این هست که با پایتون ۲.۷ میخواد اجرا کنه و همچین چیزی امکان نداره. از طریق terminal دارید این کار رو انجام میدید یا پای چرم؟ لطفا یک عکس از مشکل آپلود کنید.
موفق باشید
با سلام و احترام
با python3 هم اجرا می کنم یه ارور دیگه میده
http://s11.picofile.com/file/8393943634/Screen_Shot_2020_04_13_at_6_36_19_PM.png
سلام و عرض ادب دوست عزیز
این مشکل معمولا به این خاطر هست که در محیط venv فریمورک django نصب نشده است. اگر django رو نصب کردید، دستور pip freeze رو بزنید باید نسخه django نصب شده رو به شما نشون بده. آیا در خروجی دستور pip freeze فریمورک django را مشاهده میکنید؟