آمادهسازی 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