API ضد گلوله جنگو برای یک پروژه TMS
مقدمه
در این آموزش، ما یک برنامه وب ساده با استفاده از Django و Django REST Framework (DRF) خواهیم ساخت. پروژه ما مجموعهای از کتابها را مدیریت میکند و به کاربران اجازه میدهد تا عملیات CRUD (ایجاد، خواندن، بهروزرسانی، حذف) را از طریق REST API انجام دهند.
پیش نیازها
- پایتون نصب شده است (نسخه 3.8 یا بالاتر توصیه می شود).
- درک اولیه پایتون و جنگو.
- pip (نصب کننده بسته پایتون).
- دانش راه اندازی محیط مجازی (به عنوان مثال، venv).
مرحله 1: تنظیم محیط
پیکربندی VM توصیه شده برای هاست شما:
- حافظه (RAM): 8 گیگابایت را به VM اختصاص دهید تا از عملکرد روان اطمینان حاصل کنید و در عین حال منابع کافی برای میزبان باقی بماند.
- پردازنده ها: 4 هسته (8 رشته) را به VM اختصاص دهید.
- فضای ذخیره سازی: 100 گیگابایت را طبق برنامه ریزی برای هارد دیسک ماشین مجازی اختصاص دهید.
- شبکه: اگر VM برای دسترسی به اینترنت از طریق هاست به یک IP منحصر به فرد در شبکه محلی یا NAT نیاز دارد، از Bridged Networking استفاده کنید.
راه اندازی VM
- دانلود تصویر ابری اوبونتو: مطمئن شوید که آن را دانلود کرده اید ubuntu-22.04-server-cloudimg-amd64.ova فایل از یک منبع قابل اعتماد (به عنوان مثال، سایت رسمی اوبونتو).
- VMware را باز کنید: راه اندازی کنید ایستگاه کاری VMware، VMware Fusion یا VMware ESXi بسته به تنظیمات شما.
- فایل OVA را وارد کنید:
- روی File > Open or Import an OVA کلیک کنید.
- فایل ubuntu-22.04-server-cloudimg-amd64.ova را انتخاب کنید.
- برای وارد کردن تصویر، دستورات را دنبال کنید.
- نام ماشین مجازی: یک نام توصیفی ارائه دهید، به عنوان مثال، TMS_VM.
- VM را پیکربندی کنید (تنظیم حافظه، تنظیم پردازنده ها، پیکربندی هارد دیسک، پیکربندی شبکه)
سرور اوبونتو 22.04 را راه اندازی و پیکربندی کنید
- VM را راه اندازی کنید
-
ورود و به روز رسانی سیستم:
ubuntu@ubuntuguest:~$ sudo apt update && sudo apt upgrade -y -
ابزارهای ضروری را نصب کنید:
ubuntu@ubuntuguest:~$ sudo apt install git python3 python3.10-venv python3-pip python3-venv git build-essential -y -
تنظیم یک کاربر:
ubuntu@ubuntuguest:~$ sudo groupadd bulletproof ubuntu@ubuntuguest:~$ sudo adduser django ubuntu@ubuntuguest:~$ sudo usermod -aG bulletproof django -
یک دایرکتوری برای پروژه خود ایجاد کنید
ubuntu@ubuntuguest:~$ mkdir /home/django/projects -
تغییر مالکیت گروه به ضد گلوله:
ubuntu@ubuntuguest:~$ sudo chown :bulletproof /home/django/projects -
مجوزها را طوری تنظیم کنید که فقط اعضای گروه بتوانند در دایرکتوری بنویسند:
ubuntu@ubuntuguest:~$ sudo chmod 775 /home/django/projects -
دایرکتوری و مجوزهای پیش فرض کاربر جدید را تنظیم کنید:
ubuntu@ubuntuguest:~$ sudo usermod -d /home/django/projects django ubuntu@ubuntuguest:~$ sudo chown django:bulletproof /home/django/projects ubuntu@ubuntuguest:~$ su - django django@ubuntuguest:~$
راه اندازی Vscode
برای تنظیم VS Code برای پروژه جنگو خود از طریق Remote-SSH، افزونه های Python و Pylance را برای پشتیبانی Python نصب کنید. Flake8 را برای linting و Black را برای قالب بندی کد اضافه کنید. افزونه جنگو را برای ویژگی های خاص پروژه نصب کنید. اطمینان حاصل کنید که Flake8 و Black نیز از طریق پیپ روی ماشین مجازی از راه دور نصب شده باشند. مفسر پایتون را برای استفاده از محیط مجازی پیکربندی کنید و از طریق تنظیمات VS Code برای یک تجربه توسعه یکپارچه، لینتینگ و قالببندی را فعال کنید.
-
Create pyproject.toml: این یک فایل اختیاری برای مدیریت ابرداده پروژه و پیکربندی ساخت است. آن را به صورت دستی ایجاد کنید یا از یک الگو استفاده کنید. مثال:
[tool.black] line-length = 100 -
نصب مشکی:
(.venv) django@ubuntuguest:~/tms$ pip install black -
ایجاد کنید
.flake8فایل: این فایل برای پیکربندی تنظیمات Flake8 (لینتر برای سبک کد پایتون) استفاده می شود. به عنوان مثال محتوای .flake8:[flake8] max-line-length = 100 extend-ignore = E203, W503 -
Flake8 را نصب کنید:
(.venv) django@ubuntuguest:~/tms$ pip install flake8
راه اندازی پایتون
-
ایجاد یک محیط مجازی:
django@ubuntuguest:~$ mkdir tms && cd tms django@ubuntuguest:~$ python3 -m venv .venv django@ubuntuguest:~$ source .venv/bin/activate # On Windows: env\Scripts\activate -
Django و DRF را نصب کنید:
(.venv) django@ubuntuguest:~/tms$ pip install django djangorestframework -
ایجاد یک پروژه جنگو:
(.venv) django@ubuntuguest:~/tms$ django-admin startproject tms . -
سرور توسعه را اجرا کنید:
(.venv) django@ubuntuguest:~/tms$ python manage.py runserver 0.0.0.0:8000
اگر با خطا مواجه شدید: django.core.exceptions.DisallowedHost: Invalid HTTP_HOST header: 'ip_address:8000'. You may need to add 'ip_address' to ALLOWED_HOSTS.. آدرس IP سرور خود را (به عنوان مثال، 10.0.0.10) به ALLOWED_HOSTS در settings.py اضافه کنید: ALLOWED_HOSTS = ['10.0.0.10', 'localhost', '127.0.0.1']
برای دیدن صفحه اصلی جنگو پیشفرض از http://ip_address:8000 دیدن کنید.
راه اندازی مخزن Git
-
ایجاد یک
README.mdfile: این فایل اطلاعات اولیه درباره پروژه شما مانند هدف، دستورالعمل های نصب و استفاده را ارائه می دهد.(.venv) django@ubuntuguest:~/tms$ touch README.mdتوضیحات پروژه خود را به فایل اضافه کنید. مثال:
# Training Management System (TMS) This is a Django-based project for managing training courses, students, and instructors. -
ایجاد کنید
requirements.txt: این فایل تمام وابستگی های پروژه شما را فهرست می کند. برای تولید request.txt بر اساس محیط مجازی:(.venv) django@ubuntuguest:~/tms$ pip freeze > requirements.txt -
ایجاد یک
LICENSEفایل -
ایجاد کنید
.gitignoreفایل -
(.venv) django@ubuntuguest:~/tms$ ls ~/.ssh -
(.venv) django@ubuntuguest:~/tms$ ssh-keygen -t ed25519 -C "your_email@example.com" -
(.venv) django@ubuntuguest:~/tms$ cat ~/.ssh/id_ed25519.pubو خروجی را کپی کنید. -
کلید SSH را به GitHub اضافه کنید. به تنظیمات > کلیدهای SSH و GPG > کلید SSH جدید بروید. کلید را بچسبانید و به آن عنوان بدهید.
-
تغییر دایرکتوری:
(.venv) django@ubuntuguest:~/tms$ cd /path/to/your/project -
مخزن Git را راه اندازی کنید:
(.venv) django@ubuntuguest:~/tms$ git init -
اضافه کردن مخزن از راه دور:
(.venv) django@ubuntuguest:~/tms$ git remote add origin git@github.com:username/repository.git -
فایل های مرحله:
(.venv) django@ubuntuguest:~/tms$ git add . -
ایجاد تعهد اولیه:
(.venv) django@ubuntuguest:~/tms$ git commit -m "Initial commit" -
فشار به مخزن از راه دور:
(.venv) django@ubuntuguest:~/tms$ git push -u origin main
عکس فوری از VM
پس از پیکربندی ماشین مجازی و تکمیل تنظیمات اولیه، برای حفظ این حالت، یک عکس فوری بگیرید:
- به VMware > Snapshot > Take Snapshot بروید.
- نام آن را چیزی مانند InitialSetup بگذارید



