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.

Zanim zaczniesz
Upewnij się, że masz otwarty pulpit – będą ci potrzebne wyświetlone tam dane logowania do Git. Ten szablon zawiera Django, Gunicorn, mysqlclient do obsługi MySQL oraz Django REST Framework.

Pierwsze kroki

1

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".

2

Sklonuj repozytorium

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Zainstaluj zależności

pip install -r requirements.txt
4

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.

5

Wypchnij swoje zmiany

git add .
git commit -m "Initial setup"
git push origin main
Każde wypchnięcie do Git automatycznie wdraża twoją aplikację. Sprawdź adres Module Work URL na pulpicie, aby zobaczyć działającą stronę.

Lokalny rozwój z Dockerem

Jeśli nie masz lokalnie zainstalowanego Pythona, możesz użyć Dockera, aby uruchomić aplikację Django.

Czym jest Docker?
Docker tworzy izolowane "kontenery" zawierające całe potrzebne oprogramowanie (Python, pip) bez instalowania go na twoim komputerze.

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',
    }
}
Ważne
Nazwa bazy danych i nazwa użytkownika są zwykle takie same jak twoja nazwa użytkownika z pulpitu (np. 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 = ['*']

Proces wdrażania

Zmiana kodu git push pip install Live!
Aby uzyskać więcej informacji, odwiedź oficjalną Dokumentację Django.