Jump to content
×
×
  • Create New...

Recommended Posts

Este posibil să dorim să schimbăm ceea ce este afișat pe site-ul nostru web în funcție de anumite condiții. De exemplu, dacă vizitați site-ul www.isitchristmas.com , probabil veți fi întâmpinat cu o pagină care arată astfel:

isitno.png

Dar acest site web se va schimba în ziua de Crăciun, când site-ul va spune DA . Pentru a face așa ceva pentru noi, să încercăm să creăm o aplicație similară, unde verificăm dacă este sau nu ziua de Anul Nou. Să creăm o nouă aplicație pentru a face acest lucru, amintind procesul nostru pentru crearea unei noi aplicații:

Rulați python manage.py startapp newyear
Editați settings.py, adăugând „newyear” ca unul dintre al nostru INSTALLED_APPS
Editați urls.pyfișierul proiectului nostru și includeți o cale similară cu cea pe care am creat-o pentru helloaplicație:

path('newyear/', include("newyear.urls"))

 

Creați un alt urls.pyfișier în directorul noii aplicații și actualizați-l pentru a include o cale similară cu cea a indexului în hello:

from django.urls import path
from . import views

urlpatterns = [
    path("", views.index, name="index"),
]

 

Creați o funcție index în views.py.
Acum că suntem înființați cu noua noastră aplicație, să ne dăm seama cum să verificăm dacă este sau nu ziua de Anul Nou. Pentru a face acest lucru, putem importa modulul datetime al Python . Pentru a avea o înțelegere a modului în care funcționează acest modul, putem analiza documentația și apoi o putem testa în afara Django folosind interpretul Python.

Interpretorul Python este un instrument pe care îl putem folosi pentru a testa bucăți mici de cod Python. Pentru a utiliza acest lucru, rulați pythonîn terminalul dvs., apoi veți putea tasta și rula codul Python în terminalul dvs. Când ați terminat de utilizat interpretul, alergați exit()să plecați.

datetime.png

Putem folosi aceste cunoștințe pentru a construi o expresie booleană care va evalua la True dacă și numai dacă astăzi este ziua de Anul Nou: now.day == 1 and now.month == 1
Acum că avem o expresie pe care o putem folosi pentru a evalua dacă este sau nu ziua de Anul Nou, ne putem actualiza funcția de index în views.py:

def index(request):
    now = datetime.datetime.now()
    return render(request, "newyear/index.html", {
        "newyear": now.month == 1 and now.day == 1
    })

Acum, să creăm index.htmlșablonul nostru . Va trebui să creăm din nou un nou folder numit templates, un folder în acel apelat newyearși un fișier în acel apelat index.html. În interiorul acelui fișier, vom scrie așa ceva:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Is it New Year's?</title>
    </head>
    <body>
        {% if newyear %}
            <h1>YES</h1>
        {% else %}
            <h1>NO</h1>
        {% endif %}
    </body>
</html>

În codul de mai sus, observați că, atunci când dorim să includem logica în fișierele noastre HTML, folosim {%și %}ca deschidere și închidere a etichetelor în jurul instrucțiunilor logice. Rețineți, de asemenea, că limbajul de formatare Django necesită să includeți o etichetă de final care să indice că am terminat cu if-elseblocul nostru . Acum, ne putem deschide la pagina noastră pentru a vedea: 

no.png

 

Acum, pentru a ne face o idee mai bună despre ce se întâmplă în culise, să inspectăm elementul acestei pagini:

source.png

Observați că codul HTML care este de fapt trimis în browserul dvs. web include doar antetul NU, ceea ce înseamnă că Django folosește șablonul HTML pe care l-am scris pentru a crea un nou fișier HTML și apoi îl trimitem browserului nostru web. Dacă trișăm puțin și ne asigurăm că starea noastră este întotdeauna adevărată, vedem că este completat cazul opus:

def index(request):
    now = datetime.datetime.now()
    return render(request, "newyear/index.html", {
        "newyear": True
    })

 

yes.png

 

Dacă dorim să adăugăm un fișier CSS, care este un fișier static, deoarece nu se modifică, vom crea mai întâi un folder numit static, apoi vom crea un newyearfolder în interiorul acestuia, apoi un styles.cssfișier în interiorul acestuia. În acest fișier, putem adăuga orice stil dorim, așa cum am făcut în prima prelegere:

h1 {
    font-family: sans-serif;
    font-size: 90px;
    text-align: center;
}

 

Acum, pentru a include acest stil în fișierul nostru HTML, adăugăm linia {% load static %}în partea de sus a șablonului nostru HTML, care îi semnalează lui Django că dorim să avem acces la fișierele din staticfolderul nostru . Apoi, mai degrabă decât să codificăm hard linkul către o foaie de stil așa cum am făcut înainte, vom folosi o sintaxă specifică Django:

 

<link rel="stylesheet" href="{% static 'newyear/styles.css' %}">

 

Acum, dacă repornim serverul, putem vedea că modificările de stil au fost de fapt aplicate:

 

bigno.png

 

 

 

 

 

sursa:https://cs50.harvard.edu/

 

 

 

 

 

 

 

 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.