Sdílet prostřednictvím


Krok 4: Použití úplné šablony webového projektu Django

Předchozí krok: Obsluha statických souborů, přidání stránek a použití dědičnosti šablon

Teď, když jste prozkoumali základy Django v sadě Visual Studio, můžete snadno pochopit plnohodnotnou aplikaci, která je představena šablonou "Django Web Project".

V tomto kroku teď:

  • Vytvoření plnohodnotné webové aplikace Django pomocí šablony Django Web Project a prozkoumání struktury projektu (krok 4-1)
  • Seznamte se se zobrazeními a šablonami stránek vytvořenými šablonou projektu, která se skládá ze tří stránek, které dědí ze základní šablony stránky a které využívají statické javascriptové knihovny, jako je jQuery a Bootstrap (krok 4–2).
  • Vysvětlení směrování adres URL poskytnuté šablonou (krok 4–3)

Šablona také poskytuje základní ověřování, které je popsáno v kroku 5.

Krok 4–1: Vytvoření projektu ze šablony

  1. V sadě Visual Studio přejděte na Průzkumník řešení, klikněte pravým tlačítkem na řešení Učení Django vytvořené dříve v tomto kurzu. Pak vyberte Přidat>nový projekt. (Pokud chcete použít nové řešení, vyberte Místo toho soubor>nový>projekt.)

  2. V dialogovém okně Nový projekt vyhledejte a vyberte šablonu webového projektu Django. Zavolejte projekt DjangoWeb a pak vyberte Vytvořit.

  3. Vzhledem k tomu, že šablona obsahuje soubor requirements.txt , Visual Studio vyzve k instalaci závislostí umístění. Po zobrazení výzvy zvolte možnost Nainstalovat do virtuálního prostředí a v dialogovém okně Přidat virtuální prostředí vyberte Vytvořit a přijměte výchozí hodnoty.

  4. Jakmile Visual Studio dokončí nastavení virtuálního prostředí, postupujte podle pokynů zobrazených v souboru readme.html a vytvořte superuživatele Django (tj. správce). Klikněte pravým tlačítkem myši na projekt sady Visual Studio a vyberte příkaz Python>Django Create Superuser a pak postupujte podle pokynů. Ujistěte se, že při používání ověřovacích funkcí aplikace zaznamenáte svoje uživatelské jméno a heslo.

  5. Nastavte projekt DjangoWeb jako výchozí pro řešení sady Visual Studio tak, že kliknete pravým tlačítkem myši na projekt v Průzkumník řešení a vyberete Nastavit jako spouštěný projekt. Spouštěcí projekt, který je zobrazen tučně, je to, co se spustí při spuštění ladicího programu.

    Solution Explorer showing the DjangoWeb project as the startup project.

  6. Vyberte Spustit>ladění (F5) nebo pomocí tlačítka Webový server na panelu nástrojů spusťte server.

    Run web server toolbar button in Visual Studio.

  7. Aplikace vytvořená šablonou má tři stránky, Domovská stránka, O aplikaci a Kontakt. Mezi stránkami můžete přecházet pomocí navigačního panelu. Prozkoumejte různé části aplikace za minutu nebo dvě. Pokud se chcete ověřit v aplikaci pomocí příkazu Přihlásit , použijte přihlašovací údaje superuživatele vytvořené dříve.

    Full browser view of the Django Web Project app.

  8. Aplikace vytvořená šablonou "Django Web Project" používá metodu Bootstrap k responzivnímu rozložení, které vyhovuje faktorům mobilních formulářů. Pokud chcete zobrazit tuto rychlost odezvy, změňte velikost prohlížeče na úzké zobrazení tak, aby se obsah vykreslovat svisle a navigační panel se změnil na ikonu nabídky.

    Mobile (narrow) view of the Django Web Project app.

  9. Aplikaci můžete nechat spuštěnou pro následující oddíly.

    Pokud chcete zastavit aplikaci a potvrdit změny ve správě zdrojového kódu, otevřete stránku Změny v Team Exploreru, klikněte pravým tlačítkem myši na složku pro virtuální prostředí (pravděpodobně env) a vyberte Ignorovat tyto místní položky.

Prozkoumání, co šablona vytvoří

Na nejširší úrovni vytvoří šablona "Django Web Project" následující strukturu:

  • Soubory v kořenovém adresáři projektu:
    • manage.py: Nástroj pro správu Django.
    • db.sqlite3: Výchozí databáze SQLite.
    • requirements.txt: Obsahuje závislost na Django 1.x.
    • readme.html: Soubor, který se zobrazí v sadě Visual Studio po vytvoření projektu. Jak je uvedeno v předchozí části, postupujte podle zde uvedených pokynů a vytvořte pro aplikaci účet superuživatele (správce).
  • Složka aplikace obsahuje všechny soubory aplikace , včetně zobrazení, modelů, testů, formulářů, šablon a statických souborů (viz krok 4–2). Tuto složku obvykle přejmenujete tak, aby používala výraznější název aplikace.
  • Složka DjangoWeb (projekt Django) obsahuje typické soubory projektu Django: __init__.py, settings.py, urls.py a wsgi.py. Soubor settings.py je již nakonfigurován pro aplikaci a soubor databáze pomocí šablony projektu. Soubor urls.py je také nastavený s trasami na všechny stránky aplikace, včetně přihlašovacího formuláře.

Otázka: Je možné sdílet virtuální prostředí mezi projekty sady Visual Studio?

Odpověď: Ano, ale s vědomím, že různé projekty pravděpodobně používají různé balíčky v průběhu času. Sdílené virtuální prostředí proto musí obsahovat všechny balíčky pro všechny projekty, které ho používají.

Pokud ale chcete použít existující virtuální prostředí, postupujte následovně:

  1. Po zobrazení výzvy k instalaci závislostí v sadě Visual Studio vyberte možnost Nainstalovat si je sama .
  2. V Průzkumník řešení klikněte pravým tlačítkem na uzel Prostředí Pythonu a vyberte Přidat existující virtuální prostředí.
  3. Přejděte do složky obsahující virtuální prostředí a vyberte ji a pak vyberte OK.

Krok 4–2: Vysvětlení zobrazení a šablon stránek vytvořených šablonou projektu

Jak vidíte při spuštění projektu, aplikace obsahuje tři zobrazení: Domů, O aplikaci a Kontakt. Kód pro tato zobrazení se nachází v souboru views.py . Každé volání django.shortcuts.render funkce zobrazení s cestou k šabloně a jednoduchému objektu slovníku. Například stránka O aplikaci je zpracována about funkcí:

def about(request):
    """Renders the about page."""
    assert isinstance(request, HttpRequest)
    return render(
        request,
        'app/about.html',
        {
            'title':'About',
            'message':'Your application description page.',
            'year':datetime.now().year,
        }
    )

Šablony se nacházejí v šablonách nebo složce aplikace (a obvykle chcete aplikaci přejmenovat na název skutečné aplikace). Základní šablona layout.html je nejrozsáhlejší. Soubor layout.html odkazuje na všechny nezbytné statické soubory (JavaScript a CSS). Soubor layout.html také definuje blok s názvem "content", který přepíšou jiné stránky a poskytuje další blok s názvem "skripty". Následující výňatky s poznámkami ze souboru layout.html zobrazují tyto konkrétní oblasti:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />

    <!-- Define a viewport for Bootstrap's responsive rendering -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ title }} - My Django Application</title>

    {% load staticfiles %}
    <link rel="stylesheet" type="text/css" href="{% static 'app/content/bootstrap.min.css' %}" />
    <link rel="stylesheet" type="text/css" href="{% static 'app/content/site.css' %}" />
    <script src="{% static 'app/scripts/modernizr-2.6.2.js' %}"></script>
</head>
<body>
    <!-- Navbar omitted -->

    <div class="container body-content">

<!-- "content" block that pages are expected to override -->
{% block content %}{% endblock %}
        <hr/>
        <footer>
            <p>&copy; {{ year }} - My Django Application</p>
        </footer>
    </div>

<!-- Additional scripts; use the "scripts" block to add page-specific scripts.  -->
    <script src="{% static 'app/scripts/jquery-1.10.2.js' %}"></script>
    <script src="{% static 'app/scripts/bootstrap.js' %}"></script>
    <script src="{% static 'app/scripts/respond.js' %}"></script>
{% block scripts %}{% endblock %}

</body>
</html>

Jednotlivé šablony stránek, about.html, contact.html a index.html, každý rozšiřuje základní šablonu layout.html. Soubor šablony about.html je nejjednodušší a zobrazuje značky {% extends %}{% block content %} :

{% extends "app/layout.html" %}

{% block content %}

<h2>{{ title }}.</h2>
<h3>{{ message }}</h3>

<p>Use this area to provide additional information.</p>

{% endblock %}

Soubory šablon index.html a contact.html používají stejnou strukturu a poskytují delší obsah v bloku "content".

Ve složce templates/app je také čtvrtá stránka login.html spolu s loginpartial.html, který je přenesen do layout.html pomocí {% include %}. Tyto soubory šablon jsou popsány v kroku 5 při ověřování.

Otázka: Může být {% blok %} a {% endblock %} odsazený v šabloně stránky Django?

Odpověď: Ano. Šablony stránek Django fungují správně, pokud odsadíte značky bloku, možná je zarovnáte do příslušných nadřazených prvků. Pokud chcete jasně zobrazit umístění značek bloků, šablony stránek sady Visual Studio neodsadí značky bloku.

Krok 4–3: Vysvětlení směrování adres URL vytvořené šablonou

Soubor projektu Django urls.py vytvořený šablonou "Django Web Project" obsahuje následující kód:

from datetime import datetime
from django.urls import path
from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView
from app import forms, views

urlpatterns = [
    path('', views.home, name='home'),
    path('contact/', views.contact, name='contact'),
    path('about/', views.about, name='about'),
    path('login/',
         LoginView.as_view
         (
             template_name='app/login.html',
             authentication_form=forms.BootstrapAuthenticationForm,
             extra_context=
             {
                 'title': 'Log in',
                 'year' : datetime.now().year,
             }
         ),
         name='login'),
    path('logout/', LogoutView.as_view(next_page='/'), name='logout'),
    path('admin/', admin.site.urls),
]

První tři vzory adres URL se mapují přímo na homesoubor , contacta about zobrazení v souboru views.py aplikace. Vzory ^login/$ a ^logout$na druhou stranu používají integrovaná zobrazení Django místo zobrazení definovaná aplikací. Volání url metody zahrnují také další data pro přizpůsobení zobrazení. Krok 5 zkoumá tato volání.

Otázka: Proč v projektu, který jsem vytvořil, používá vzor adresy URL "about" místo ^about$ místo ^about$, jak je znázorněno tady?

Odpověď: Nedostatek koncového znaku $v regulárním výrazu byl jednoduchý dohled v mnoha verzích šablony projektu. Vzor adresy URL funguje dokonale dobře pro stránku s názvem "about". Bez koncového vzorce adresy URL "$" ale odpovídá také adresám URL jako "about=django", "about09876", "aboutoflaughter" atd. Tady se zobrazuje koncové "$" a vytvoří vzor adresy URL, který odpovídá pouze "about".

Další kroky

Přejít hlouběji