Django

Pilnīga izvietošanas rokasgrāmata: Django NStrim platformā

Pārskats

Django ir augsta līmeņa Python tīmekļa ietvars, kas veicina ātru izstrādi un tīru, pragmatisku dizainu. Tas ietver ORM, administrācijas paneli, autentifikācijas sistēmu un iebūvētu veidņu dzinēju.

Pirms sākat
Pārliecinieties, ka jūsu vadības panelis ir atvērts - jums būs nepieciešami tur redzamie Git piekļuves dati. Šī veidne ietver Django, Gunicorn, mysqlclient MySQL atbalstam un Django REST Framework.

Ātrais starts

1

Izveidot repozitoriju no veidnes

Savā vadības panelī atveriet cilni Tools & Deployment. Noklikšķiniet uz pogas "New Repository", izvēlieties Django veidni no nolaižamā saraksta, ievadiet repozitorija nosaukumu un apakšdomēnu, un noklikšķiniet "Create Repository".

2

Klonēt savu repozitoriju

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

Instalēt atkarības

pip install -r requirements.txt
4

Konfigurēt datubāzi un palaist migrācijas

Atjauniniet datubāzes iestatījumus failā settings.py (skatiet Datubāzes konfigurācija zemāk), pēc tam palaidiet:

python manage.py migrate
python manage.py runserver

Serveris pēc noklusējuma darbojas uz http://localhost:8000.

5

Augšupielādēt izmaiņas

git add .
git commit -m "Initial setup"
git push origin main
Katrs push uz Git automātiski izvieto jūsu lietojumprogrammu. Pārbaudiet moduļa darba URL savā vadības panelī, lai redzētu savu tiešsaistes vietni.

Lokālā izstrāde ar Docker

Ja jums nav lokāli instalēts Python, varat izmantot Docker, lai palaistu savu Django lietojumprogrammu.

Kas ir Docker?
Docker izveido izolētus konteinerus ar visu nepieciešamo programmatūru (Python, pip), neinstalējot tos jūsu datorā.

Komandu izpilde ar Docker

# Instalēt atkarības
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt

# Palaist izstrādes serveri
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"

Datubāzes konfigurācija

NStrim platforma nodrošina jums MySQL/MariaDB datubāzi. Atjauniniet DATABASES iestatījumu savā settings.py failā.

Atjaunināt settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<username>',
        'USER': '<username>',
        'PASSWORD': '<password>',
        'HOST': 'db.<session-domain>',
        'PORT': '3306',
    }
}
Svarīgi
Jūsu datubāzes nosaukums un lietotājvārds parasti sakrīt ar jūsu vadības paneļa lietotājvārdu (piemēram, student01). Pārbaudiet vadības paneļa piekļuves datu sadaļu, lai iegūtu precīzas vērtības.

Projekta struktūra

├── project/
│   ├── settings.py            # Projekta konfigurācija
│   ├── urls.py                # Galvenā URL konfigurācija
│   └── wsgi.py                # WSGI ieejas punkts
├── app/
│   ├── models.py              # Datubāzes modeļi
│   ├── views.py               # Skatu funkcijas / klases
│   ├── urls.py                # Lietotnes URL maršruti
│   ├── serializers.py         # DRF serializatori
│   ├── admin.py               # Administrācijas paneļa konfigurācija
│   └── templates/             # HTML veidnes
├── static/                    # CSS, JS, attēli
├── manage.py                  # Django pārvaldības CLI
├── requirements.txt           # Python atkarības
└── Dockerfile                 # Docker konfigurācija
        

Bieži veicamie uzdevumi

Modeļa izveide

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

Skata izveide

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)

URL konfigurācija

from django.urls import path
from . import views

urlpatterns = [
    path('users/', views.user_list, name='user-list'),
]

Noderīgas komandas

python manage.py runserver Palaist izstrādes serveri
python manage.py migrate Palaist datubāzes migrācijas
python manage.py makemigrations Izveidot jaunas migrācijas
python manage.py createsuperuser Izveidot administratora lietotāju /admin panelim
python manage.py shell Interaktīvā Python čaula ar Django

Problēmu novēršana

OperationalError: (2002) Can't connect to MySQL server

Iemesls: Datubāzes resursdators ir nepareizs vai nav pieejams.

Risinājums: Pārbaudiet, vai HOST iestatījumā DATABASES atbilst datubāzes resursdatoram no jūsu vadības paneļa.

OperationalError: (1045) Access denied for user

Iemesls: Nepareizs lietotājvārds vai parole.

Risinājums: Vēlreiz pārbaudiet, vai USER un PASSWORD jūsu settings.py failā precīzi sakrīt ar jūsu vadības paneļa piekļuves datiem.

No module named 'MySQLdb'

Risinājums: Instalējiet MySQL klientu: pip install mysqlclient. MacOS sistēmā var būt nepieciešams arī: brew install mysql-client.

DisallowedHost: Invalid HTTP_HOST header

Risinājums: Pievienojiet savu izvietošanas domēnu pie ALLOWED_HOSTS failā settings.py: ALLOWED_HOSTS = ['*']

Izvietošanas process

Koda izmaiņas git push pip install Tiešsaistē!
Papildu informācijai apmeklējiet oficiālo Django dokumentāciju.