آماده‌سازی VSCode برای Django

پنجشنبه 26 خرداد 1401 توسط Reganto

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