Lær, hvordan du effektivt aktiverer vedligeholdelsestilstand på din Django-app, mens du sikrer en problemfri oplevelse for dine brugere.

At sætte din Django-app i vedligeholdelsestilstand er afgørende, når du skal udføre opdateringer, løse tekniske problemer eller foretage væsentlige ændringer i din applikation.

Ved midlertidigt at begrænse brugeradgang og vise en vedligeholdelsesside kan du kommunikere vigtige beskeder, sikre en smidig opdateringsproces og forhindre potentielle konflikter eller tab af data.

Uanset om du er udvikler eller systemadministrator, vil forståelsen af, hvordan man implementerer vedligeholdelsestilstand i Django, gøre dig i stand til at opretholde en pålidelig og brugervenlig applikation.

Sådan bruger du Django-Maintenance-Mode-pakken

På grund af sin omfattende fællesskabssupport tilbyder Django en bred vifte af pakker, der kan forbedre din udviklingsproces betydeligt, hvilket muliggør hurtigere og mere effektivt arbejde. Disse pakker letter byrden af ​​gentagne opgaver og sikrer en mere jævn oplevelse for dig som udvikler.

instagram viewer

En af pakkerne leveret af Django er django-vedligeholdelsestilstand pakke, som du kan bruge til at sætte din Django-app i vedligeholdelsestilstand. Det django-vedligeholdelsestilstand pakken fungerer ved at vise en side for 503HTTP-statuskode. Du kan bruge django-vedligeholdelsestilstand i din app med følgende trin.

Trin 1: Installer Django-Maintenance-Mode i dit virtuelle miljø

  1. I din projektets virtuelle miljø, installer pakken med Pythons pip-pakkehåndtering. Kør denne kommando i din kommandolinjegrænseflade (CLI):
    pip installer django-vedligeholdelsestilstand
  2. Efter installation af pakken, tilføje vedligeholdelsestilstand til INSTALLERET_APPS liste i din settings.py fil:
    INSTALLED_APPS = [
    # nogle andre apps,
    'vedligeholdelsestilstand',
    ]
  3. Tilføj derefter middlewaren til django-vedligeholdelsestilstand til MIDDELVARE liste i din settings.py fil:
    MIDDELVARE = ​​[
    # anden middleware fra django,
    'maintenance_mode.middleware. Maintenance ModeMiddleware',
    ]

Trin 2: Opret en HTML-skabelon for at vise meddelelsen om vedligeholdelsestilstand

For django-vedligeholdelsestilstand pakke for at vise en 503-fejlside, leder den efter en 503.html skabelonfil i skabeloner vejviser. For at konfigurere dette skal du gøre følgende:

  1. Opret en mappe kaldet skabeloner i din rodmappe.
  2. Åbn din nyoprettede skabeloner mappe og opret en fil kaldet 503.html.
  3. I din settings.py fil, skal du finde Skabeloner indstillinger og konfigurer DIRS liste i den sådan her:
    'DIRS': [BASE_DIR/'skabeloner'],
  4. Åben din 503.html fil og skriv HTML-koden for at vise en fejlmeddelelse til dine brugere. Her er en simpel kode, du kan bruge:
    html>
    <html>
    <hoved>
    <metategnsæt="UTF-8">
    <titel>503 Service ikke tilgængeligtitel>
    <stil>
    krop {
    font-familie: Arial, sans-serif;
    baggrundsfarve: #f5f5f5;
    margin: 0;
    polstring: 0;
    }

    .container-503 {
    max-bredde: 600px;
    margin: 100px auto;
    tekst-align: center;
    }

    h1 {
    skriftstørrelse: 48px;
    farve: #333333;
    margin-bund: 20px;
    }

    p {
    skriftstørrelse: 18px;
    farve: #666666;
    margin-bund: 30px;
    }

    .btn-503 {
    display: inline-blok;
    polstring: 12px 24px;
    baggrundsfarve: #007bff;
    farve: #ffffff;
    tekst-dekoration: ingen;
    kant-radius: 4px;
    skriftstørrelse: 18px;
    }
    stil>
    hoved>
    <legeme>
    <divklasse = "container-503">
    <h1>503 Service ikke tilgængeligh1>
    <s>
    Ups! Vi arbejder i øjeblikket på nogle opdateringer.
    Vi beklager ulejligheden og værdsætter din tålmodighed.
    s>
    <s>Besøg venligst hjemmesiden senere eller kontakt vores supportteams>
    <-enhref = "mailto: [email protected]"klasse = "btn-503">
    Kontakt support
    -en>
    div>
    legeme>
    html>

Trin 3: Slå vedligeholdelsestilstand til, og genstart din server

I din settings.py fil, tilføj denne kode for at aktivere vedligeholdelsestilstand:

MAINTENANCE_MODE = Rigtigt

Genstart din udviklingsserver ved at køre dette ind i din CLI:

python manage.py runserver

Når du navigerer til dit websted, bør du se den vedligeholdelsesside, du har oprettet.

Sådan ignoreres Admin-webstedet i Django-vedligeholdelsestilstand

For at tillade dit adminwebsted at blive ved med at fungere selv i vedligeholdelsestilstand, django-vedligeholdelsestilstand giver en indstilling kaldet MAINTENANCE_MODE_IGNORE_ADMIN_SITE. Du bør tilføje denne indstilling i din settings.py fil og indstil den til Rigtigt:

MAINTENANCE_MODE_IGNORE_ADMIN_SITE = Rigtigt

Standardværdien for ovenstående indstilling er Falsk; derfor vil dit adminwebsted blive påvirket af vedligeholdelsestilstandssiden, hvis du ikke indstiller det til Rigtigt.

Sådan ignoreres en specifik funktionsbaseret visning i Django-vedligeholdelsestilstand

Det django-vedligeholdelsestilstand pakken giver en dekoratør til at forhindre en bestemt visning eller side—såsom Om side på dit websted – fra at gå i vedligeholdelsestilstand. For at gøre dette skal du først importere dekoratøren til din views.py modul:

fra vedligeholdelsestilstand.dekoratører importere force_maintenance_mode_off

Når du har importeret dekoratøren, skal du tilføje den til din visning på denne måde:

@force_maintenance_mode_off
defview_name(anmodning):
# udfør visningslogik
# returner aldrig 503-svar

Efter at have implementeret dekoratoren korrekt, vil URL'en for den specifikke visning blive tilgængelig for dine brugere.

Sådan ignoreres en specifik klassebaseret visning i Django-vedligeholdelsestilstand

At ignorere en klassebaseret visning svarer til at ignorere en funktionsbaseret visning. Den bedste tilgang er dog at gøre det i urls.py fil.

Først skal du importere force_maintenance_mode_off dekoratør i din app urls.py fil. Så skal du inkludere det i din URL-sti. Her er et eksempel:

fra vedligeholdelsestilstand.dekoratører importere force_maintenance_mode_off
fra .visninger importere YourView

urlpatterns = [
# returner aldrig 503-svar
sti('', force_maintenance_mode_off (YourView.as_view()), name='min udsigt'),
]

Sørg for, at du også importerer andre nødvendige ting som sti og din klassebaserede visning.

Sådan slår du vedligeholdelsestilstand til for en specifik funktionsbaseret visning

  1. For at aktivere vedligeholdelsestilstand for en enkelt visning skal du først slå vedligeholdelsestilstand fra i din settings.py fil ved at gøre dette:
    MAINTENANCE_MODE = Falsk
  2. Dernæst i din views.py, du skal importere force_maintenance_mode_on dekoratør og føj det til din visning:
    fra vedligeholdelsestilstand.dekoratører importere force_maintenance_mode_on

    @force_maintenance_mode_on
    defview_name(anmodning):
    # Udfør visningslogik
    # Returner altid 503-svar

Sådan slår du vedligeholdelsestilstand til for en specifik klassebaseret visning

  1. Først skal du slå vedligeholdelsestilstand fra i din settings.py fil:
    MAINTENANCE_MODE = Falsk
  2. Dernæst i din urls.py, bør du importere force_maintenance_mode_on dekorator og tilføje den til den nødvendige URL-sti:
    fra vedligeholdelsestilstand.dekoratører importere force_maintenance_mode_on
    fra .visninger importere YourView

    urlpatterns = [
    # Returner altid 503-svar
    sti('', force_maintenance_mode_on (YourView.as_view()), name='min udsigt'),
    ]

Sådan bruger du et andet skabelonnavn til Django-vedligeholdelsestilstand

Som standard er django-vedligeholdelsestilstand pakken leder efter en skabeloner/503.html skabelon. Du kan beslutte at tilsidesætte dette i settings.py fil.

Antag, at du har en separat mappe til at håndtere fejl i din app; du ønsker at inkludere din 503.html skabelon i denne mappe. Så din skabelon vil være med skabeloner/fejl/503.html.

Standardindstillingen for denne konfiguration er denne:

MAINTENANCE_MODE_TEMPLATE = "503.html"

For at tilsidesætte det, skal du tilføje en anden sti, der peger på din fejlside. Her er et eksempel:

MAINTENANCE_MODE_TEMPLATE = "errors/503.html"

Du kan også ændre filnavnet, hvis du vil, og alt vil fungere fint, hvis du tilføjer de nødvendige konfigurationer.

Bortset fra ovenstående konfigurationer, er django-vedligeholdelsestilstand pakken giver andre interessante konfigurationer for at hjælpe dig med at tilpasse din apps vedligeholdelsestilstand til dit specifikke behov. Du kan læse om disse konfigurationer i dokumentation for django-vedligeholdelsestilstand.

Brug vedligeholdelsestilstand til at sikre problemfri opdateringer og forbedret brugeroplevelse i din app

At udnytte vedligeholdelsestilstanden i din app kan gøre tingene lettere for dig og dine brugere. Ved midlertidigt at deaktivere adgangen til hele eller dele af din app under opdateringer eller vedligeholdelsesopgaver, kan du minimere forstyrrelser og fejl, der kan opstå fra samtidige brugerinteraktioner.

Brug af vedligeholdelsestilstand giver dig ikke kun mulighed for at udføre de nødvendige opdateringer effektivt, men viser også en forpligtelse til at give dine brugere en jævn og uafbrudt oplevelse.

Udover vedligeholdelsestilstand kan du også levere brugerdefinerede skabeloner til andre fejl i Django.