18- ساخت اپلیکیشن قابل استفاده مجدد در Django (صفحه ادمین):

۱۰ تیر ۱۴۰۴
0 دیدگاه

 آموزش پیشرفته جنگو: ساخت اپلیکیشن قابل استفاده مجدد در Django

 

متا دیسکریپشن:

در این آموزش پیشرفته از سری آموزش‌های جنگو، یاد می‌گیریم که چطور یک اپلیکیشن Django مثل polls را به یک پکیج پایتونی قابل نصب و اشتراک‌گذاری تبدیل کنیم. ایده‌آل برای توسعه‌دهندگانی که به دنبال تولید ابزارهای قابل استفاده مجدد هستند.


 

 

چرا اپلیکیشن قابل استفاده مجدد مهم است؟

 

طراحی، پیاده‌سازی، تست و نگهداری یک وب‌اپلیکیشن زمان‌بر است. اما وقتی شما قابلیت‌هایی مثل نظرسنجی، ارسال ایمیل یا مدیریت فایل را قبلاً نوشته‌اید، چرا دوباره از صفر شروع کنید؟

در پایتون، قابلیت استفاده مجدد (Reusability) یک اصل کلیدی‌ست. جنگو نیز از این قاعده مستثنا نیست. با پکیج‌کردن اپلیکیشن‌ها، می‌توانید:

 

  • آن‌ها را در پروژه‌های جدید خودتان استفاده کنید.

  • به سادگی آن‌ها را با دیگران به اشتراک بگذارید.

  • آن‌ها را در PyPI منتشر کنید تا هزاران نفر استفاده کنند.


 

 

تفاوت Package و App در Django

  • Python Package: یک ساختار پوشه‌ای با فایل __init__.py که شامل کد پایتون است.

  • Django App: یک پکیج پایتونی که ساختار و قراردادهای مخصوص جنگو را رعایت می‌کند؛ مثل داشتن فایل‌های models.py، views.py، urls.py و…


 

 

ساختار پروژه اولیه (بعد از آموزش‌های قبلی)

				
					djangotutorial/
├── manage.py
├── mysite/
│   ├── settings.py
│   └── ...
├── polls/
│   ├── models.py
│   ├── views.py
│   ├── templates/
│   └── static/

				
			

همان‌طور که می‌بینید، اپلیکیشن polls یک ساختار مجزا دارد که به راحتی قابل انتقال به پروژه دیگر است.


 

 

🧰 پیش‌نیازها: نصب ابزارهای بسته‌بندی

 

قبل از ادامه، باید ابزارهای زیر را نصب کنیم:

				
					python -m pip install setuptools build

				
			

 

 

مراحل پکیج کردن اپلیکیشن polls

 

1. ایجاد پوشه جدید

 

خارج از پروژه Django، پوشه‌ای به نام django-polls بسازید:

				
					mkdir django-polls
mv polls django-polls/django_polls

				
			

 

2. به‌روزرسانی فایل apps.py

				
					# django_polls/apps.py

from django.apps import AppConfig

class PollsConfig(AppConfig):
    default_auto_field = "django.db.models.BigAutoField"
    name = "django_polls"
    label = "polls"

				
			

 

3. ساخت فایل README.rst

				
					============
django-polls
============

django-polls یک اپلیکیشن Django برای ایجاد نظرسنجی‌های تحت وب است.

Quick start:

1. افزودن به INSTALLED_APPS:
   django_polls

2. افزودن آدرس‌ها به urls.py:
   path("polls/", include("django_polls.urls"))

3. اجرای migrate برای ساخت دیتابیس

4. باز کردن admin برای افزودن سوال جدید

5. بازدید از /polls/ برای شرکت در نظرسنجی

				
			

 

4. ساخت فایل pyproject.toml

				
					[build-system]
requires = ["setuptools>=69.3"]
build-backend = "setuptools.build_meta"

[project]
name = "django-polls"
version = "0.1"
dependencies = ["django>=4.2"]
description = "اپلیکیشن نظرسنجی تحت وب با جنگو"
readme = "README.rst"
requires-python = ">=3.10"
authors = [
    {name = "نام شما", email = "yourname@example.com"},
]
classifiers = [
    "Framework :: Django",
    "License :: OSI Approved :: BSD License",
    "Programming Language :: Python :: 3",
]

				
			

 

5. اضافه کردن فایل‌های استاتیک و قالب

فایل MANIFEST.in بساز:

				
					recursive-include django_polls/static *
recursive-include django_polls/templates *

				
			

 

ساخت پکیج

پس از تکمیل موارد بالا، دستور زیر را اجرا کن:

				
					cd django-polls
python -m build

				
			

پوشه dist/ ایجاد شده و پکیج‌های .tar.gz و .whl در آن قرار می‌گیرند.


 

 

نصب پکیج در پروژه

اکنون اپلیکیشن polls از مسیر پروژه اصلی حذف شده و به صورت پکیج نصب می‌شود:

				
					python -m pip install --user dist/django_polls-0.1.tar.gz

				
			

 

تغییر تنظیمات پروژه:

				
					# settings.py
INSTALLED_APPS = [
    "django_polls.apps.PollsConfig",
    ...
]

# urls.py
urlpatterns = [
    path("polls/", include("django_polls.urls")),
    ...
]

				
			

 

انتشار در PyPI

اگر بخواهی اپلیکیشن را عمومی کنی:

 

  • یک حساب در https://pypi.org بساز

  • با twine پکیج را آپلود کن:

				
					python -m pip install twine
python -m twine upload dist/*

				
			

 

مزایای استفاده از محیط مجازی (venv)

 

پیشنهاد می‌شود همیشه از محیط مجازی استفاده کنی:

bash

				
					python -m venv env
source env/bin/activate  # در لینوکس یا macOS
env\Scripts\activate.bat  # در ویندوز

				
			

 

جمع‌بندی

 

در این آموزش یاد گرفتیم چگونه یک اپلیکیشن Django را به یک پکیج پایتونی مستقل تبدیل کنیم. این مهارت برای توسعه‌دهندگان جدی Django بسیار مهم است، چون باعث بازاستفاده، تست بهتر، انتشار، و رشد جامعه می‌شود.

0 دیدگاه