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 # در ویندوز
0 دیدگاه