آمادهسازی VSCode برای Django
مراحل آمادهسازی vscode برای کار با فریمورک Djagno
پوشهای برای پروژه خود بسازید:
mkdir myproject
vscode را اجرا کنید و از منوی File بر روی زیرمنوی Add folder to workspace بزنید. پوشه پروژهmyproject را به vscode اضافه کنید.
برای ذخیره workspace جاری از منوی File بر روی Save workspace as... بزنید.
در صورتی که از ورژن کنترل استفاده میکنید، Git را در دایرکتوری جاری init کنید
git init
یک فایل .gitignore مخصوص پایتون اضافه کنید. یک نمونه گیتایگنور برای پایتون را میتوانید در این مسیر بیابید.
برای پروژهی جاری یک Virtualenv بسازید:
python -m venv venv
برای فعالسازی virtualenv در شل میتوان از دستور
source venv/bin/activate
استفاده کرد.
حالا نوبت آن است که virtualenv ساخته شده را به vscode معرفی کنیم. در vscode کلیدهای ترکیبی Ctrl+Shift+p را بفشارید و select interpreter را تایپ کنید. از مسیر myproject/venv/bin/python میتوانید پایتون را به vscode معرفی کنید.
در مسیر myproject اگر پوشه .vscode وجود ندارد، آن را بسازید. فایلی به نام settings.json در این پوشه ایجاد کنید. در این فایل میتوانیم تنظیمات vscode برای workspace جاری را قرار دهیم. بعضی از مقادیر از این قرارند:
{
"telemetry.telemetryLevel": "off",
"python.analysis.autoImportCompletions": true,
"autoDocstring.docstringFormat": "sphinx",
"python.linting.flake8Enabled": true,
"python.linting.enabled": true,
"editor.formatOnSave": true,
"python.formatting.provider": "black",
}
اولین مورد مربوط به خاموش کردن telemetry برای vscode است تا اطلاعاتی از فعالیتهای ما برای توسعهدهندگان فرستاده نشود. دومین مورد مربوط به قابلیت autoImport برای vscode است که تا زمان نگارش این متن کارایی خوبی نداشته و بهتر است خاموش شود. سومین مورد مربوط به تعیین نوع docstring برای توابع و کلاسهاست. این مورد مربوط به یک افزونه vscode است. مورد بعدی برای فعال نمودن flake8 به عنوان Linter استفاده میشود. مورد بعدی برای فعال نمودن قابلیت linting برای vscode است. مورد بعدی برای فرمتبندی کد در هنگام ذخیره آن استفاده میشود یعنی هربار که کد را ذخیره میکنیم بلافاصله کد به صورت خودکار با یک Code Formatter مانند Black فرمتبندی میشود. مورد آخر Code Formatter را مشخص میکند که معمولا در پروژههایی جنگویی توصیه به استفاده از Black به عنوان Code Formatter است.
برای مدیریت وابستگیها از poetry استفاده کنید. با دستور
poetry init
poetry را برای پروژه جاری تنظیم کنید. به سوالاتی که poetry دربارهی پروژه میپرسد جواب دهید.
اطلاعات بیشتر راجعبه poetry را میتوانید در وبسایت ابزار بیابید.
در صورتی که virtualenv فعال نیست آن را فعال کنید.
حالا با دستور
poetry env info
از فعال بودن virtualenv اطمینال حاصل کنید.
لینتر Flake8 و فرمتر Black را نصب کنید:
poetry add black flake8 --dev
همانطور که میبینید این پکیجها را تنها برای حالت development نصب کردیم.
در مرحله بعد باید Django و DRF را نصب کنیم. «در صورتی که تمایل به ایجاد API دارید DRF را نصب کنید»
poetry add django djangorestframework
به دلیل عمل کردن poetry و pip روی یک virtualenv میتوانیم فایل requirements.txt را به سادگی ایجاد کنیم
pip freeze > requirements.txt
یک پروژه جنگو ایجاد کنید
django-admin startproject config .
بر روی فایل manage.py کلیک کنید و آنگاه بر روی زبانهی Run and Debug بزنید و در نهایت launch را کلیک کنید. از لیست فریمورکها Django را انتخاب کنید. با طی این مراحل فایل با نام launch.json در مسیر myproject/.vscode/ ساخته میشود. حالا با F5 میتوانید جنگو را اجرا کنید. در واقع F5 همان کار ./manage.py runserver را انجام میدهد.
ساختار فایلها:
myproject/
.vscode/
settings.json
launch.json
backend/
config/
__init__.py
asgi.py
settings.py
urls.py
wsgi.py
venv/
.gitignore
manage.py
poetry.lock
pyproject.toml
requirements.txt
frontend/
.gitignore
CONTRIBUTING.md
LICENSE.txt
myproject.code-workspace
README.md
VSCode Django Checklist:
- [ ] add folder to workspace
- [ ] save workspace
- [ ] git init
- [ ] add gitignore to backend
- [ ] add venv
- [ ] activate venv
- [ ] select python for vscode
- [ ] add .vscode/settings.json
- [ ] poetry init
- [ ] install black & flake8 for development
- [ ] install dj & drf
- [ ] generate requirements.txt
- [ ] django startproject
- [ ] add .vscode/launch.json for django
- [ ] add .gitignore to project level folder
- [ ] add PROJECT.code-workspace and .vscode/* to .gitignore
- [ ] add LICENSE & CONTRIBUTING.md & README.md and so on so forth
یک نمونه پروژه ساخته شده را میتوانید در مسیر https://github.com/reganto/mandos بیابید.
افزونههایی مورد نیاز از این قرارند:
-
autoDocstring
-
Pylance
-
Python
سایر افزونههای جالب:
-
Docker
-
Lorem Ipsum
-
Material Icon Theme
-
PostgreSQL