Django
Przegląd
Django to wysokopoziomowy framework webowy w Pythonie, który zachęca do szybkiego rozwoju i przejrzystego, pragmatycznego projektowania. Zawiera ORM, panel administracyjny, system uwierzytelniania i silnik szablonów.
Pierwsze kroki
Utwórz repozytorium z szablonu
Na pulpicie przejdź do zakładki Tools & Deployment. Kliknij przycisk "New Repository", wybierz szablon Django z listy rozwijanej, wpisz nazwę repozytorium i subdomenę, a następnie kliknij "Create Repository".
Sklonuj repozytorium
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Zainstaluj zależności
pip install -r requirements.txt
Skonfiguruj bazę i uruchom migracje
Zaktualizuj ustawienia bazy danych w settings.py (zobacz Konfigurację bazy danych poniżej), a następnie uruchom:
python manage.py migrate
python manage.py runserver
Serwer domyślnie działa pod adresem http://localhost:8000.
Wypchnij swoje zmiany
git add .
git commit -m "Initial setup"
git push origin main
Lokalny rozwój z Dockerem
Jeśli nie masz lokalnie zainstalowanego Pythona, możesz użyć Dockera, aby uruchomić aplikację Django.
Uruchamianie komend z Dockerem
# Zainstaluj zależności
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt
# Uruchom serwer deweloperski
docker run --rm -v $(pwd):/app -w /app -p 8000:8000 python:3.12 sh -c "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:8000"
Konfiguracja bazy danych
Platforma NStrim udostępnia bazę danych MySQL/MariaDB. Zaktualizuj ustawienie DATABASES w pliku settings.py.
Aktualizacja settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '<username>',
'USER': '<username>',
'PASSWORD': '<password>',
'HOST': 'db.<session-domain>',
'PORT': '3306',
}
}
student01). Sprawdź sekcję danych logowania na pulpicie, aby uzyskać dokładne wartości.Struktura projektu
├── project/
│ ├── settings.py # Konfiguracja projektu
│ ├── urls.py # Główna konfiguracja URL
│ └── wsgi.py # Punkt wejścia WSGI
├── app/
│ ├── models.py # Modele bazy danych
│ ├── views.py # Funkcje / klasy widoków
│ ├── urls.py # Wzorce URL aplikacji
│ ├── serializers.py # Serializery DRF
│ ├── admin.py # Konfiguracja panelu admina
│ └── templates/ # Szablony HTML
├── static/ # CSS, JS, obrazy
├── manage.py # CLI Django
├── requirements.txt # Zależności Python
└── Dockerfile # Konfiguracja Docker
Typowe zadania
Tworzenie modelu
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(unique=True)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
Tworzenie widoku
from django.http import JsonResponse
from .models import User
def user_list(request):
users = list(User.objects.values('id', 'name', 'email'))
return JsonResponse(users, safe=False)
Konfiguracja URL
from django.urls import path
from . import views
urlpatterns = [
path('users/', views.user_list, name='user-list'),
]
Przydatne komendy
python manage.py runserver
Uruchom serwer deweloperski
python manage.py migrate
Uruchom migracje bazy danych
python manage.py makemigrations
Utwórz nowe migracje na podstawie zmian w modelach
python manage.py createsuperuser
Utwórz konto administratora dla panelu /admin
python manage.py shell
Interaktywna powłoka Pythona z Django
Rozwiązywanie problemów
OperationalError: (2002) Can't connect to MySQL server
Przyczyna: Host bazy danych jest nieprawidłowy lub niedostępny.
Rozwiązanie: Sprawdź, czy HOST w ustawieniu DATABASES odpowiada hostowi bazy danych z twojego pulpitu.
OperationalError: (1045) Access denied for user
Przyczyna: Nieprawidłowa nazwa użytkownika lub hasło.
Rozwiązanie: Sprawdź dwukrotnie, czy USER i PASSWORD w pliku settings.py dokładnie odpowiadają danym logowania z pulpitu.
No module named 'MySQLdb'
Rozwiązanie: Zainstaluj klienta MySQL: pip install mysqlclient. Na macOS może być potrzebne także: brew install mysql-client.
DisallowedHost: Invalid HTTP_HOST header
Rozwiązanie: Dodaj domenę wdrożeniową do ALLOWED_HOSTS w pliku settings.py: ALLOWED_HOSTS = ['*']