Leer hoe u de onderhoudsmodus op uw Django-app effectief kunt activeren en tegelijkertijd een naadloze ervaring voor uw gebruikers kunt garanderen.

Uw Django-app in de onderhoudsmodus zetten is cruciaal bij het uitvoeren van updates, het oplossen van technische problemen of het aanbrengen van belangrijke wijzigingen in uw applicatie.

Door de gebruikerstoegang tijdelijk te beperken en een onderhoudspagina weer te geven, kunt u belangrijke berichten communiceren, zorgen voor een soepel updateproces en mogelijke conflicten of gegevensverlies voorkomen.

Of u nu een ontwikkelaar of een systeembeheerder bent, als u begrijpt hoe u de onderhoudsmodus in Django implementeert, kunt u een betrouwbare en gebruiksvriendelijke applicatie onderhouden.

Hoe het Django-Maintenance-Mode-pakket te gebruiken

Dankzij de uitgebreide community-ondersteuning biedt Django een breed scala aan pakketten die uw ontwikkelproces aanzienlijk kunnen verbeteren, waardoor u sneller en efficiënter kunt werken. Deze pakketten verlichten de last van repetitieve taken en zorgen voor een soepelere ervaring voor u als ontwikkelaar.

instagram viewer

Een van de pakketten van Django is de django-onderhoudsmodus pakket waarmee je je Django-app in onderhoudsmodus kunt zetten. De django-onderhoudsmodus pakket werkt door een pagina weer te geven voor het 503HTTP-statuscode. Je kunt gebruiken django-onderhoudsmodus in uw app met de volgende stappen.

Stap 1: Installeer de Django-onderhoudsmodus in uw virtuele omgeving

  1. In uw virtuele omgeving van het project, installeer het pakket met de pip-pakketbeheerder van Python. Voer deze opdracht uit in uw opdrachtregelinterface (CLI):
    pip install django-onderhoudsmodus
  2. Voeg na installatie van het pakket toe onderhoudsstand naar de GEÏNSTALLEERDE_APPS lijst in je instellingen.py bestand:
    GEÏNSTALLEERDE_APPS = [
    # enkele andere apps,
    'onderhoudsstand',
    ]
  3. Voeg vervolgens de middleware toe voor django-onderhoudsmodus naar de MIDDELWAREN lijst in je instellingen.py bestand:
    MIDDENWARE = ​​[
    # andere middleware van django,
    'maintenance_mode.middleware. OnderhoudsmodusMiddleware',
    ]

Stap 2: maak een HTML-sjabloon om het bericht over de onderhoudsmodus weer te geven

Voor de django-onderhoudsmodus pakket om een ​​503-foutpagina weer te geven, zoekt het naar een 503.html sjabloonbestand in het Sjablonen map. Om dit in te stellen, doet u het volgende:

  1. Maak een map met de naam Sjablonen in je hoofdmap.
  2. Open je nieuw aangemaakte Sjablonen map en maak een bestand met de naam 503.html.
  3. In uw instellingen.py bestand, zoek het SJABLONEN instellingen en configureer de DIRS lijst erin als volgt:
    'DIRS': [BASE_DIR/'Sjablonen'],
  4. Open je 503.html bestand en schrijf de HTML-code om een ​​foutmelding aan uw gebruikers te geven. Hier is een eenvoudige code die u kunt gebruiken:
    html>
    <html>
    <hoofd>
    <metatekenset="UTF-8">
    <titel>503 Service niet beschikbaartitel>
    <stijl>
    lichaam {
    font-familie: Arial, schreefloos;
    achtergrondkleur: #f5f5f5;
    marge: 0;
    opvulling: 0;
    }

    .container-503 {
    maximale breedte: 600px;
    marge: 100px automatisch;
    tekst uitlijnen: centreren;
    }

    h1 {
    lettergrootte: 48px;
    kleur: #333333;
    marge-onder: 20px;
    }

    P {
    lettergrootte: 18px;
    kleur: #666666;
    marge-onder: 30px;
    }

    .btn-503 {
    weergave: inline-blok;
    opvulling: 12px 24px;
    achtergrondkleur: #007bff;
    kleur: #ffffff;
    tekstversiering: geen;
    grensstraal: 4px;
    lettergrootte: 18px;
    }
    stijl>
    hoofd>
    <lichaam>
    <divklas = "container-503">
    <h1>503 Service niet beschikbaarh1>
    <P>
    Oeps! We werken momenteel aan enkele updates.
    Onze excuses voor het ongemak en we stellen uw geduld op prijs.
    P>
    <P>Bezoek de website later of neem contact op met ons ondersteuningsteamP>
    <Ahref = "mailto: [email protected]"klas = "btn-503">
    Contact opnemen met ondersteuning
    A>
    div>
    lichaam>
    html>

Stap 3: Schakel de onderhoudsmodus in en start uw server opnieuw op

In uw instellingen.py bestand, voeg deze code toe om de onderhoudsmodus in te schakelen:

MAINTENANCE_MODE = WAAR

Start uw ontwikkelserver opnieuw door dit in uw CLI uit te voeren:

python manage.py runserver

Wanneer u naar uw website navigeert, zou u de onderhoudspagina moeten zien die u hebt gemaakt.

Hoe de beheerderssite te negeren in de Django-onderhoudsmodus

Om ervoor te zorgen dat uw beheersite zelfs in de onderhoudsmodus blijft functioneren, is het django-onderhoudsmodus biedt een instelling genaamd MAINTENANCE_MODE_IGNORE_ADMIN_SITE. U dient deze instelling toe te voegen aan uw instellingen.py bestand en zet het op WAAR:

MAINTENANCE_MODE_IGNORE_ADMIN_SITE = WAAR

De standaardwaarde van de bovenstaande instelling is Vals; vandaar dat uw beheerderssite wordt beïnvloed door de onderhoudsmoduspagina als u deze niet instelt WAAR.

Een specifieke op functies gebaseerde weergave negeren in de Django-onderhoudsmodus

De django-onderhoudsmodus pakket biedt een decorator om een ​​bepaalde weergave of pagina te voorkomen, zoals de Over pagina van uw site—van het overschakelen naar de onderhoudsmodus. Om dit te doen, importeert u eerst de decorateur in uw weergaven.py moduul:

van maintenance_mode.decorateurs importeren force_maintenance_mode_off

Na het importeren van de decorateur, voegt u deze als volgt toe aan uw weergave:

@force_maintenance_mode_off
defbekijk_naam(verzoek):
# weergavelogica uitvoeren
# geef nooit een 503-reactie terug

Nadat de decorateur correct is geïmplementeerd, wordt de URL voor die specifieke weergave toegankelijk voor uw gebruikers.

Een specifieke klassegebaseerde weergave negeren in de Django-onderhoudsmodus

Het negeren van een op klassen gebaseerde weergave is vergelijkbaar met het negeren van een op functies gebaseerde weergave. De beste aanpak is echter om het in de URL.py bestand.

Eerst moet u de force_maintenance_mode_off binnenhuisarchitect in uw app's URL.py bestand. Vervolgens moet u deze opnemen in uw URL-pad. Hier is een voorbeeld:

van maintenance_mode.decorateurs importeren force_maintenance_mode_off
van .keer bekeken importeren Jouw zicht

urlpatronen = [
# geef nooit een 503-reactie terug
pad('', force_maintenance_mode_off (YourView.as_view()), name='mijn_weergave'),
]

Zorg ervoor dat u ook andere noodzakelijke dingen importeert, zoals pad en uw op klassen gebaseerde weergave.

Onderhoudsmodus inschakelen voor een specifieke op functies gebaseerde weergave

  1. Als u de onderhoudsmodus wilt inschakelen voor een enkele weergave, schakelt u eerst de onderhoudsmodus uit in uw instellingen.py bestand door dit te doen:
    MAINTENANCE_MODE = Vals
  2. Vervolgens in uw weergaven.py, je moet de force_maintenance_mode_on decorateur en voeg het toe aan je weergave:
    van maintenance_mode.decorateurs importeren force_maintenance_mode_on

    @force_maintenance_mode_on
    defbekijk_naam(verzoek):
    # Voer weergavelogica uit
    # Retourneer altijd een 503-antwoord

Onderhoudsmodus inschakelen voor een specifieke klasse-gebaseerde weergave

  1. Eerst moet u de onderhoudsmodus in uw instellingen.py bestand:
    MAINTENANCE_MODE = Vals
  2. Vervolgens in uw URL.py, moet u de force_maintenance_mode_on decorateur en voeg het toe aan het vereiste URL-pad:
    van maintenance_mode.decorateurs importeren force_maintenance_mode_on
    van .keer bekeken importeren Jouw zicht

    urlpatronen = [
    # Retourneer altijd een 503-antwoord
    pad('', force_maintenance_mode_on (YourView.as_view()), name='mijn_weergave'),
    ]

Een andere sjabloonnaam gebruiken voor de Django-onderhoudsmodus

Standaard is de django-onderhoudsmodus pakket zoekt naar een sjablonen/503.html sjabloon. U kunt besluiten om dit te overschrijven in de instellingen.py bestand.

Stel dat je een aparte map hebt om fouten in je app af te handelen; u zult uw willen opnemen 503.html sjabloon in deze map. Dus je sjabloon is binnen sjablonen/fouten/503.html.

De standaardinstelling voor deze configuratie is deze:

MAINTENANCE_MODE_TEMPLATE = "503.html"

Om dit te overschrijven, moet u een ander pad toevoegen dat naar uw foutpagina verwijst. Hier is een voorbeeld:

MAINTENANCE_MODE_TEMPLATE = "fouten/503.html"

Je kunt ook de bestandsnaam wijzigen als je wilt, en alles zal goed werken als je de nodige configuraties toevoegt.

Afgezien van de bovenstaande configuraties, de django-onderhoudsmodus pakket biedt andere interessante configuraties om u te helpen de onderhoudsmodus van uw app aan te passen aan uw specifieke behoefte. U kunt over deze configuraties lezen in de django-onderhoudsmodus documentatie.

Gebruik de onderhoudsmodus om naadloze updates en verbeterde gebruikerservaring in uw app te garanderen

Door gebruik te maken van de onderhoudsmodus in uw app, kunt u het uzelf en uw gebruikers gemakkelijker maken. Door tijdelijk de toegang tot uw app geheel of gedeeltelijk uit te schakelen tijdens updates of onderhoudstaken, kunt u verstoringen en fouten minimaliseren die kunnen voortvloeien uit gelijktijdige gebruikersinteracties.

Door de onderhoudsmodus te gebruiken, kunt u niet alleen de noodzakelijke updates efficiënt uitvoeren, maar toont u ook uw toewijding om uw gebruikers een soepele en ononderbroken ervaring te bieden.

Naast de onderhoudsmodus kunt u ook aangepaste sjablonen leveren voor andere fouten in Django.