Wagtail pour les débutants | Kalob Taulien | Skillshare
Drawer
Suchen

Vitesse de lecture


  • 0.5x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 2x

Wagtail pour les débutants

teacher avatar Kalob Taulien, Web Development Teacher

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Introduction au Wagtail pour les débutants

      1:37

    • 2.

      Qu'est-

      2:09

    • 3.

      Comment installer Wagtail

      10:49

    • 4.

      Pour commencer

      3:26

    • 5.

      Connectez-vous à l'administrateur

      2:17

    • 6.

      Présentation Wagtail

      10:28

    • 7.

      Édition de la page d'accueil

      23:20

    • 8.

      Travailler avec le modèle de base

      7:06

    • 9.

      App et pages Services

      20:19

    • 10.

      Page Service

      11:42

    • 11.

      Page de liste du service

      14:19

    • 12.

      Ajouter la valorisation de page

      7:36

    • 13.

      Ajouter un en-tête et un pied de

      7:32

    • 14.

      Ajouter des outils de débogage

      15:47

    • 15.

      Page Flex/Misc

      6:37

    • 16.

      Objets témoignage

      16:13

    • 17.

      Bienvenue dans StreamFields

      5:52

    • 18.

      Créer l'application StreamField

      3:05

    • 19.

      Votre premier champ

      13:48

    • 20.

      Références de StreamFields

      12:55

    • 21.

      Simplification des flux répétitifs

      18:29

    • 22.

      Logic en StreamField

      9:12

    • 23.

      Bloc de texte

      12:50

    • 24.

      Bloc radio

      4:30

    • 25.

      Blocage d'appel à l'action

      5:37

    • 26.

      Testimonies et échantillons

      9:51

    • 27.

      StreamField

      11:21

    • 28.

      RichText StreamField

      15:27

    • 29.

      StreamField

      6:18

    • 30.

      Validation du flux en ligne

      9:53

    • 31.

      Limitation des pages

      11:44

    • 32.

      Menus de navigation

      17:47

    • 33.

      Modèles de menu navigation

      16:09

    • 34.

      Formulaires de contact partie 1

      19:38

    • 35.

      Formulaires de contact partie 2

      9:57

    • 36.

      Limiter les choix du formulaire de contact

      4:55

    • 37.

      Support image .webp

      2:49

    • 38.

      Autres façons d'apprendre Wagtail

      10:47

    • 39.

      Paramètres du site global

      14:29

    • 40.

      Modifier le logo Admin de Wagtail

      2:38

    • 41.

      Ajouter des Caching

      15:14

    • 42.

      Caching de la navigation et pied

      12:08

    • 43.

      Ajouter un plan Sitemap

      2:37

    • 44.

      Préparation pour le lancement

      7:08

    • 45.

      Lancement site Web !

      38:33

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

280

apprenants

--

projet

Über diesen Kurs

Bienvenue dans Wagtail pour les débutants !

Ce cours est conçu pour les développeurs qui sont novice dans Wagtail CMS. Nous allons créer ensemble un nouveau site Web Wagtail nous allons vous fera part de rien, et nous allons à la fin le déployer sur le web. Voici un aperçu du site Web final : Rocketman

Remarque : Ce cours suppose que vous n'avez pas une compréhension de base de Python. Si vous connaissez quelques Django, c'est génial, mais pas obligatoire.

Si vous n'êtes pas sûr ce cours est non, pensez à les sujets suivants que nous parlerons ensemble. Si vous n'êtes pas familière ou ce cours est probablement ce cours. Voici ce que nous allons apprendre :

  • Installation
    • Vous apprendrez à installer Wagtail à l'aide de venv et Pipenv
  • Créer 7 créations personnalisées
    • Y compris des services, des pages services, des témoignages, StreamFields, un menu personnalisé, des pages de contact et des paramètres du site global
  • Pages de contact
    • Créer la page initiale et la page d'accueil
    • Personnalisation des options du formulaire de contact
  • StreamFields
    • StreamFields de base
    • Références de StreamFields
    • Validation personnalisée
    • Blocs de table
    • Réutilisant des composants StreamField
    • Ajouter une logique supplémentaire à StreamFields
    • 2 façons de créer StreamFields
  • Pages personnalisées
    • Validation de page
    • Champs de page personnalisée
    • Travailler avec des images et des touches étrangères à d'autres modèles
  • Créer des pages d'inscription pour remplir automatiquement votre contenu dès que vous créez une nouvelle page
  • Caching
    • Comment accélérer votre site Web avec la cache.
    • Comment supprimer la cache lorsque vous enregistrez une page ou un modèle
  • Créer un menu personnalisé
    • Vous créerez un système de menu divisable à partir de rien.
    • Vous allez vous présenter dans des tableaux personnalisables et des modèles groupables
    • Enregistrez le menu avec le modèle Wagtails Admin
    • Créer une étiquette personnalisée pour travailler avec vos modèles de menu
  • Créer des modèles Django
    • Utilisez Wagtail comme interface l'administrateur principale
    • Comment transformer des modèles Django en éléments réutilisables (snippets Wagtail snippets)
  • Créer des paramètres de site personnalisé
    • Vous ferez des paramètres du site globalement accessible
    • Cache ces paramètres
    • et supprimez cache lorsque les valeurs sont mises
  • Reclement d'image et renditions personnalisées
    • Et soutien d'image .webp
  • Créer une carte du site
  • 2 outils de debugging très utiles
  • Mes méthodes personnelles pour apprendre rapidement et efficacement Wagtail Mes méthodes
  • Lancez votre site site Web sur un nouveau serveur
    • Utiliser l'océan numérique et l'Ubuntu 18 avec Nginx et Gunicorn
  • Installez un service de surveillance des erreurs pour votre site Web en direct

Et voici quelques bonus avec ce cours :

  • Tout le code source
  • The créer des outils pour personnaliser le thème
  • Une configuration nginx
  • Échantillon de fichiers gunicorn

Si vous pensez qu'il vous pourrait bénéficier d'un cours comme cela, inscrivez-vous certainement aujourd-hui et commencer.

(Aperçu du site Web nous allons créer)

Rencontrez votre enseignant·e

Teacher Profile Image

Kalob Taulien

Web Development Teacher

Enseignant·e

Hi everybody! I'm Kalob Taulien.

 

Here's the TL;DR (short) version about me:

I have been coding since 1999 and teaching people how to code since 2013 I have over 350,000 web development students world-wide I'm on the Wagtail CMS core development team (Wagtail is Python's #1 most popular website making system) I try my best to answer EVERY question my students have  I love teaching — it's definitely one of my natural talents  Also I love goats! (Great conversation starter with me if we ever get to meet in person)

Below you can find all my Skillshare courses. The categories go from easiest to hardest, except for the Misc. Coding Courses at the very end. 

If you're brand new to coding, start with BEGINNERS WEB DEV.&nb... Voir le profil complet

Compétences associées

Développement Développement Web
Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung in Wagtail: Hallo und willkommen bei wag Tail für Anfänger. Mein Name ist Caleb und sagt, dass ich dein Lehrer sein werde. Ich werde die Stimme hinter dem Video sein. Ich bin auch Mitglied des Corps Wag Tail Teams. Und in diesem Kurs werden wir eine komplette wag Tail Website von Grund auf neu erstellen. Nun, dieser Kurs kann oder auch nicht für Sie sein. Wir werden viele verschiedene Dinge in diesem Kurs abdecken, aber wenn Sie bereits ein fortgeschrittener Wag Tail Entwickler sind, dieser Kurs wahrscheinlich nicht für Sie sein. Aber hier sind einige der Dinge, die wir lernen werden. In diesem Kurs werden wir lernen, wie Wag Tail mit zwei verschiedenen virtuellen Umgebungen installieren wird verschiedene Wag Tail Seiten erstellen , verwalten Vorlagen werden Daten zu Template Kontext hinzufügen. Wenn Sie also nicht wissen, was das bedeutet, ist natürlich definitiv für Sie. Wir werden hinzufügen und erstellen mehrere verschiedene Stream-Feldtypen erstellen ein benutzerdefiniertes Jangle-Modell und dann erlauben wag tail es zu ändern. Verwenden Sie es, aktivieren Sie es Wiederverwendung der Daten überall. In einer Sache, die ein Snippet genannt wird, werden wir Listing und Detailseiten erstellen sogar ein Kontaktformular, das E-Mail kann. Dann werden wir in Dinge wie globale Site-Einstellungen, Verwalten Seite, Hierarchie-Seite und Stream-Feld-Validierung erhalten. Und dann werde ich Ihnen einige Tipps und Tricks, wie Sie Wag Tail schneller und einfacher lernen und in einer verspielteren Angelegenheit wird mit Bildern und verschiedenen Bildwiedergaben arbeiten. Und dann werden wir darüber sprechen, Ihre Website mit einer sehr einfachen Form der Einlösung zu beschleunigen. Sobald wir das alles erledigt haben, werden wir diese Website im Internet bereitstellen. Wenn Sie also denken, dass Sie von einem Kurs wie diesem profitieren würden, treten Sie auf jeden Fall ein und wir können sofort loslegen. 2. Was ist Wagtail CMS?: Was ist Wayto rektal ist Pythons Nummer eins beliebtesten Content-Management-System. Die Chancen stehen, dass Sie von WordPress gehört haben. Warte Till ist wie WordPress. Wenn WordPress wurde professionell in diesem Jahrzehnt entwickelt, Wait erzählt extrem entwicklerfreundlich, und es Huckepack auf dem Django-Framework, das ein Python-Framework ist. Und das bedeutet, Warte bis ist in der Lage, alles zu tun, was Jango kann. Es kann auch alles tun, was Python dio kann. nun Wenn Sienuneine Website in den nächsten 10 Minuten erstellen und starten möchten, wie eine WORDPRESS Website, ist dies nicht das Content Management System für Sie. Kellner wurde gebaut, um Menschen zu helfen, ihre Websites richtig zu verwalten. Das bedeutet in der Regel, dass es eine Person gibt , einen Designer, einen Entwickler, vielleicht ein paar andere Leute mit einer Art Investition in die Website. Aber im Allgemeinen die drei grundlegenden Zutaten für eine erstaunliche Website ein Web-Entwickler, ein Web-Designer und einige Inhalte Eintrag Person, oder jemand, der sich mit einem Projekt wie einem Projektmanager beschäftigt, der sogar nur Ihre -Client. Das Schöne an Wag Tail ist Warte Till wurde mit all dem im Sinn gebaut. Nun, Wag Tails, ein Content-Management-System ist eigentlich ziemlich Leistung. Es ist schnell, was ich sage. Es kommt mit vielen verschiedenen Funktionen, die standardmäßig aktiviert sind oder wenn sie nicht standardmäßig aktiviert sind. Sie sind super einfach zu aktivieren. Aber das Beste von allem, Wake Toes 100% Open Source. Und es gibt eine großartige Entwickler-Community für jede Art von Support, die Sie benötigen. Davon abgesehen, wenn Sie in Erwägung ziehen, zu verwenden, warten Sie, bis dieser Wag Schwanz schnell ist. Es basiert auf einem sehr großen, sicheren und bewährten Framework namens Django, und all das basiert auf Python. Python führt alles von Websites über künstliche Intelligenz, maschinelles Lernen bis hin zu einfachen Programmen, die Sie jeden Tag verwenden können, und fortgeschrittene Programme für Unternehmen, die Sie vielleicht nicht jeden Tag verwenden. Sie können nur bei großen, großen Unternehmen verwenden . Der Python macht buchstäblich alles, und wag tail ist Pythons Nummer eins beliebtestes Content-Management-System 3. Wie du Wagtail installieren: bevor wir Wayto warten können, bis installiert werden muss, und vorher müssen Sie Python installiert haben. Erste Dinge zuerst. Wenn Sie Python noch nicht installiert haben, gehen Sie zu python dot org klicken Sie auf Downloads und laden Sie die gewünschte Version von Python herunter. Ich werde Python 3.7 verwenden. Jede Version von Fight auf 3.6 oder höher wird empfohlen, also wähle Python 3.63 Punkt sieben oder 3.8. Laden Sie es herunter, installieren Sie es. Und sobald Sie Python auf Ihrem Computer ausgeführt haben, sollten Sie in der Lage sein, einfach Ihre Befehlszeile zu öffnen. Programmieren Sie Ihr bevorzugtes Befehlszeilenprogramm und geben Sie einfach Python Dash V ein, und Sie werden die Version von Python sehen. Also verwende ich Python 3.7 Punkt zwei. Wieder einmal möchten Sie Python 3.6 oder neuer verwenden, um ein neues Python-Projekt zu erstellen. Wir sollten das in eine virtuelle Umgebung setzen. Grundsätzlich ist dies eine Ebene zwischen Ihrem Python-Projekt und Ihrem Computer. Wir verwenden virtuelle Umgebungen ziemlich großzügig, so dass Sie verschiedene Paketversionen in verschiedenen Projekten haben können , ohne dass Code in Konflikt steht. oder Sie können ein Projekt mit Wag Tail 2.4 in einem anderen Projekt laufen lassen. Warten Sie bis 2.7 und sie werden nie in Konflikt geraten. Nur weil Sie eine andere Version haben, bedeutet das nicht, dass sie auf Probleme stoßen sollten, und das ist, was eine virtuelle Umgebung tut. Es erlaubt uns, dieses Problem zu trennen. Eine virtuelle Umgebung kann sogar eine Ebene tiefer gehen. Sie können eine virtuelle Umgebung mit einer anderen Version von Python erstellen. Wir werden virtuelle Standardumgebungen verwenden. Wenn Sie Python 3.7 verwenden, wird Ihre virtuelle Umgebung wahrscheinlich auch Python 3.7 sein. Aber wenn wir wollten, könnten wir sagen, 01 Projekt muss Python 3.4 verwenden, und ein anderes Projekt hat Python 3.7 verwendet. Und vielleicht sind wir an einem anderen Projekt. Und der Himmel bewahre, es muss Python verwenden, zu dem, wenn Sie Python verwenden, um bitte auf Python drei Python zu aktualisieren, definitiv veraltete ID ist . Lassen Sie uns nun auf Wege gehen, um eine virtuelle Umgebung für eine Wag Tail Site zu starten. Die 1. 1 ist mit einer Sache, die Venn VvE-Neid genannt wird, und ich glaube, das kommt mit neueren Versionen von Python, also sollten Sie nichts installieren müssen. Dies ist eigentlich eine der einfacheren Möglichkeiten, eine virtuelle Umgebung zu installieren. Und der zweite Weg ist die Verwendung einer Methode namens Pippen. Und das hier ist eigentlich einfacher. Aber es erfordert, dass Sie tatsächlich pip und installiert haben. Und bevor wir etwas tun, Sie sicherstellen, dass Sie pip installiert haben. Pip ist Pythons Paketmanager. Wer? Du, Pip Dash V. Du kannst sehen, ich benutze Pip 18.1. Dies ist mein Standort, wo Pip verwendet wird. Und es läuft Pip auf Python 3.7. Das ist also gut. Sie sollten in der Lage sein, Run, Pip, Dash V zu schreiben Pip, und auch eine Art Ausgabe wie diese zu erhalten. Ordnung, wir werden Wag Tail mit Ven ve ve ve Neid installieren. Also habe ich bereits Python läuft und Sie können sehen, wie er Python 3.7 Punkt zwei läuft. Also werde ich Python Dash M-Ereignis und dann den Namen der virtuellen Umgebung machen, die ich aufrufen möchte. Ich werde diesen Rocket Man Ven nennen. Eigentlich, was ich tun werde, ist zuerst ein neues Verzeichnis zu erstellen. Also lassen Sie uns absagen, dass Lets do em que dire Rocket Man CD Raketen-Mann Und Sie können mein Arbeitsverzeichnis hier sehen . Also bin ich in Benutzern Kale, italienische Websites, Rocket Man. Und jetzt werde ich Python Dash m Ven Rocketman Vend tun. Der Name ist nicht wirklich wichtig. Es ist nur Ihre virtuelle Umgebung. Also werde ich es Rocket Man Ven nennen, und wir werden sehen, wird hier ein neues Verzeichnis für mich erstellen . Also lassen Sie uns einen Ls Dash l. A.machen A. und sehen, dass es hier ein volles währenddessen gibt, namens Rocketman Venture direkt dort drin, um in dieses Ding zu kommen. Alles, was wir tun müssen, ist Typ Quelle Rocketman, Venn wurde aktiviert, was, wenn es dein erstes Mal ist, das wird wirklich seltsam aussehen. Aber nach einer Weile gewöhnt man sich daran. Und ich bin jetzt in dieser virtuellen Umgebung und Sie können das sehen, weil es Rocketman Ven in Klammern auf der linken Seite meines Benutzers sagt . Also jetzt an dieser Stelle kann ich Pip V tun. Wir können sehen, dass ich Pip 18.1 benutze. Es kommt aus meiner virtuellen Umgebung. Das ist der Ordner hier. Das ist das Verzeichnis Python 3.7, so dass alles gut aussieht. Lasst uns weitermachen. Installieren Sie wag Tail jetzt. Also, Pip installieren. Warte, sag. Alles klar, also warte wurde installiert. Ich kann jetzt Pip zeigen Wag Tail. Es zeigt mir, dass ich Wag Tail Version 2.7 genau dort verwende. Ich kann auch pip freeze tun, um alle meine Pakete zu sehen, die in diesen virtuellen Umgebungen installiert sind . Ich habe schöne Suppe. Zertifizieren Django Django Tree Bart, html fünf, lib Kissen Anfragen sechs Ihre l'Abbe, wag Schwanz Weide. Alle möglichen Sachen. Das ist es, was meine virtuelle Umgebung beleidigt. Mein Computer hat keinen Zugriff darauf, es sei denn, ich befinde mich in dieser virtuellen Umgebung. Jetzt kann ich sagen, dass dieses Projekt laufen wird. Warten Sie bis 2,7. Und in einer anderen virtuellen Umgebung kann ich sagen, hey, benutze wayto 2.4. Verwenden Sie eine ältere Version von wait til Wag Tail 1.13 verwenden, wenn wir wollten. Und diese werden nie miteinander kollidieren, was wirklich, wirklich schön ist . Also, jetzt, was wir tun müssen, ist warten, bis meine Website zu starten und das wird eine Website namens meine Website zu erstellen . Ich will nicht, dass es mein Anblick genannt wird. Ich mache eine Webseite namens Rocket Man. Also werde ich Witz machen. Sie starten Rocket Man. Das wird einen neuen Ordner namens Rocket Man erstellen. Aber ich will nicht, dass es das tut. Ich wollte ein neues Projekt in New Wag Tail Website erstellen. In dem Verzeichnis, in dem ich bin. Ich bin bereits in einem Verzeichnis namens Rocket Man. Ich habe eine virtuelle von hier drin und ich möchte dieses neue Projekt in diesem Verzeichnis erstellen. Also lasst uns weitermachen und das tun. Sie können sehen, dass das sehr schnell war. Ls Dash L. A. Und wir haben jetzt Docker-Datei Home-Ordner. Verwaltet hohe Anforderungen an txt Rocketman Ordner. Hier gehen Einstellungen und statische Dateien und Vorlagen. Wir haben eine Such-App und wir haben unsere virtuelle Umgebung. So, jetzt können wir pip installieren, Dash sind Anforderungen dot txt und all das sieht aus, als wäre es bereits zu einem gewissen Grad zufrieden gewesen , und jetzt ist es ein Läufer-Server. Wir tippen nur python managed up. Ich führe Server 0.0 Punkt Null Colin 8000 und es sollte sagen, dies sollten Sie diese alarmierende rote Steuer sehen , sagen Sie haben 89 un angewandte Migrationen und wenn wir unseren Browser öffnen und den Kopf auf über lokale Host-Support 8000 wir gehen , um diese Luft zu sehen. Das ist eigentlich eine gute Sache. Das bedeutet, dass Ihre Website läuft. Also habe ich meinen Server dort mit Kontrolle abgesagt. Siehst du, ich storniere deinen Server nicht einfach, damit er nicht mehr läuft. Und als nächstes müssen wir provisorische Datenbank. Denn wenn wir zurück zu überspringen, wo dieser Fehler auf dem lokalen Host 8000 angezeigt wird, werden wir sehen, dass es keine solche Tabelle wag tail Kern-Site sagt. Eine Tabelle ist ein Datenbankbegriff. Dies sucht nach einer Datenbank, die auf eine bestimmte Weise eingerichtet ist, um loszulegen, und sie ist nicht so eingerichtet. Also lasst uns weitermachen und das aufstellen. Die richtige Verschwendung. Lassen Sie uns Python bei Pi meine große verwaltet, und wir werden sehen, dies wird all diese verschiedenen Dateien anwenden und dann, wenn wir ihren Server mit Python verwaltet erneut ausführen, führe ich Server 0000 Colon 8000. Gehen wir zurück und aktualisieren Sie Ihre Seite. Wallach. Wir haben Warten bis installiert mit V Neid oder Ereignis. Und dann, um aus Ihrer Tugendumgebung zu kommen, müssen Sie nur das Wort deactivate eingeben. Das kannst du hier unten sehen. Tut mir leid, das ist ganz unten. Aber ja, du magst das Wort „Deactivate“. Und dieser Raketen-Mann scheint weg zu gehen. Eine andere Möglichkeit, dies zu tun, ist, dass Sie Ihre Web Toe-Website bereits einrichten können. Also haben Sie Alice Dash L A. Lassen Sie uns einfach so tun, als ob der Rocketman Vin nicht existiert. Und wir wollten vielleicht Pip End verwenden. In Ordnung, also lösche ich einfach meinen Bildschirm aus. Du kannst sehen, in welchem Ordner ich mich befinde. Ich bin im Rocketman-Ordner bei Last Dash L. A. Sie können sehen, dass ich auch hier mein ganzes virtuelles Ende habe, also lassen Sie uns das einfach ignorieren. Aber wir haben das ganze Warten bis Projekt da drin. Also denken Sie daran, alles, was ich getan habe, war Wag Tail Start, Rocket Man mit dem Punkt und das hat gerade mein Projekt in diesem aktuellen Verzeichnis installiert. Nun, wenn ich virtuell verwenden wollte und ich Pippen Shell oder Pip Engine nur in Pippen Shell stürzen könnte , können Sie sehen, dass eine neue virtuelle Umgebung mit Python 3.7 Punkt vier erstellt wird. Es ist eigentlich andere Versionen Python als das, was ich benutze, nur etwas anders und in Ordnung, wir sind darin und Sie können sehen, dass es die virtuelle Umgebung von Rocket Man ist. Wir haben etwas, das hier etwas anders aussieht, bevor es Caleb erzählt und meinen Pfad zu welchem Ordner ich bin. Wenn ich P W. D.mache D. bin ich immer noch in meinem Rocket Man-Ordner und ich denke, du Python Dash V verwende ich eine andere Version von Python, die weder hier noch da ist. Es ist zufällig, dass Pippen beschlossen haben, die neueste Version von Python für mich zu verwenden. Ich habe verschiedene Python-Umgebungen eingerichtet, also hat es hinter den Kulissen etwas Magie gemacht, aber für Sie würde es die gleiche Version von fromm installieren, auf der Sie gerade auf Ihrem Computer verwendet haben. Und dann, wieder einmal, wenn Sie hier drin sind, könnten Sie einfach python managed eingeben. Ich führe Server 0000 8000. Aber wie Sie sehen können, wird es Ihnen eine Luft werfen, weil wir in einer anderen virtuellen Umgebung sind. Die 1. 1, die wir erstellt haben, war ein Veranstaltungsort, der technisch eine andere virtuelle Umgebung ist, und dies ist ein Pip Ende. Eine andere virtuelle Umgebung macht genau das Gleiche, aber sie ist sich der Dinge nicht bewusst, die wir bereits installiert haben. Also lassen Sie uns voran und tun Pip installieren Dash. Unsere Anforderungen dot txt und das wird einfach einfach zu installieren, um alles von vorne. Alles klar, das ist alles installiert. Und jetzt kann ich meinen Server noch einmal betreiben. Gehe zurück zu meinem Browser und ich könnte einfach aktualisieren, weil dies nur aus dem V-Neid ist und es immer noch perfekt funktioniert. So installieren wir. Warten Sie, bis mit einem V Envy oder Pippen. Sie müssen keines der beiden verwenden. Sie können virtuelle Umgebungen verwenden, wenn Sie möchten. Es wird eigentlich virtuell genannt, und Sie können Docker Vagrant verwenden. Sie können alles verwenden, was Sie wirklich wollen, aber das sind zwei ziemlich häufige Wege, und ich dachte, wir würden sie decken, da sie ziemlich einfach einzurichten sind. Und sie brauchen nichts Besonderes, wie Docker oder Vagranten oder große Downloads. Oh, und eine letzte Notiz. Nur um hier rauszukommen. Es ist nicht ganz dasselbe wie nur das Tippen der Aktivierung, zumindest nicht auf meinem Computer. Ich arbeite vielleicht für Sie. Einfach das Wort „Deactivate“ eingeben, macht den Job für mich nicht ganz. Also, was ich tun muss, ist die Kontrolle zu treffen. D. Also werde ich das rausnehmen. Control plus D, um das abzubrechen und Kontrolle D zu drücken, und es wird nur für mich beendet. Stellen Sie also sicher, dass Sie eine virtuelle Umgebung erneut eingerichtet haben. Es spielt keine Rolle, welche Art du benutzt hast. Stellen Sie sicher, dass Sie Ihren Pip ausgeführt haben. Installieren Sie unsere Armaturenbrett-Anforderungen a txt. Stellen Sie sicher, dass Sie weiß haben, was alles installiert ist. Und wenn Sie dieses Eierbild sehen, fühlen Sie sich auf jeden Fall frei, um mit der nächsten Lektion fortzufahren. Aber gehen Sie nicht weiter, bis Sie den glücklichen Wag Schwanz Ei Ladebildschirm sehen. 4. Erste Schritte: Alles klar. Da wir gemeinsam eine Website aufbauen, brauchen wir dieselben Vermögenswerte, die gleiche Datei. Also habe ich bereits einen Haufen Frontend-Zeug erledigt. Ein Haufen CSS und JavaScript ist bereits kompiliert, und ich werde Ihnen das geben. Sie müssen sich also keine Sorgen machen, um all das Front-End-Zeug zu machen, weil dies kein Front-End-Kurs ist . Hier geht es um das Lernen. Wakil CMS. Hier geht es nicht darum, Boots, Trapper Foundation oder Web Pack oder Paket über Js oder so etwas zu lernen . So können Sie diese Datei herunterladen, die Rocketman Assets genannt wird. Entschuldigt sich das, wenn das da ein wenig klein ist. Aber wir haben Rocketman Assets Dot Zip und du könntest das einfach extrahieren und du wirst Front-End-Zeug bekommen. Also bekommst du alle Front-End-Goodies all das JavaScript, die Quelle und CSS und all das gute Zeug da drin. Paket von Jason. Wenn Sie die Front und Sachen machen möchten, können Sie NPM installieren und Sie werden einfach alles installieren. Uh, oder du kannst das alles völlig ignorieren und wir können in den Rocketman-Ordner gehen und hier . Sie werden sehen, Sie CSS-Bilder und JavaScript. Sie möchten alle diese auswählen, Gehen Sie in Ihr aktuelles Rocketman-Projekt. Also haben wir, wie der Rockem Erfinderisch aus dem letzten Projekt sogar eine Pit Datei, weil ich auch eine Pip Umgebung verwendet habe . Also gehen wir in Rocket Man. Wenn Ihr Projekt nicht Rocket Man heißt, wird es heißen, was auch immer Ihr Projekt ist. Also in diesem Verzeichnis hier, hier ist, wo ich meine Wag Tail App installiert. Dies ist, wo ich meine Warte bis Website erstellt. Das könnte nicht Rocket Man genannt werden. Dies könnte als Ihre Website bezeichnet werden. Dies könnte etwas völlig anderes genannt werden, aber es wird der Name Ihres Projekts sein. Was auch immer Sie in Ihre Befehlszeile eingegeben haben, dann finden Sie einen Ordner namens Static. Und wir sollten schon CSS und JavaScript dort sehen. Gehen wir weiter und fügen Sie das einfach dort ein. Dies bedeutet nur, dass ein Ordnername CSS bereits an diesem Speicherort vorhanden ist. Soll ich zusammenführen? Wird das ersetzen. Ich wollte alles ersetzen, weil ich nichts verschmelzen muss. Ich muss das Zeug nur überschreiben. Nun, bei einem typischen Warten-bis-Projekt, müssen Sie dies nicht tun. Also alles, was tun wird, ist sicherzustellen, dass wir laufen, Ah, Website, die im Grunde genau die gleiche wirkt genau gleich aussieht. Jetzt wieder, wie eine schnelle kleine Auffrischung. Ihr Front-End-Zeug die drei hier, Im Grunde alles im Wurzelverzeichnis Ihrer Raketen-Man-Assets, die in der Zip-Datei waren , kann direkt in Ihr Routenprojekt gehen. Also gehe ich hier ein paar Verzeichnisse hoch, wo ich meine verwaltete Dot Pie Datei habe und ich werde die einfach dort einfügen. Und Sie werden jetzt auch bemerken, was ich gerade getan habe Es war, dass ich all die versteckten Dateien gezeigt habe. Also, wenn Sie auf einem Mac sind, werden Sie gehen, um zu drücken Befehl shift und dann, Punkt, und das wird alle Ihre versteckten Punktdateien angezeigt. Wir werden diese auch kopieren wollen. Dies ist nur eine Babel RC-Datei, und ein einfacher Editor kann das beheben. Wir verwenden die gleiche Art von Erfindung, also werden Ihre Codes aussehen, als ob mein Code ignoriert wird, so dass Sie nicht versehentlich Dateien festschreiben , die für Ihr get Repo und die Knotenversion, die ich verwende, nicht wirklich nützlich sind. Also nochmal, ich werfe das in die Route des Projekts. Hier. Die Route ist, wo verwaltet hohe Leben und dann CSS-Bilder und JavaScript alle in Ihr statisches Verzeichnis gehen hier, und Sie sollten CSS- und JavaScript-Ordner durch das neue Zeug ersetzen, das in der Punkt-Zip-Datei wieder auf einem regulären waggle-Projekt. Sie müssen dies nicht tun, weil Sie Ihr eigenes Design haben, mit dem Sie arbeiten. Aber das ist nur, um sicherzustellen, dass Sie und ich gleichzeitig synchron sind. Wenn Sie also fertig sind, oder wenn Sie sich entschieden haben, das komplett zu ignorieren und mit Ihrem eigenen Design zu arbeiten, ist das auch cool . Lasst uns zur nächsten Lektion gehen 5. Anmeldung in Admin: Alles klar. Zu diesem Zeitpunkt sollten Sie einen Basisweg haben, um eine Website zu starten und zu laufen, aber Sie können möglicherweise nicht in den Admin-Bereich gelangen. Wenn Sie also Ihre Website nicht in Betrieb haben, gehen wir in unser virtuelles Ende. Was auch immer du verwendest. Vielleicht ist es Docker, vagabundierende Tugend und Ven Pippen spielt keine Rolle. Sie müssen nur in Ihre virtuelle Umgebung einsteigen. Also werde ich mit einem Event in meinen einsteigen. Rocket Man Lieferant ist, was als aktiviert wurde. Ich wollte diese Datei Quelle und Sie können sehen, dass ich jetzt drin bin. Und jetzt, um meinen Server zu laufen gehen, um Python verwaltet zu tun. Ich führe Server und ein schnellerer Weg ist nur Null. Doppelpunkt 8000 und dies wird die Website auf Port 8000 laufen. Wir können es hier sehen, wenn ich diese Seite aktualisiere. Port 8000 und es lädt perfekt feine Nasen. Das Content-Management-System. Wir wollen in der Lage sein, in die Admin-Bereiche zu gelangen. Gehen wir in die Admin-Oberfläche und wie loggen wir uns ein? Ist es bei Männern? Einlass? Ist es bei Männern Passwort. Wir wissen nicht, was das ist und standardmäßig Wag Tail und Django und Python. Sie sind alle sehr sicherheitsbasiert, so dass Sie keinen Benutzer haben. Es gibt noch keinen Weg für dich, in das zu kommen. Wir müssen unseren eigenen Super-User erstellen. Also gehen wir zurück zu unserem Terminal. Brechen Sie unseren Server mit Kontrolle ab, sehen Sie, und ich werde das löschen. Also ist es wieder nach oben. Und lasst uns Python verwaltet eingeben. Ich erstelle Super User Alle ein Wort, das ich mich nach einem Benutzernamen fragen wollte. Ich will nicht Caleb anrufen. Ich will nur Caleb sein. Meine E-Mail-Adresse wird Caleb bei Learned wag tail dot com sein. Passwort wird das sein, was ich will, dass mein Passwort sein. Es wird mich bitten, es zweimal einzugeben, weil es eine gute Übung ist. Gehen wir einfach weiter und führen Sie unseren Server noch einmal aus. Also, was das tat, war es im Grunde nur erstellt und zugegeben Konto für uns? Also, jetzt überweisen wir es. Ich habe den Benutzernamen von Caleb, und mein Passwort ist, was auch immer mein Passwort war. Und Wallah, ich bin in meinem Weg. Sagen Sie Männern, und wenn Sie jemals den Link zu Ihrem Admin verlieren. Es ist immer Ihre Website Schrägstrich Admin. Das ist die Standardeinstellung. Sie können das immer ein wenig später überschreiben. Und wenn Sie nur Ihre erste Website installieren, Sie können einfach auf Admin-Schnittstelle klicken und es wird Sie dorthin bringen, und das ist, wie Sie einen Weg erstellen, Tell Administrator Super User. 6. Wagtail Walkthrough: Lassen Sie uns einen kurzen Spaziergang durch die Wag Tail CMS gewesen. Nun, das sind sehr nackte Knochen. Ich habe gerade ein brandneues Projekt gestartet, also gibt es buchstäblich nichts, was gerade nicht aus der Box kommt. Dies ist alles, was standardmäßig mit einem brandneuen Weg kommt. Sagen Website jetzt out of the box, Warte bis kommt mit vielen verschiedenen Komponenten, aber das meiste davon kann wirklich in etwa fünf Stücke aufgeteilt werden, nehme ich an. Eso haben Sie Seiten, die hier sind, Sie haben Bilder, Sie haben Dokumente, Sie haben Einstellungen und dann haben Sie Benutzer. Aber um das zu vereinfachen, möchte ich wirklich sagen, dass Sie Seiten, Bilder und Benutzer haben . Das sind die drei großen. Das ist also Ihre Benutzeroberfläche. Das wird Ihnen sagen, wie viele Seiten, wie viele Bilder, wie viele Dokumente Sie haben, können Sie durch Ihre Seiten erkunden. Und hier, wenn Sie andere Seiten haben , wird es einen kleinen Pfeil hier geben. Sie können in das klicken und erstellt ein nettes kleines Menü für Sie, oder Sie klicken einfach wie ich möchte die Homepage bearbeiten, Klicken Sie auf die Schaltfläche Bearbeiten und dies wird mir erlauben, die Homepage zu bearbeiten. Hier ist ein Titelfeld. Das hat also wirklich nur ein Feld, denn wieder ist dies eine Basis. Warte bis zum Projekt. Ah, wir können die Seite auf Publish it Publishing zur Moderation eingereicht löschen, da Moderation mit Wag Tail verfügbar ist , so dass Sie eine Gruppe von Editoren haben können, die Inhalte nicht ohne Genehmigung veröffentlichen können. Und wir können unsere Seite auch jederzeit in der Vorschau sehen. Das ist unser Inhalts-Tab. In unserem Promotion-Tap. Wir haben eine Schnecke. Also, wenn Sie Ihre Website dot com Schrägstrich über Bindestrich mich oder Ihre Website dot com Schrägstrich Kontakt für eine Kontaktseite sein wollten , die Ihre Slug sein wird. Hier können Sie einen benutzerdefinierten Titel haben, der den Standardseitentitel überschreibt. Einige werden in Menüoptionen angezeigt, was Ihnen manchmal hilft, eine Navigationsleiste zu erstellen. Je nachdem, wie der Entwickler es eingerichtet hat, haben Sie eine Suchbeschreibung. Dies ist also die Suchbeschreibung, die Google verwendet, um in Suchmaschinen verwendet zu verwenden, und immer noch eine gute Idee, eine Suchbeschreibung in haben. Möglicherweise ist es nicht verfügbar. Text auf Ihrer Seite, der möglicherweise nicht sichtbar , aber er könnte sich im Kopfteil Ihrer Seite befinden. Als nächstes haben wir Einstellungen. Dies sind geplante Veröffentlichungseinstellungen ein Datum, um in einem Ablaufdatum live zu gehen. Dafür benötigt es einen Cron-Job. Wenn Sie kein Entwickler sind, ist ein Cron-Job im Grunde eine Aufgabe, die jede X Anzahl von Minuten oder Stunden oder Tagen ausgeführt wird, und es wird automatisch überprüfen, ob Sie eine Seite haben, die live oder Seite gehen muss. Es muss ablaufen. Das ist wirklich toll für die Förderung. Also, wenn Sie eine Seite haben und Sie versuchen, zu tun, ah, Black Friday Deal und es ist buchstäblich nur schwarzer Freitag, könnte man sagen, Black Friday für eine 2019 war Freitag, 29. November und wir bekommen zu der Zeit und dann das Ablaufdatum Datum wird genau die gleiche Zeit sein, genau am selben Tag, aber um 11 Uhr in der Nacht, Sie jedoch, müssen jedoch,dass auf Ihrem Server eingerichtet werden. Dieser Cron-Job muss von jemandem eingerichtet werden, der Zugriff auf den Server hat. Das ist nicht automatisch. Dann haben wir einen Blick Live-Button hier oben. So sieht unsere Seite derzeit wieder brandneue Website aus, also gibt es nichts drauf. Wir haben verschiedene Datenschutzmodi. Ist diese Seite für alle öffentlich? Ist es privat, aber nur Personen zugänglich, die eingeloggt sind? Wir können ja sagen, dass oder privat, aber zugänglich für Menschen mit einem folgenden Passwort. Und dann könnten Sie ein Passwort für oder ist eine private und zugänglich für Benutzer innerhalb bestimmter Gruppen. Nun, wir haben nur die beiden Gruppen hier. Wir haben Moderatoren und Redakteure. Wir könnten auch andere Gruppen erstellen und sagen, dass nur bestimmte Personen diese Seite sehen können. Als Nächstes. Lassen Sie uns schnell einen Blick auf die Suche werfen. Ich suche nur nach Hause. Ja, ich möchte die Seite verlassen. Es wird die Seiten für mich finden. Es wird Bilder, Dokumente, Benutzer, alle anderen Dinge finden Dokumente, Benutzer, , nach denen es suchen kann. Es hat wirklich nur eine Sache hier gefunden, eine Homepage namens Startseite gefunden, und hier können wir die Seite bearbeiten, die wir lebendig sehen können. Wir können eine untergeordnete Seite hinzufügen. Wir haben nur den Typ einer Seite zur Verfügung, so wird es uns bitten, eine Homepage unter der Homepage zu erstellen. Das ist etwas peinlich, also werden wir das nicht zu sehr angehen. Aber wenn Sie Seiten haben. Und vielleicht haben Sie eine Seite an der falschen Stelle erstellt. Du kannst sie bewegen. Sie können sie kopieren, Sie können sie unveröffentlicht löschen. Sie können sogar auf Seite Revisionen auf dieser Seite sehen ist und haben alle Revisionen. Aber wenn ich einen Text auf der Seite geändert habe, wenn ich einen der Inhalte ändere, wird er in meinem Revisionsabschnitt angezeigt. Hier und wieder kommt dies alles standardmäßig mit weißem Schwanz. Als nächstes haben wir Bilder hier drin, also lassen Sie uns weiter gehen und ein Bild hinzufügen. Also werde ich nur ein Bild namens Rocket Launch One hochladen. Ich glaube, das ist mit freundlicher Genehmigung von Space X. Laden Sie das hoch und erledigen Sie es einfach so. Wir haben hier ein Bild. Wir besorgen ein Sie, Earl, damit wir das Tempo der Link-Position kopieren können. Ich habe kein neues in einem neuen Tab, und Sie können sehen, dass dieses Bild ziemlich groß ist, eigentlich, aber da ist es. So haben wir Image-Hosting automatisch integriert. Sie können das Bild ändern. Sie können Tags hinzufügen Wenn Sie also danach suchen möchten, können Sie Tags hinzufügen. Sie können den Titel ändern und warten, bis kommt mit dieser wirklich coolen Idee eines Brennpunkts . Der Schwerpunkt ist, du weißt schon, wenn du ein Bild von einem Haufen Leute hochlädst und wie jemandes Gesicht abgeschnitten wird und du nicht willst, dass das in Wag Tail gut passiert und du kannst den Teil des Bildes auswählen. Das ist dann am wichtigsten, wenn Waittil versucht, das Bild für jede Seite zu beschneiden, an der Sie gerade arbeiten, wird es so nah wie möglich an diesem Abschnitt herangehen. Du sagst, das ist der wichtige Teil. Verschieben Sie das Bild hierher. Also, wenn es erntet, kommt es ein wenig näher. Es ist wirklich, wirklich nett. Gehen Sie weiter und speichern Sie das Bild, und das ist wirklich alles, was es gibt. Ich denke, wir könnten auch das Bild löschen oder den Brennbereich entfernen, wenn wir wollten. Gehen wir zu Dokumenten. Dokumente sind im Grunde genau das gleiche wie Bilder, also werde ich hier ein Dokument hinzufügen. Rocket Man Assets dot zip hat keine Vorschau, weil es Zip-Datei. Lassen Sie uns voran und aktualisieren, dass klicken Sie auf Dokumente wieder, und wir können sehen, dass wir ein Dokument haben hier genannt rocketman Assets dot zip. Ich kann es direkt herunterladen, oder ich kann hier klicken. Schnappen Sie sich diesen Link. Dies ist also ein Link Link Copy Link Location. Lassen Sie uns das hier einfügen, und sicher genug versucht es, es erneut herunterzuladen. Also jetzt haben wir Datei-Hosting. Eine Sache im Auge zu behalten ist, dass diese nicht privat sind, also nicht Host Kreditkartennummern oder so etwas auf hier. Das ist definitiv eine schlechte Praxis. Als nächstes haben wir Einstellungen, innere Einstellungen. Standardmäßig. Wir haben Benutzer, Gruppen-Websites, Sammlungen und Weiterleitungen. Ich habe hier einen Benutzer namens Caleb. Ich habe Email-Adresse Vorname, Nachname Passwort erhalten. Ich kann mein Passwort dort ändern, und ich habe Rollen. Moderatoren und Redakteure. Ich werde nichts von denen ändern. Ich bin ein Superuser. Ich habe Männer ausgebessert. Ich habe mehr Rechte als beide, daher muss ich keines von denen ändern, die zu Benutzern zurückkehren. Sie können immer einen neuen Benutzer hinzufügen. Und hier können Sie sagen, ob sie ein Administrator oder kein Administrator sind oder wenn sie kein Administrator sind , sollten sie einfach Teil einer bestimmten Gruppe sein? Gruppen kommen mit bestimmten Berechtigungen, und es gibt Passwortregeln, allerlei gute Sachen. Okay, reden wir über Gruppen. Wir haben zwei Gruppen hier drin. Redakteure und Moderatoren. Werfen wir einen Blick auf die Redakteure. Worauf kann ein Editor dio zugreifen? Die Art und Weise, wie Telemann cool, aber nicht hinzufügen Weiterleitungen oder Websites oder Sammlungen Gruppen oder Benutzer können nicht ändern? Jeder von ihnen kann keine von ihnen löschen. Sie sind Seitenberechtigungen, sie können hinzufügen. Sie können bearbeiten, aber sie können die nicht veröffentlichen, und sie können keine Seiten sperren. Sammlungen sind im Grunde wie Ordner für Ihre Bilder, so dass Sie alle Ihre Bilder oder Dokumente in irgendeiner Form der Sammlung einfügen können. Und dann können Sie auch Berechtigungen hinzufügen. Bilder haben auch Sammlungen. Wir haben nur die eine Sammlung namens Route, aber genau das Gleiche gilt dort. In Ordnung. Als nächstes haben wir Sites, so dass Sie mehrere Sites auf einer einzigen Instanz von warten bis jetzt haben wir nur die eine namens lokalen Host Port ist 80. Ich werde bis zu 8000 ändern, weil das ist, was meine Website läuft. Also, wenn ich diesen lokalen Host Port 8000, das ist meine Website ändert sich. Das ist zu 8000, nur um es zu passen. Ah, Site-Name, ich werde uns zu Raketenmännern ändern, nur weil das ist, was diese Seite genannt wird, und Sie können sogar die Homepage dafür ändern. Also lassen Sie uns eine andere Seite wählen. Wir könnten Wir können nicht, weil wir nur die eine Seite haben, weil dies eine Basisinstallation von Warten bis ist , wenn wir eine andere Seite hatten, vielleicht eine andere Art von Homepage. Wir könnten das komplett austauschen. Und ist das die Standard-Site? Während wir nur die eine Seite haben. Also ja, wir werden sagen, dass das die Standardseite ist. Als nächstes haben wir wieder Sammlungen. Sammlungen, Luft, wirklich nur Ordner, in denen Sie Bilder und Dokumente dort hineinlegen können. Und dann könnten Sie Berechtigungen umschließen, damit bestimmte Benutzergruppen bestimmten Zugriff auf bestimmte Sammlungen haben . Ich werde keine Sammlung hinzufügen, weil es für mich in diesem bestimmten Moment nicht so nützlich ist. Ah, Gipfel und gehen Sie weiter, um einen Leser X A wirklich schön umleitet. Sie können sagen, jeder, der sich auf, Nehmen wir an, Ihre Website dot com verstauen mein 2019 Angebot. Vielleicht ist dies eine Art Landing Page, und ich möchte sie auf eine andere Landing Page, einen anderen Service, vielleicht eine andere Website umleiten einen anderen Service, . Ich könnte jeden zu Google Dot com Google Dot com umleiten. Wer also zu meinem Angebot 2019 geht, wird das nicht da sein. Jeder, der auf meine Website geht dot com slash mein Dash 2019 dash Angebot wird hier umgeleitet werden, und Sie können alle diese verschiedenen Weiterleitungen einrichten, wenn Sie möchten. Sie können sogar eine Seite intern innerhalb des Weges auswählen, zu dem Sie umleiten möchten. Und schließlich haben wir Kontoeinstellungen. Sie können ein Profilbild festlegen. Sie können Ihre E-Mail ändern und Ihre Einstellungen für die Kennwortbenachrichtigung ändern. Es gibt Spracheinstellungen. Wenn diese alle aktiviert sind, was sie standardmäßig sind, können Sie Ihre aktuelle Zeitzone Micro einstellen und die Zeitzone ist nicht einmal gesetzt, also möchte ich wahrscheinlich gehen und das ein wenig später einstellen und Sie können sogar Ihren Namen ändern. sind also all die grundlegenden Dinge, die mit Warten bis direkt aus der Box kommen, und jede einzelne Komponente ist bis zu einem gewissen Grad erweiterbar. Also, ja, wir haben gerade nur eine Seite, aber wir können später Hunderte von Seiten hinzufügen, wenn wir wollten. Sicher, wir haben nur ein Bild. Wir könnten weitere hinzufügen, wenn Sie eine Kontaktseite haben. Wenn ein Entwickler eine Kontaktseite für Sie erstellt hat, sehen Sie hier auch in Ihrem Menü Formularübermittlungen. Wenn Sie Snippets für wiederverwendbare Datenstücke aktiviert haben, sehen Sie hier in Ihrem Menü einen kleinen Abschnitt namens Snippets, und Sie können andere benutzerdefinierte Dinge sehen, die Entwickler einfügen. Da ist Knochen, aber aus der Kiste. Das ist es, was du mit meinem Schwanz bekommst. 7. Bearbeitung der Titelseite: In Ordnung, lasst uns weitermachen und unsere Homepage bearbeiten. Es funktioniert tatsächlich mit etwas Code hier, also werde ich in meine virtuelle Umgebung einsteigen. Ich benutze Anbieter, also werde ich meinen Raketen-Mann beschaffen, der aktiviert wurde und ich bin darin drin. Ich möchte nur diese Website betreiben. Also werde ich Python verwalteten High-Run-Server auf Port 8000 ausführen und wir können hier sehen, wenn ich aktualisiere, es funktioniert. Aber wenn wir tatsächlich auf die Homepage gehen und versuchen, etwas auf hier zu bearbeiten oder auch wenn wir versuchen , die Lebensseite zu sehen, haben wir noch nichts getan, also lasst uns tatsächlich in diese. Also werden wir hier eine Reihe von Feldern hinzufügen, weil wir im Moment nur das Titelfeld in unserem Hauptinhalt haben . Wir haben Promotionsfelder und Einstellungsfeld, und das ist großartig. Warten Sie, bis uns alle Optionen gibt, aber wir möchten mehr hinzufügen. Wir wollen, dass die Homepage ein wenig mehr Gewürz hat. Also lassen Sie uns wie das Homepage-Banner hinzufügen. In Ordnung, also habe ich gerade meinen Editor geöffnet und das Projekt geöffnet, also habe ich alle meine Dateien hier drin, können Sie sie auf der linken Seite sehen. Ich benutze nur V s Code. Übrigens können Sie jeden Editor verwenden. Es spielt keine Rolle. Also habe ich mein Front-End-Zeug hier drin. Ich habe eine Home-App. Ich habe Medien. Hier werden meine Bilder und Dokumente und Zeug hochgeladen. Äh, nicht Raketen-Mann. Dies ist, wo meine Einstellung, statische Dateien und Tempel sein werden. Wir werden da drin viel Arbeit machen. Wir haben die virtuelle Umgebung, die wir überhaupt nicht brauchen. Es ist nicht für Bearbeitungszwecke, und wir haben eine Such-App, die wir nicht verwenden werden. Also das erste, was wir wollen, ist zu Hause zu öffnen und gehen Sie runter zu Modellen dot pie, und wir werden hier zu sehen. Es ist eigentlich gar nichts hier drin. Und wenn wir einen Blick nach Basispunktkuchen nehmen und wir nach unten scrollen, sehen wir installierte APS, wir haben zu Hause und suchen und eine Reihe von Wayto diejenigen Modellcluster-Tag es und eine Reihe von jangle APs alle installiert. Dies kommt standardmäßig mit Ihrer Wag Tail Site. Die beiden, die wir achten wollen, um unser Haus auf der Suche zu hören und eigentlich mehr, so wollen wir die Aufmerksamkeit auf ein Haus zu zahlen. Also dieses Haus H o M e passt diese App genau hier. Und wenn wir die Homepage loswerden wollten, könnten wir das einfach auskommentieren oder ganz löschen. Speichern Sie Neustart unseres Servers und wir haben keinen Zugriff mehr auf die gesamte Karte. Wir werden mehr darauf eingehen, wenn wir diesen Kurs durchlaufen. Aber wenn Sie hier eine weitere App hinzugefügt haben, wie Dienste, Sie gerade dort so hinzugefügt, dass wir mehr über dieses wenig später sprechen und wie man eine richtige Django- und Beinschwanz App in unserem Haus Slash Modelle Dot Pie starten, Wir haben nur eine einzige Klasse namens Homepage, weil die APP-Startseite aktiviert ist. Wag Tail und Django sagen, Oh, das ist eine Klasse ist eine Seite. Okay, nun, ich werde automatisch ein wenig Platz in unserer Datenbank und Struktur für Ihre Homepage und übergeben nur bedeutet, dass es nichts tut. Was wir jetzt tun wollen, ist, dass wir ein paar Felder hinzufügen möchten, die wir vielleicht einen Lead-Text hinzufügen möchten . Ah, Button Button Text und vielleicht ein Hintergrundbild für ein Banner. Also lasst uns das einfach nach dem anderen machen. Lassen Sie uns Lead-Text machen und dies wird nur ein sehr einfaches Char-Feld, ein Zeichenfeld sein . Also, das kommt in die Irre. Und das ist also kein Wag Schwanz. Das ist Jenkin. Wir können sagen, weil dies von Modellen kommt dot Wir können sehen, ob wir uns die Importe hier von django dot db Importmodellen kommen. Also werden wir ein neues Char-Feld oder ein Auto-Feld erstellen. V s Code ist schön genug, um mir alle verschiedenen Optionen hier zu zeigen. Die 1. 1, die wir wirklich wollen, dass diese maximale Länge waren anstelle der maximalen Länge von etwa 100 40 Zeichen nur für diesen Lead-Text, wir werden sagen, es kann in der Tat, leer sein. Und vielleicht, lassen Sie uns einige Hilfe Text Hilfe Steuern in Höhe einer Unterüberschrift Text unter dem Bannertitel hinzufügen. So etwas. Wir können diese später auch immer anpassen, und ich werde das etwas aufräumen. Setzen Sie diese auf separate Linien, so dass es ein wenig schöner und einfach so aussieht. Wir haben ein neues Feld. Wir müssen ein paar Migrationen und so, worüber ich in nur einer Minute reden werde. Gehen wir weiter und fügen Sie unser nächstes Feld hinzu. Lassen Sie uns einen Link zu einer anderen Wag Tail Seite hinzufügen. Jetzt haben wir nur die eine Wag Tail Seite, also wird das jetzt nicht super anwendbar sein, aber wir werden sehen, wie das funktioniert. Also lassen Sie uns eine Schaltfläche erstellen. Und dafür werden wir Modelle dot Fremdschlüssel verwenden. Wir wählen einen Fremdschlüssel aus dem WEG Tail Core aus. Punktseite Leer ist gleich true. Wir werden sagen, dass das optional ist. Nein ist gleich wahr, so dass es absolut nichts in der Datenbank haben kann. Lassen Sie uns dies einen verwandten Namen von nur plus im Grunde den verwandten Namen verlassen. Zum größten Teil. Hilfetext wird Live, dass up sein. Wählen Sie eine optionale Seite, um zu diesem Link wird für R C t eine Schaltfläche sein. Wir wissen nicht wirklich, wie das im Moment aussieht, aber ich zeige dir ein wenig und wir brauchen noch einen hier drin, nur um Django zu befriedigen , denn wieder arbeiten wir noch mit Django hier am Löschen. Was tun wir, wenn das, mit dem Paige das verknüpft wird, gelöscht wird? Was wir sagen werden, Modelle Punkt setzen alle und lassen Sie uns etwas Schaltflächen-Text wieder erstellen. Dies wird nur reguläres Char-Feld sein, also Modelle dot chair Field geben diesem eine maximale Länge von 50, so dass der Schaltflächentext nicht zu lang sein kann. Lassen Sie uns einen Standardtext geben, obwohl Read more leer sein kann. Wir werden nein sagen. Dies muss immer gesetzt werden, auch wenn keine Schaltfläche ausgewählt ist, um zu sagen, dass dieser Button Text ausgewählt werden muss. Es muss gefüllt werden und lassen Sie uns einige Hilfe Text Button Text hinzufügen und Sie werden sehen, wie all das aussieht, wenn wir nur ein wenig weiter kommen. Nun, schließlich, wollen wir hier ein Bild hinzufügen. Lasst uns Banner-Hintergrund machen. Das Bild ist gleich den Modellen aus. Es ist ein weiterer Fremdschlüssel, aber dieses Mal werden wir mit Wag Tails verknüpfen. Bilder Punktbild. Dies ist das Standardbild Wenn Sie also ein benutzerdefiniertes Bildmodell verwenden, verwenden Sie hier einen anderen Wert. Aber das sind wir nicht. Wir werden nur Wag Tails Standardbilder verwenden, also werden wir zu diesem Link verlinken. Leer ist gleich false, aber no ist gleich true. Das bedeutet, dass in der Datenbank dieses Feld die Spalte Banner-Hintergrundbild leer sein darf und leer bedeutet Wenn Sie die Seite speichern, muss sie tatsächlich einen Wert darin haben. In der Datenbank kann dies also nichts haben. Aber wenn Sie das Formular ausfüllen, muss es etwas haben. Das ist der Unterschied, dass verwandter Name gleich ist. Und Cousin wollte das wegwerfen. Hilfstext das Boehner Hintergrundbild, nehme ich an, ist das, was wir sagen können und auf Löschen. Was wollen wir zu dio? Nehmen wir an, Modell ist Punktsatz Nr. Jetzt gehen wir weiter und speichern Sie das Öffnen Sie unser Terminal. Es wurde neu gestartet. Alles sieht in Ordnung aus, aber wenn wir Ihren Browser öffnen, werden wir sehen, wenn wir unsere Seite aktualisieren. Es steht, dass es keine solche Spalte gibt. Home ist die APP. Startseite ist der Klassenname. Leadtext ist der Spaltenname in einer Datenbank. Wie machen wir diese vorhandene Datenbank? Nun, wir werden nichts mit der Datenbank machen, wir werden Django das für uns erledigen lassen. Und so ist das wirklich, wirklich einfach. Alles, was wir tun müssen, ist klar. Lassen Sie los. Lassen Sie uns Python tun, um Dot Pie Migrationen zu verwalten. Und was das tun wird, ist wirklich nur eine Reihe von Anweisungen zu erstellen, wie wir unsere Datenbank umstrukturieren wollen oder wie wir die Datenbank ändern wollen. Also machte es eine neue Migration für zu Hause namens 0003 auto blah, blah, bla, bla Bunch Nummern da drin. Und wenn wir unseren Editor öffnen, gehen Sie in unsere Migrationsdatei, sehen wir 0003 Auto, bla, bla, bla. Und als eine Reihe von Anweisungen hier drin musst du das ganze Zeug nicht wissen. Django erledigt all das für dich, was wirklich, wirklich nett ist . Aber an diesem Punkt haben wir nur eine Reihe von Anweisungen. Wir haben unserer Datenbank noch nicht angewiesen, diese Anweisungen zu verwenden. Unser nächster Schritt wird also Python Dot Pie verwalten, meine große, und was das tut, ist, dass es die gesamte nicht verfolgte Migration benötigt, also wird es speichern, welche Migrationen bereits in der Datenbank angewendet wurden. Das wird sagen, 00003 Auto in der Home-App wurde nicht ausgeführt. Lassen Sie uns das laufen. Lassen Sie uns alle Anweisungen nehmen, die wir hier sehen, und das ändert die Datenbank. Und so lassen Sie uns das tun. Er hatte betreten. Die Migrationen wurden ausgeführt. Okay, und jetzt können wir unseren Service erneut ausführen. Lassen Sie uns Python verwalten. Ich führe Server 0 8000 Öffnen Sie einen Browser wieder, Geben Sie uns eine Aktualisierung und unsere Seite lädt. Aber wir haben ein Problem. Wir wollten Lead-Text haben, ah, Button, wo wir eine andere Wag Tail Seite, einen Button Text und ein Hintergrundbild auswählen konnten . Und dann, wenn das auftaucht, ist es nicht in Werbung. Es ist nicht in den Einstellungen. Es ist jetzt nicht in Inhalt. Warum ist das? Nun, es gibt tatsächlich einen guten Grund dafür, nur weil Sie Felder in Ihrem Modell festgelegt haben. Nur weil Sie Ihre Datenbank ändern und einige Daten speichern möchten, bedeutet dies nicht unbedingt , dass diese Daten oder dieses Feld immer verfügbar gemacht werden sollen. Vielleicht möchten Sie einige Daten hier, die nur programmgesteuert geändert werden können, und so, weil keine Web-App auf dem Gesicht dieses Planeten. Ich kann dir sagen, was du für Lee vorhast. Du weißt, was du vorhast. Dies wird keines dieser Felder für uns enthüllen. Also müssen wir jetzt diese Felder und in Wag Tail entlarven. Das ist wirklich, wirklich einfach. Also auf jeder Seite und ich werde einfach hier nach oben scrollen, können Sie sehen, dass ich noch auf der Homepage bin. Auf jeder Seite erhalten wir Content-Panels ist gleich Seite Punkt Inhalt Panels. Dies ist eine Seite Klasse von Wag Tail zur Verfügung gestellt, die uns unseren Titel gibt und was auch immer Standardwerte weg warten bis will uns geben. Und das sind die Inhaltsfelder. Und so werden wir einfach sagen: Geben Sie uns die vorhandenen Content-Panels. Außerdem fügen wir eine Liste an. Jetzt haben wir hier verschiedene Paneltypen, also müssen wir sicherstellen, dass wir den richtigen verwenden. Wenn wir ein Feldfeld verwenden, das nur für regulären Text ist. Wir haben hier einen Leittext, und das ist nur ein normales Textfeld. Warte bis wird herausfinden, dass es ein Char-Feld ist und es sollte nur eine Textzeile sein. Es ist eine normale HTML-Texteingabe, die nächste für eine Schaltfläche wird ein Auswahlfeld sein und wir müssen diese in nur einer Sekunde importieren. Und das ist alles, was wir didieren. Und so passt dieser Lead-Text zu diesem Lead-Text hier oben und dieser Button passt genau zu diesem Button . Also, jetzt müssen wir hinzufügen. Aber in Text und Banner-Hintergrundbild, lassen Sie uns voran und fügen Sie ein weiteres Feld Panel. Feldbedienfeld-Schaltflächentext ist, was es genannt wurde. Und dann werden wir ein letztes Bild Auswahl Panel Banner Hintergrundbild hinzufügen. Jetzt, wenn wir weniger sparen und schauen Sie sich unser Terminal wird sich beschweren. Ja, hier steht, dass Feldfelder nicht definiert sind. Wenn Sie das jemals sehen, sagt es nur, dass im Grunde das, wonach Sie suchen, noch nicht in Ihre Seite oder in Ihre Python-Datei importiert wurde . Lassen Sie uns voran gehen und importieren Sie diese von der Wartezeit. Sagen Sie Dot Admin Dot Edit-Handler, dass diese Panels diese Luft genannt Edit-Handler Lassen das Feldfeld importieren und V s Code ist nett genug, um zu versuchen, dies automatisch für mich zu fühlen Feldfeld und Seitenauswahlfeld und das Bildauswahlfeld tatsächlich nicht kommen aus Edmund bei Handlern. Es kommt von wayto Dot Bilder Dot Edit-Handler Import Bild Chooser Panel sagen, dass es so aussieht, als ob alles hier nominell funktioniert, was eine gute Nachricht ist. Wenn Ihr Server aus irgendeinem Grund gestorben ist, müssen Sie ihn nur erneut ausführen. Lauf einfach. Python hat es geschafft. Ich führe Server 0000 8000. Gehen wir zurück und aktualisieren Sie Ihre Seite und schauen Sie sich das an. Wir haben Lead-Text Button Button Text und ein Bild. Das ist ziemlich nett. Also werden wir unseren Heimtitel in Rakete und Wartung ändern, weil das ist, worum es auf dieser Website geht. Raketen aufrechterhalten. Lassen Sie uns die schmutzige Arbeit erledigen. Sie konzentrieren sich auf den Start in den Weltraum. So etwas. Ein Knopf. Das ist ziemlich nett. Dies gibt uns ein so genanntes Seitenauswahlfeld. Wenn wir also mehr Seiten hätten, könnten wir mehr erkunden. Davon werden wir in Zukunft noch mehr sehen. Wir haben momentan nur die Homepage, also brauchen wir das überhaupt nicht. So ist es klar, dass die Auswahl der Schaltfläche Text. Wir sagten, es muss immer da sein, und der Standard ist mehr lesen und ein Banner-Hintergrundbild. Ich werde hier ein neues Bild hochladen. Hit, lade Cool hoch und lass uns voran gehen und diese Seite veröffentlichen. Jetzt, wenn wir das Leben sehen, aber nichts ist wieder passiert, Wade sagen ist kein 10-Minuten-Website-Content-Management-System. Dies ist für benutzerdefinierte Websites, und warten Sie an diesem Punkt wieder, bis Django und Python nicht wissen, wonach Sie suchen. Hier gibt es kein Thema vor der Trotzung. Das ist genau das, was Warten bis kam mit. Also jetzt müssen wir gehen und unsere Homepage selbst bearbeiten. Also öffnet es unseren Redakteur. Ich werde den V-Code öffnen. Gehen wir weiter und schließen die Akte. Wir brauchen sie nicht. Und wenn wir in unserer Home-App schauen und dann in unserem Template-Verzeichnis dort drin, haben wir einen Home-Ordner, der eine Homepage und eine Willkommensseite hat. Die Startseite ist die, die wir hier bearbeiten möchten. Es erstreckt sich von basierend auf HTML. Wir werden mehr über basierend auf HTML sprechen. Ich glaube, in der nächsten Lektion wird statisch laden. Es hat eine Body Classing hier, einige zusätzliche CSS, wenn wir das wollen und wo wir unseren Hauptinhalt setzen wollen. Also nur als Beispiel, lasst uns diese H one hallo Welt machen und alles, was wir tun, ist, diesen Inhalt zu überschreiben, denn vor dem, was wir hatten, war es auch Zuhause. Welcome Page wurde all das Zeug hier eingeschlossen. Das wollen wir nicht. Also sagen wir einfach „Hey“, überschreiben Sie es, speichern Sie es. Miss Refresher Page sagt Hallo, Welt. Also jetzt bearbeiten wir tatsächlich unsere Homepage-Vorlage an dieser Stelle, was ziemlich gute Neuigkeiten ist. Lass uns weitermachen und ein paar andere Sachen hier drin loswerden. Wir brauchen kein zusätzliches CSS oder eine Körperklasse. Wir könnten beschließen, das Ah einzuführen, etwas später. Bringen Sie das ein wenig später wieder ein. Aber im Moment brauchen wir das nicht. Wir müssen nur den Hauptinhaltsbereich ändern und da wir das statische Tag nicht verwenden , können wir das loswerden. Wir werden ein wenig mehr über statische ein wenig die Straße hinunter sehen. Also lassen Sie uns sehen, wie wir den Seitentitel bekommen können. Also wollen wir Hallo Welt ändern, um zu sagen, Raketenwartung. Das ist der Titel dieser Seite Raketenwartung. So konnten wir einfach Lockige Klammer, geschweifte Klammer Seite Punkt Titel. Und wenn wir unsere Seite hier aktualisieren, sagt Raketenwartung, ist das ziemlich nett. Gehen wir zurück und lassen Sie uns sehen, wie einige unserer Lead-Text aussieht, also Seite Punkt Lead Tax. Wenn du dich fragst, Caleb, wo bekommst du einen Leittext? Wenn du dich fragst, Caleb, Woher bekommst du den Titel? Gehen wir zurück zu unseren Models. Lead-Text wird hier definiert Da wir uns also auf einer Seitenvorlage befinden, können Sie Seitenpunkt verwenden Das ist das Seitenobjekt, und dann können Sie Lead-Unterstrich Text verwenden. Das ist unser benutzerdefiniertes Feld hier. Lead-Text Und wenn du dich fragst, okay, liebe okay, ja, das ergibt Sinn. Aber woher hast du den Titel? Das ist eine tolle Frage. Warte Till kommt mit vielen Leckereien, die bereits eingebaut sind. Wenn ich also mit der rechten Maustaste hier klicke, gehe zur Definition. Nicht jeder Editor hat diese Funktion übrigens, aber das tut es, was wirklich schön ist. Sie können immer auschecken Der Quellcode ist gut, erhalten Hub dot com Schrägstrich wag Schwanz Schrägstrich wag Schwanz. Dies ist die Seite, die wir verwenden, und es kommt bereits mit einem Titelfeld. Es hat ein reguläres Ladungsfeld mit einem ausführlichen Namen. Hilfetext mit maximaler Länge Es hat einen Entwurf Titelschnecke. Es hat eine Reihe anderer Dinge hier drin, aber wir haben Titel, weil wir diese Klasse in unserer Python-Klasse verwenden. In der Welt von Python können wir von anderen Klassen erben und alle Leckereien bekommen, die uns geben werden. In diesem Fall erben wir Waggles-Seitenklasse, und es kommt mit Titel , der ziemlich genau dasselbe ist, wie wir sagen, Titel ist gleich char field, yada, yada, yada alle Felder dort und dann Zugriff auf sie auf ihre Vorlage mit Seite Punkt Titel. Ordnung, sagen wir das und sehen, was unser Leittext sagt. Sieh dir das an. Wir müssen Text dort löschen. Es ist winzig und es ist nicht alles gestylt, aber es zieht jetzt in unsere benutzerdefinierten Felder. Alles klar, was ich hier tun werde, ist, das zu löschen und ich werde in eine Paste in der Front und so, und dann gehen wir auf Ebene in der Warte bis Template-Teil. Ordnung, InOrdnung, also habe ich gerade ein paar Front-End-Zeug dort eingefügt. Ich habe nichts mit der Wag Tail Arbeit gemacht, die wir noch gemacht haben. Also, wenn ich das vorschau ja, sieht es nicht toll aus. Wir fügen das Styling und das Zeug später hinzu. Ich glaube, es ist in der nächsten Lektion. Wir werden das ganze Styling hinzufügen, also sieht das wirklich gut aus, aber jetzt wollen wir mit einigen dieser Logik arbeiten. Also, wie unser Seitentitel hier oben sollte sein, was auch immer unser Seitentitel eigentlich ist, so können wir geschweifte Klammern für den Schnurrbart Syntex Titel verwenden . Wir haben hier einen Leittext. Wir können Seite Punkt Lead-Text tun. Wir haben Button SMS hier können wir tun, tun tun tun tun tun tun tun tun tun Seite Punkt Taste Unterstrich Text und Sie fragen, wo ich die eine von, die kommt aus, aber in Text Wir haben auch Text hier gelogen , der darf leer sein, was bedeutet, dass dies optional ist, also müssen wir sicherstellen, dass dies optional ist. Jetzt können wir einige if-Anweisungen hier tun, wenn Seiten-Punkt-Lead-Text und wenn und das ist nur normale Django-Template ing, wissen Sie, wenn Ihr brandneuer Zeh zu Django und wag Tail, das ist im Grunde, wie wir Logik in auf unserer Seite. Wir verwendeten eine geschweifte Klammer, gefolgt von einem Prozentzeichen, und für das Ende unserer Logik verwenden wir Prozentzeichen und dann geschweifte Klammer. Und wenn wir jemals nur Informationen anzeigen wollen, verwenden wir nur geschweifte Klammern zusammen. Also lasst uns weitermachen. Vorschau auf diese. Wir können Sie Raketenwartung sehen. Lassen Sie uns die schmutzige Arbeit erledigen. Wir müssen überprüfen, ob diese Schaltfläche tatsächlich existiert. Setzen Sie das Mädchen und vielleicht ein Hintergrundbild. Also, bevor wir sagen, dass es eine Schaltfläche, lassen Sie uns voran gehen und tun, wenn Seite Punkt Taste und wieder, Ich habe gerade, dass von tun zu tun oder Fremdschlüssel. Und ich werde das erfinden, weil es so schöner aussieht. Und für den Link, wir geben Ihnen Seite Punkt Button, dass Sie aus sind, weil Button ein Fremdschlüssel ist. Dies wird also zu einer anderen Seite verlinken. Vielleicht ist es Seite I D. Nummer vier. Darauf wird verlinkt, denn so funktionieren Fremdschlüssel normalerweise. So wird wieder nachschlagen Seite I d. Nummer vier mit diesem Seiten-Punkt-Knopf, und dann wird er uns unsere u R l geben, was auch immer das jetzt sein wird, das wird nicht mit irgendetwas auftauchen. Also, wenn wir eine Vorschau der Seite, sind aber es geht tatsächlich weg, lassen Sie uns das ändern. Und lassen Sie uns einfach die Homepage veröffentlichen Angela. Es zeigt sich schwer zu sehen. Wir werden das in ein bisschen beheben, aber es erscheint und der Link. Wenn Sie unten links schauen, sagt lokalen Host Port 8000, das ist in der Tat, die Homepage. Schließlich müssen wir hier ein Bild setzen. Und so ist dies das erste Mal, dass wir mit Bildern arbeiten werden, Sicherlich nicht das letzte Mal, dass wir mehr über Bilder in der Tiefe sprechen, wie wir durch diesen Kurs Fortschritte . Das erste, was wir tun müssen, ist, dass wir laden müssen. Was das sagt, ist, Hey, wenn Sie diese Vorlage laden, Django, wenn Sie diese Vorlage laden, wissen Sie, dass es basierend auf HTML erweitert. Wir werden mehr darüber und Blöcke in der nächsten Lektion sprechen. Ah, und es gibt einen Abschnitt, in dem wir den genannten Inhalt überschreiben wollen, aber auch nur damit du weißt, wir müssen laden, Bilder erzählen, Tags, weil wir ein Tag verwenden, das Wag Schwanz gibt uns und das ermöglicht es uns, ein Template-Tag namens Image zu verwenden. Und wir sagen es als seinen ersten Parameter, welches Bild wir Ihnen wollen. Also lassen Sie uns Banner Hintergrundbild tun. Unsere zweite Option wird sein Wie wollen wir dieses Bild erstellen? Es wird das Bild beschneiden. Egal, was wir tun, wir wollen es mit bestimmten mit und Höhen füllen. Wollen wir es als eine maximale Höhe oder Max mit so etwas sagen? Wir werden später mehr darüber reden. Wieder möchte ich dir diese Art zeigen, nur um deine Füße nass mit Bildern zu bekommen und wir werden Phil 1600 von 800 als BG-Bild sagen. Und jetzt haben wir Zugriff auf BG-Bild als Variable. Also lasst uns geschweifte Klammern eingeben. BG Unterstrich Bild Punkt u R l Lassen Sie uns unsere Seite aktualisieren. Wir werden sehen, dass wir ein U R l hier oben haben. Wenn ich voran gehe und kopiere das in unseren Browser. Sieh dir das an. Es hat das Bild für uns gemacht. Es hat es zugeschnitten. Das war also ursprünglich ein quadratisches Bild, das ich glaube und wie es 1600 mal 800 ist und so einfach alles für uns gehandhabt hat, was wirklich, wirklich schön ist . Jetzt müssen wir dieses u R l nehmen und es als Hintergrund anwenden. Und so habe ich schon etwas Styling hier drin und ich möchte dieses Hintergrundbild hinzufügen, das Sie sind . Ich speichere diese Aktualisierung und wir vereinbaren, um zu sehen, dass die Bilder irgendwie da ein wenig wieder . Das Styling wird im nächsten Video kommen, ich glaube, wo das eigentlich anfangen wird, wie eine Website aussehen. Es gibt auch andere Felder, die wir unserem Modell hinzufügen können. Es gibt Dinge wie Stream fühlt, dass wir hinzufügen können Es gibt Validierung und Dinge, die wir hinzufügen können, die wir ein wenig später hinzufügen. Nur nicht jetzt. Zu diesem Zeitpunkt, was wir getan haben, ist, dass wir die Standard-weg sagen Homepage geändert haben, dass wir es für zusätzliche Felder gegeben haben , so dass es bereits mit Dingen wie Titel kommt. Wir haben gesagt, wir möchten Ihnen einen Lead-Text, einen Button Button Button Texte und ein Hintergrundbild geben. Nun, wenn Sie dies jemals anwenden und Sie ein Feldfeld entweder auf die Seitenauswahl oder die Bildauswahl anwenden . Ich zeige Ihnen, wie das in den Anzeigenmännern aussehen wird, wenn wir unsere Seite bearbeiten. Unsere Schaltfläche wird nun zu einem Drop-down-Menü auf allen Seiten in unserer Warte bis Website, und die Bildauswahl wird auch ein Dropdown. Von allen verfügbaren Bildern, die wir auf unserer Website haben. Das ist nicht wirklich das, was wir wollen. Das ist keine nette Benutzeroberfläche. Also, wenn Sie das jemals sehen, sind die Chancen, dass Sie wahrscheinlich nur das falsche Auswahlfeld verwenden. Feld-Panels sind ideal für nur normale Textseite Schuhe oder Panels sind ideal für ausländische. Schlüssel geht zu einer anderen Seite, wie wir hier sehen, Fremdschlüssel gehen zu einer anderen Seite, wir sagten, dies könnte jede wag Schwanz Seite sein, jede zukünftige wag Schwanz Seite, wir könnten eine swell ein anderes Textfeld und dann ein Bild -Auswahlfeld für unser Hintergrundbild. Und wieder das erlaubt es uns, Bilder irgendwie dynamisch zu wählen und hochzuladen, was wirklich, wirklich schön ist . Als nächstes gehen wir weiter und arbeiten mit der Basisvorlage und machen unsere Website tatsächlich wie etwasaussehen etwas 8. Mit der Basisvorlage arbeiten: in der letzten Lektion. Wir arbeiteten mit der Homepage und der Startseite Vorlage ein wenig, aber lassen Sie uns voran und tatsächlich Struktur basierend auf HTML-Vorlage gehen. Nun, wenn Sie nicht wissen, was die auf HTML basierende Vorlage ist, schauen wir uns das zuerst an. Also werde ich schließen die Dateien, die aus dem letzten Video geöffnet hatte öffnen Basispunkt-HTML und Sie können sehen, es ist in meinen Rocket Man Ordner Schrägschrägvorlagen. Wenn ich also alle diese schließe und dieses erneut öffne, können wir sehen, dass ich Rocketman-Vorlagen habe und dann auf HTML basiert. Und die Idee ist, dass jede einzelne Seite schließlich von einer Basisvorlage abgeleitet wird. Anstatt also HTML fünf Klasse node.js Titel Meta-Daten all diese anderen Sachen deklarieren zu müssen, müssen wir das nicht jedes Mal tun. Stattdessen können wir sagen, Hey, Hey, alles andere ist gut, es ist in Ordnung. Aber lassen Sie uns einfach diesen Inhaltsblock überschreiben oder lassen Sie uns einfach diesen Body Class Block überschreiben. Es gibt keine Notwendigkeit, JavaScript jedes Mal hinzuzufügen, weil wir es einfach in unsere basierend auf HTML hinzufügen können , und es weiß nur. Und so als Beispiel, wenn ich Homepage-Punkt-HTML öffne. Wir haben einen Abschnitt in hier Block Content genannt. Wir haben auch einen Abschnitt in unserem Basispunkt-HTML namens Blockinhalt. Und so passen diese beiden, was alles bedeutet, weil wir es gesagt haben. Es erstreckt sich basierend auf HTML. Alles, was sich innerhalb unseres Block-Inhalts befindet. All das Zeug wird überschreiben, was nicht hier ist. Es ist zufällig, dass momentan nichts drin ist, aber wir könnten ihm einen Standard geben. Alles, was wir tun müssen, ist Hallo Welt zu sagen, und dies wird automatisch über auf jeder Seite geschrieben, die diesen Block Inhalt Abschnitt verwendet . Es gibt also nur ein paar Dinge, die ich hier aufräumen möchte, nur um diese Website ein wenig besser zu machen . Wir werden nicht überprüfen, ob JavaScript aktiviert oder deaktiviert ist, obwohl Sie das behalten möchten. Wir werden uns keine Sorgen um den Titel oder die Beschreibung oder so etwas machen. Für den Moment haben wir ein globales Stylesheet, und das sucht nach statischen. CSS rocketman dot CSS Jetzt Vor ein paar Lektionen sahen wir das hier geladen sagt Laden statisch , und wir sagten, wie wir es nicht brauchen. Wir werden diese Zeit nicht nutzen. sind wir. Was das tut, ist, sagt Hey, in der verrückten Wag Dell'Apa, Sie haben irgendwo einen statischen Ordner, Was auch immer Sie es genannt haben, weil wir den Namen dieses Ordners ändern können. Wir können sogar festlegen, dass die Ordner, nicht lokal, auf Amazon drei oder digitalen Ozeanräumen oder so etwas gespeichert werden könnten. Aber was wir hier sagen, ist, den statischen Ordner zu überprüfen. Dann gibt es einen CSS-Ordner, und es gibt eine Datei namens Rocket man dot CSS. , Mal sehen,ob das tatsächlich existiert. Also in einem Rocket Man-Ordner haben wir ein statisches Verzeichnis, eigentlich nur statisch in genannt, was eine lustige Art ist, das zu benennen. Dann haben wir ein CSS-Verzeichnis, und wir haben CSS bootstrapped und Bootstrapped auf der CSS-Punktkarte. Das heißt also nicht Rocket Man in unserem Projekt, das heißt Bootstrap Dot CSS. Wenn Sie in Ihrem Projekt kein Bootstraping-Programm auf CSS haben,möchten Sie ein paar Lektionen zurückgehen und die Projektdateien herunterladen. Wenn Sie in Ihrem Projekt kein Bootstraping-Programm auf CSS haben, Ich habe diese Dateien bereits für Sie bereitgestellt, also müssen Sie sie nur kopieren und in Ihr statisches Verzeichnis einfügen. Also, wenn du die nicht hast, wirst du sie wahrscheinlich wollen. Und dann haben wir hier unten ein globales Javascript, also schauen wir uns nochmal an. Dies bedeutet, dass die Quellen statisch sind, wo immer das sein könnte. Wir wissen nur, dass es genau hier ist. Fuller hat Js genannt. Und das hier ist Rocketman Dot Js. Nein. Aus welchem Grund auch immer, ich habe beschlossen, diesen Index Punkt Js zu nennen, und das passt genau hier drin. Lassen Sie uns voran und geben Sie diesem eine schnelle Speicherung und eine Vorschau. Also werde ich die Datei speichern, gehen Sie zurück zu unserer Homepage und Walla. Sieht nicht schlecht aus. Wir haben hier nichts anderes zu zeigen, und das ist okay. Aber wir müssen warten, bis Benutzerleiste, was wirklich schön ist, denn wenn Sie ein Kind hinzufügen möchten, Seite hat diese Seite hinzugefügt, die erkundet oder der Wag sagt einem Mann, dass Sie all diese Dinge tun können, und das erscheint nur, wenn Sie die Admin. Und wenn das Warten bis Use eine Bar aktiviert ist, die genau da ist. Also, wenn Sie das jemals loswerden wollten, löschen Sie einfach diese Speicheraktualisierung und diese Benutzerleiste verschwindet. Ich mag es, da zu sein, obwohl es ziemlich praktisch ist. Lass uns weitermachen und einige Sachen aufräumen, die wir auf dieser Website nicht brauchen. Aber, weißt du, es könnte für dich in der Zukunft nützlich sein. Wenn Sie also jemals Ihre Körperklasse ändern möchten, sollten Sie diese Blockierung hier beibehalten. Denn zum Beispiel wenn wirzum Beispielauf unsere Homepage gehen, könnten wir das hier reinwerfen und wir könnten diese Homepage so etwas nennen. Und das wird dies im Wesentlichen tun, wenn die Homepage geladen wird. Aber für diese Website brauchen wir das nicht, weil diese Website sehr einfach ist. Also werde ich das loswerden, nur weil wir es nicht brauchen. Und dann für unseren Content-Bereich möchte ich das eigentlich nur in eine Hauptelement-Domäne einbinden. Geben Sie uns eine Vorstellung von Inhalten. Ah, der Klassiker Mache hier ein paar Bootstrap-Klassen. Also, Containermarge, warum? Zugang für Und die Rolle wird Haupt schön und einfach sein, und unsere Inhalte werden alle innerhalb von dort leben. Gehen Sie voran und schauen Sie sich unsere Seite an und oh, okay. Nun, diese Art von Broker-Banner, Sie wissen, was wir tun können, ist, dass wir hier tatsächlich einen neuen Block erstellen können. Lassen Sie uns einen neuen Block namens Banner So Block Banner erstellen und standardmäßig wird nichts drin haben . Und lassen Sie uns den Block beenden. Und was das tun wird, ist es uns zu erlauben, diesen Block auf ihrer Homepage zu verwenden, und es wird nicht mit dem Bootstrap-Styling umwickelt werden, das mit dem Hauptelement kommen wird . Wir werden das eigentlich umgehen und es hier reinspritzen, anstatt hier hinein. Und das ist ein wirklich netter Teil. Alles, was wir wirklich tun müssen, ist dieses ein Wort hier zu ändern, zwei Banner. Das stimmt also jetzt mit dem überein, und am Ende unseres Blocks können wir ihm einen Namen geben, oder wir müssen ihren Namen nicht nennen. Ich mag es, es zu benennen. Manchmal nenne ich es nicht. Es ist irgendwie optional, aber wir werden austauschen, wenn Do Banner auch. Und wenn wir das zusammenpacken, können wir Block Banner ein paar Sachen darin sehen. Es sind 25 Zeilen Code da drin, und dann beenden wir unser Blockbanner. Lassen Sie uns voran und speichern, dass aktualisieren Sie unsere Seite jetzt unsere Banner oben und wir haben einen Inhalt Abschnitt hier unten. Wenn wir also unsere Seite untersuchen, können wir sehen, dass wir hier einen Jumbotron haben. Das ist unser Banner. Das ist Teil dieses Teils hier oben. Ah, und dann haben wir einen Hauptabschnitt nach unten scrollen. Wir haben hier unten einen Hauptabschnitt. Diese gelb hervorgehobenen Teile. Aber da ist nichts drin. Aber das ist, wo wir unsere zukünftigen Inhalte setzen werden. Das funktioniert also mit Based on HTML, wir haben die Homepage auch ein wenig modifiziert. Zu diesem Zeitpunkt können wir auch auf unsere Homepage zurückkehren und ein wenig aufräumen. Wir verwenden die Willkommensseite überhaupt nicht. Wir können tatsächlich ihr gesamtes Projekt nach Willkommensseite dot html durchsuchen, und wir haben eine hier drin, die von unseren Site-Paketen in einer virtuellen Umgebung kommt, die nur die Standardumgebung ist, eine, die mit Wag Tail und die andere kommt , die standardmäßig mit Wakil geliefert wird. Das ist nicht in unserem Projekt, nicht das, was wir hier auf der linken Seite sehen. Also lasst uns voran gehen und löschen. Das brauchen wir nicht mehr, und da gehen wir. Wir haben jetzt eine Homepage mit einem Banner. Es hat ein Hintergrundbild. Sieht ziemlich schön aus. Wir haben einen Titel mit bester Lead-Text und wir haben einen Knopf. Ein Aufruf der Schaltfläche „Aktion“. 9. Services: bis zu diesem Punkt haben wir eine Homepage erstellt. Wir haben die basierend auf jeder E-Mail-Vorlage geändert, und wir haben einige neue JavaScript und CSS geladen, und jetzt wollen wir einen anderen Seitentyp hinzufügen. Also lassen Sie uns voran und erstellen Sie ein paar Service-Seitentext. Nein, dafür werden wir es brauchen. Quelle Sind rocketman ven aktiviert worden? Holen Sie sich hinein, wenn Sie Pip verwenden und es ist nur Pippen Show. Wenn Sie Docker verwenden, ist es docker genau I t. Was auch immer Ihr Containernamen ist. Bash, das bringt dich rein und dann kannst du rennen. Dann kannst du weglaufen. Python hat es geschafft. Ich führe Server für 8000 40.000 nur den Standardport, den US-Entwickler neigen dazu, zu verwenden. Es ist eigentlich nichts Besonderes daran. Und jetzt, wenn wir Ihre Seite aktualisieren, okay, unsere Server funktionieren. Und an dieser Stelle wollen wir tatsächlich eine neue App erstellen. Also könnten wir theoretisch, ich verstehe nicht, warum wir es nicht konnten. Wir könnten alle unsere Seiten in Schrägschrägmodelle einfügen, nicht in Kuchen. Das ist eine komische Namenskonvention. Wir sagen, dass alle unsere Seiten in den Home-APP-Dienste müssen in der gesamten Karte sein . Kontaktseite muss sich in der Home-App befinden. Verschiedene Seite muss in der Home-App sein, die überhaupt keinen Sinn macht. Also werden wir eine brandneue App erstellen, und das ist eigentlich nur ein Jangle Management-Befehle. Lassen Sie uns fortfahren und unseren Server abbrechen und wir werden tippen. Python hat es geschafft. Ich starte Dienste. Und wenn wir einen Blick in unseren Editor werfen, haben wir jetzt einen Ordner hier namens Services. Hat eine Reihe von Dateien in Ihren Ansichten. Testet Modelle fehlen Minute Dot Kuchen und Migrations Ordner mit einer leeren und es Dot Pie Datei dort auch. Das ist eine Standard-Jingle App. Was ich tun werde, ist ein paar dieser Dateien zu löschen. Wir brauchen keine Aussicht. Wir brauchen keine Tests und wir brauchen keine Männer. Mein Schwanz kümmert sich um eine Menge davon für uns und die Tests. Wenn Sie Ihren eigenen Test schreiben möchten, können Sie das. Wir werden das nicht tun, weil wir nichts tun super verrückt Mit diesem Wag Schwanz Seite, wird der Rest ein Modell dot pie sein und wir werden auch unsere Basis oben hoch öffnen wollen . Nicht das, das auf Kuchen basiert. Und wo wir unser APS Kleid darunter installiert haben. Hier, gehen wir weiter und geben ihm Dienstleistungen. Vergessen Sie nicht, es in Apostrophe oder Zitate mit einem Komma zu setzen, da dies eine Python-Liste ist . Und dieser Name, all dies tut, ist, diesen Namen hier zu widerspiegeln. Dieser Name, diese beiden Namen müssen übereinstimmen. Also werde ich die Akte speichern, das geschlossen. Und ich bin wieder in Dienstleistungsmodellen, nicht Kuchen. Also, in einer normalen Django-App, wissen Sie, dass ich die Datei namens views dot pie gelöscht habe, eine unregelmäßige Django-App. Sie haben Modelle, Ansichten und Vorlagen. Nun, wir werden die Models-Datei behalten, aber die Ansicht, die wir nicht wirklich brauchen, mit einer Wag Tail Seite, weil eine Wag Tail Seite die Ansicht und das Modell zur gleichen Zeit kombiniert. Es ist eigentlich weniger zu verwalten, und meiner Meinung nach ist es eine wirklich, wirklich schöne Sache. Sie können alles, was auf einer Seite vor sich geht, in einer einzigen Datei im Vergleich zu einer Django-Anwendung sehen, Sie müssen zwischen Ihren Modellen und Ihren Ansichten wechseln. Wir werden auch aps-dot pie nur für eine gute Praxis zu halten. Behalten Sie Ihre innit dot pie Datei, die Python im Grunde anweist, die anderen Dateien hier einzubeziehen , auch wenn sie leer ist. Und behalten Sie auch Ihre Migrationen und die Leere Unit-Datei darin. Als nächstes gehen wir weiter und behandeln neue Seitenklassen. Wir wollen zwei neue Seiten erstellen, so Klassen-Service-Listing-Seite wird eine Seite sein. Wir haben dies noch nicht importiert, also lassen Sie uns passieren und lassen Sie uns Klassendienstseiten machen, nur eine Standardseite. Wir wissen auch nicht, was darin sein wird. Also lasst uns auch passieren. Das gibt es nicht. Dies ist keine Variable. Dies ist kein Import. Das gibt es noch nicht, also müssen wir sicherstellen, dass dies existiert. Also von Wag Tail Doc oder Punkt-Modelle importieren Seite. Und das ist wirklich alles, was wir brauchen, um zu dio. Also, jetzt, an diesem Punkt, könnten wir Python ausführen, hoch verwaltet, Migrationen machen. Wir könnten auch Python ausführen, eine Tortenmigration verwalten, und es würde eine Migrationsdatei erstellen, die die Service-Listing-Seite und die Service-Seite darin enthält . Und dann könnten wir anfangen, diese Seiten zu unserem Weg hinzuzufügen, zu sagen, dass Männer das noch nicht tun würden , obwohl wir zuerst ein paar Sachen dazu hinzufügen werden. Also unsere Service-Listing-Seite Lassen Sie uns voran und fügen Vielleicht wie ein Untertitel. So wissen wir bereits, dass Warte bis kommt mit dem Titelfeld Das ist innerhalb der Seite. Das brauchen wir nicht, weil es schon da ist. Lassen Sie uns aber einen Untertitel haben , und wir werden sagen, der Untertitel könnte ziemlich lang sein. Lassen Sie uns Modelle Punkt-Textfeld kann leer sein. Ja, wir werden sagen, dass dies im Grunde optional ist. Dies muss überhaupt nicht da sein. Wenn Sie also die Seite speichern, kann das Untertitelfeld leer sein? Ja, das ist es, was wir sagen. Wir werden sagen, maximale Länge von 500 Zeichen, so etwas. nun daran, Denken Sienun daran,wenn wir Läufer-Migrationen, dies wird nicht auf unserer Seite angezeigt, wenn wir gehen, um eine Seite zu bearbeiten. Ja, dies wird im Hintergrund sein, aber es ist nicht verfügbar, daher müssen wir es mit Inhaltsfeldern verfügbar machen. Wir tun dies, indem wir sagen, Content-Panels ist gleich Seitenpunkt-Content-Panels, also werden wir nehmen, was wag tails uns bereits geben. Das ist das Titelfeld. Wir wissen so viel, und wir werden eine Liste anhängen. Und hier drin wollen wir einfach nur ein Feldfeld für den Untertitel. Und wieder, dieser Untertitel Feldname entspricht diesem in den Zitaten. Und es spielt keine Rolle, ob es Zitate oder Apostrophe sind, die nur eine Art String-Typ sein müssen , nur als Beispiel, das es wechselt, es spielt keine Rolle. Sie haben beide perfekt funktioniert, also ist das cool. Also unsere Service-Listing-Seiten Jetzt werden wir einen Untertitel haben jetzt auf unserer Service-Seite. Wir werden ein bisschen mehr wollen. Dies wird eine Detailseite sein, und so auf ihrer Detailseite, vielleicht wollen wir eine Art von Beschreibung. Vielleicht wollen wir einen Link zu einer Art interner Seite wie ein Aufruf von Action Button oder vielleicht einen Link zu einer externen Seite, etwas, das außerhalb unserer Wag Tail Seite ist. Das wäre die U. R L. zu einem Call-to-Action-Button. Wir haben einen Action-Button genannt. Also brauchen wir jemanden, der dort schreibt, und das ist ah, es gibt uns auch ein Image-Service-Image, also wissen wir, dass wir fünf Felder hier drin haben. Die Beschreibung könnte also etwas länger sein. Lassen Sie uns also ein Textfeld anstelle eines Diagrammfeldes machen. Das ist der Unterschied. HR-Feld. Dieser wird in der Regel für kürzere Mengen von Text und Text verwendet. Feld wird für größere Textmengen verwendet. Leer ist gleich Waffenstillstand. Wir werden sagen, das ist optional und eine maximale Länge von 500 Zeichen. Jetzt haben wir eine interne Seite. Wir haben das schon mit der Homepage gemacht. Wir brauchen dies, um ein Fremdschlüssel zu sein, also Fremdschlüssel für jede Art von wag Tail Seite Wag Tail Kern Punkt Seite. Und das sieht tatsächlich viel aus wie von der Wechselkern-Import-Seite. Und wenn wir unseren Basispunktkuchen öffnen, können wir hier eine App namens Wag Tail Core. Also, was das tut, ist, dass es durch den Wag Tail Core schaut, und es sucht nach einem Seitenmodell. Das ist es, was wir in der Lage sein werden zu verknüpfen. Teoh Blank ist gleich wahr. Wir werden sagen, dass dies optional ist. Nein ist gleich true, so dass es als absolut nichts in der Datenbank nur ein No-Wert gespeichert werden könnte. Der zugehörige Name für diesen bestimmten Zweck ist nicht wichtig. Also verwenden wir einfach ein Plus-Symbol, Hilfetext wählen Sie eine interne, warten, sagen Paige und schließlich beim Löschen, um Jangles Bedürfnisse zu befriedigen. Wir sagen Models Dot Wächter. Wir könnten das tun, denn nein ist gleich dem wahren Sentinel ist erlaubt. Als nächstes haben wir eine externe Seite, also hat vielleicht jemand Aktion auf ihrer Seite aufgerufen, und diese Schaltfläche soll auf eine andere Website gehen. Vielleicht ist es App dot meine Website dot com statt nur meine Website dot com Schrägstrich anmelden. Wer weiß es? Dafür gibt es viele verschiedene Gründe. Das hier ist wirklich einfach. Das hier ist nur ein ul Feld. Ich werde sagen, leer ist gleich wahr und wir müssen nicht angeben, dass nein gleich wahr ist, denn wenn es um reguläre Textfelder geht, alles, was wir tun werden, ist es entweder eine leere Zeichenfolge hat oder es hat so etwas drin . Wir werden nicht sagen, es könnte Nein sein, das ist nur eine gute Jingle-Praxis. Wir haben hier einen Knopf Texan. Wir haben dies mit der Homepage als auch so Modelle Dutch Hartfield Blank ist gleich wahr. Wollen wir, dass dieser Schaltflächentext optional ist? könnten wir tun. Ich verstehe nicht warum. Was wir nicht tun konnten, können wir immer überprüfen, ob es gibt, aber im Text. Ansonsten geben Sie Standardtext an. Und weil es HR Field ist, machen wir eine maximale Länge von 50. Das ist ziemlich lang für Button, aber wir haben das und dann ein Service-Image. Dieser muss ein Bild sein. Also tun wir Modelle Punkt Fremdschlüssel, und dies wird zu wag Schwanz Bilder Punkt-Bild zu verlinken Also wieder, das geht auf die Warte bis Bilder App und sucht nach der Bildklasse. Wir verwenden kein benutzerdefiniertes Wartelbild. Wir könnten unser Projekt angeben, um eine benutzerdefinierte zu verwenden. Warte bis Bild, aber wir sind es nicht. Wir werden gerade das normale Warten bis Bild verwenden. Wir werden nein sagen, es könnte wahr sein, also könnte es absolut nichts in der Datenbank sein, aber leer ist gleich falsch. Wenn Sie also die Seite speichern, müssen Sie beim Löschen ein Bild auswählen. Und dies ist nur ein Beispiel dafür, wie diese Eigenschaftsnamen die Reihenfolge nicht wirklich ausmachen, während die 1. 1 da sein muss. Aber diese anderen diese Luft-Schlüsselwort-Argument, so dass es nicht wirklich wichtig ist, welche Reihenfolge dort in So weiter. Löschen ist gleich Modellen Punkt Ich sagte Nein Hilfetext. Dieses Bild wird auf der Seite „Service-Listing“ verwendet. Ich weiß nur, dass, weil ich das geplant habe und zugeschnitten wird, ich denke, es ist so etwas wie 570 Pixel mal 370 Pixel. Wir werden es wahrscheinlich auch auf dieser Seite verwenden. Ja, es wird abgeschnitten 5 17 Ah, auf dieser Seite, Da gehen wir, so etwas. Es ist nur hilfreich. Text ist, was er ist. Und natürlich brauchen wir einen verwandten Namen eines Pluszeichens, und das war's. Als nächstes müssen wir unsere Panels hinzufügen. Aber lassen Sie uns das in einer Sekunde machen, denn ich möchte Ihnen hier ein kleines kleines Ding zeigen. Also lass uns unseren Edmund öffnen und er läuft derzeit nicht. Lassen Sie uns Server 8000 Feldfelder nicht definiert ausführen. Okay, Cool. Das wird von Wag Tail gepunktete Männer Punkt erwartet und es Handler Import Feld Panel. Wir werden später mehr von diesen benötigen, die diese speziellen Fehlermodelle erfüllen werden. Dieser Fremdschlüssel ist nicht definiert. Ja, das liegt daran, dass das ein Tippfehler gewesen wäre. Modelle Punkt Fremdschlüssel. Da gehen wir. Verwandt. Wieder benannt. Das fängt nur all meine schrecklichen, schrecklichen Tippfehler zusammen. Benannt ist nur verwandter Name. Ich musste das manuell neu starten. Keine Fehler. Okay, cool. Also, jetzt öffnen wir unseren Admin. Wir haben eine Seite in hier, Wir haben Rakete Schergen, Wir können ein Kind Bage hinzufügen, und wir können eine Homepage hinzufügen, eine Service-Listing-Seite oder eine Service-Seite. Also lassen Sie uns eine Service-Listing-Seite hinzufügen. Oh, nein, wir haben eine 404 und das ist die Luft, die ich dir zeigen wollte. Der Wag Goldman wird versuchen, dieses Problem anmutig zu lösen. Im Grunde, was das heißt, ist auf dieser Seite, dies verwendet eigentlich keine Daten aus der Datenbank. Dies wird nur durch alle registrierten APS gehen und nach Seiten suchen , die in diesem Fall , durch die Service-App gehen. Das ist der Name hier, Dienste AP und sucht nach einer Service-Seite und einer Service-Listing-Seite. Und so verwendet es eigentlich nichts aus der Datenbank, Aber an diesem Punkt klicken wir auf Service-Listing-Seite und es steht: Oh, nein, nein, etwas ist kaputt, weil es nach Daten aus der Datenbank fragt und es hat es noch nicht. Wir haben keine Migrationen vorgenommen. So wie auf der Homepage, werden wir einige neue Migrationen erstellen. Du bist es also, dass Python es geschafft hat. Ich mache Migrationen. Und wieder, dies wird nur Anweisungen für unsere Datenbank erstellen. Als nächstes müssen wir verwalten, dass Kuchen migriert, um diese tatsächlich auf unserer Website anzuwenden. Lassen Sie uns voran, Runner-Server noch einmal Auffrischungsseite und warten Sie darauf. Bam! Da ist es. Wir haben eine Service-Listing-Seite. Wir werden diese Dienste anrufen. Wir können ihm eine besondere Schnecke geben. Nennen Sie es Dienste, schätze ich. Und einen Untertitel. Hier sind alle Dienste, die wir auf Ihrer Rakete durchführen können, denn anscheinend ist dies ein Start mit viel Geld. Lassen Sie uns voran und veröffentlichen, dass und wir können dies sehen, und wir sehen Vorlage existiert nicht. Nun lassen Sie uns das nur für eine Sekunde halten, um in nur einem Moment darauf zurückzukommen. Ich lasse den Tab offen, wenn ich hierher zurückkomme. Ich kann jetzt tatsächlich auf meine Seiten gehen. Ich habe Raketenwartung, eine Seite darunter ist die Services-Seite. Alle Ihre Seiten sollten unter Ihrer Homepage leben, und dann haben wir eine Schaltfläche zum Bearbeiten. Also gehe ich zurück. Wir haben Arrow, weil es jetzt untergeordnete Seiten gibt und wir die Dienste sehen können. Jetzt gehen wir weiter und fügen Sie einen Kinder-Pager hinzu. Das ist Atty Service Page. Aber wenn wir uns das ansehen, zeigt das nichts, was wir tatsächlich hinzugefügt haben. Wir haben eine Beschreibung, interne Seite, externe Seite, aber in Text und sein Service-Image hinzugefügt. Aber wir haben noch keine Panels hinzugefügt. Warte Till und Django, sie sagen, im Grunde, du hast diese Felder, aber wir wissen nicht, ob du sie alle exponiert haben willst, also musst du sie auf eigene Faust aussetzen, denn wieder wir kennen die Logik hinter Ihrer Anwendung nicht. Also müssen Sie das schaffen, und das ist eigentlich eine sehr bevorzugte Art, Dinge zu tun. Also bin ich nur in Dienstleistungen Modelle, die Kuchen. Ich bin unter der Serviceseite und hier werde ich Inhaltsfelder hinzufügen ist gleich Seitenpunktinhalt-Panels , plus eine Liste so wieder. Wir werden nur sagen, Hey, Hey, lasst uns hier ein paar Inhaltspanels finden. Aber lasst uns auch greifen, dass Wag Schwanz einen Titel eins, der der Standard kommt mit gewackelt. Oh, und jetzt müssen wir ein paar davon hinzufügen. Also lasst uns weitermachen. Kopieren Sie alle, ich hier zitiert. Also habe ich eine Liste von Kommentaren zu referenzieren Dieser Fall, es wirft tatsächlich Probleme für mich. Also habe ich hier eine interne Seite, richtig? Ich möchte ein Feldfeld für eine interne Seite verwenden. Ist das richtig? Ich habe auch eine Beschreibung für die interne Seite. Nein, dies ist ein Fremdschlüssel für eine Seite. Ich möchte, dass dies ein Seitenauswahlfeld ist. Sonst werden wir eine Dropdown-Liste aller unserer Seiten bekommen, und das ist keine Möglichkeit, das Leben zu leben. Also Seitenauswahl Panel und lassen Sie uns voran und fügen Sie ein reguläres Feld Panel für unsere Beschreibung . Als nächstes haben wir eine externe Seite. Dies ist nur ein ul Feld. Also externe Seite ist unser URL-Feld direkt in hier sind Sie alle Feld ist wirklich nur ein Textfeld mit extra ul Validierung, so dass ein Feldpaddel sein könnte, weil es ein reguläres Feld ist. Als Nächstes haben wir wieder Schaltflächen-Text. Dieses ist nur ein normales Textfeld. Das können wir hier oben sehen. Es ist nur ein Char-Feld, und dann haben wir ein Service-Image. Dies ist ein anderer, weil es ein Fremdschlüssel für ein Bild ist, das wir nicht herunterklappen möchten. Liste aller Bilder, die wir auswählen können. Wir wollten eigentlich einen Bildauswahlmotil wie ein kleines Pop-up haben und ermöglicht es Ihnen einen on the fly hochzuladen. Also lassen Sie uns ein Bildauswahlfeld hinzufügen. Und an diesem Punkt, wenn ich das speichere, wird sich mein Terminal so schwer beschweren, dass ich Importe vermisse. Da ist es. Bezahlte Schuhe oder Panels, die nicht definiert sind, wird das Gleiche über das Bildauswahlfeld sagen. Gehen wir wieder nach oben. Lassen Sie uns bezahlte Schuhe oder Panel hinzufügen. Wir wissen aus ein paar Lektionen Gehen Sie, dass das Wag Tail Image Chooser Panel nicht vom Admin bei Anders kommt . Es kommt aus dem Bild bei, und es gibt Import-Bild-Auswahl-Panel, und das ist nur so, dass alle Ihre Bilder bleiben die gleichen Bilder, Luft Art eine Kernsäule hinter Wag Tail. Lassen Sie uns voran und sagen, dass Aktualisieren Sie unser Terminal. Oh, kein Modul namens Warte bis Bild. Weil das ein Tippfehler ist, seine Bilder. Das ist Plural. Und da gehen wir. Wenn ich diese Seite aktualisiere, wenn ich eine neue Serviceseite hinzufügen möchte,können Sie sie hier oben sehen. Wenn ich diese Seite aktualisiere, wenn ich eine neue Serviceseite hinzufügen möchte, Ich habe jetzt einen Titel, eine Beschreibung auf einer internen Seite. Ich kann eine andere Seite auswählen, und Sie können tatsächlich alle Seiten in Ihrer Website durchqueren. Auf diese Weise können wir eine externe Seite hinzufügen. Also vielleicht möchte ich, dass dies zum Space x dot com geht Aber im Text, schau dir dieses Service-Image an. Ich werde eine verwenden, die ich bereits hochgeladen habe, genannt Rocket Image. Und wie wird der Dienst genannt? Fügt einen Reinigungsservice hinzu. Ich schätze, wir werden putzen. Die Rockets werden sicherstellen, dass es schön und glänzend und weiß und glatt ist, reibungslos und all das gute Zeug und dann eine Beschreibung. Hier drin. Dies ist jetzt ein Textfeld, so dass wir mehrere Zeilen haben. Wir können das hier sehen, würden Sie tun, um zu tun. Wir können mehrere Zeilen zu machen. Das ist ziemlich nett. Ich bin genau so, ähm, warmer Ipsum-Text da drin. Lassen Sie uns voran, veröffentlicht Seite und View Live, und wir werden das gleiche sehen. Diese Vorlagen sind noch nicht vorhanden. Nun, was dies tut, ist die Suche nach einer Service-Seite, und es erhält tatsächlich den Namen automatisch. Also, wenn wir hier runtergehen, können wir sehen, dass das eine Service-Seite ist. Warten Sie, bis Njenga klug genug war, um zu wissen, dass dies nicht die Services-App ist. Also wird es in einem Ordner namens Services suchen und die Serviceseite wird uns in Schlangenfall ändern , Also wird es Service Unterstrich Seite Punkt html gehen. Das ist die Standardvorlage wird jetzt suchen. Wenn wir zu unserem Fehler zurückkehren, können wir tatsächlich sehen, ob ich diese größere Vorlage machen kann nicht existiert. Wir haben eine nette CRL. Also war ich Website dot com Slash Dienste Slash Reinigung, und wir können tatsächlich sehen, wo es versucht, das zu bekommen. Diese Vorlage von so ersten Platz es sucht ist in unserem Rocketman-Projekt in Vorlagen in Dienstleistungen und dann Service-Seite. Also lassen Sie uns all diese schließen. Wir gehen in eine Rakete Mann, wir haben unsere Vorlagen hier drin und es ist auf der Suche nach einem Ordner namens Services und einer Datei namens Service Seite dot html. Also, das ist der erste Ort sucht nach den zweiten Plätzen, wird in der Home-App suchen, weil wir eine App namens zu Hause haben. Also wird es dort hineinschauen und dann wird in der Such-App suchen, nach der es suchen wird . Ich benutze Zuhause als Beispiel. Home hat einen Ordner namens Templates und dann einen Unterordner namens Home und dann eine Homepage dort. Es ist also wirklich auf der Suche nach dem Gleichen. Nur dieses Mal sucht es nach Vorlagen, Schrägstrich Dienste Ordner und dann Service Seite Punkt HTML. Also statt zu Hause, wird es Dienstleistungen sein und dann Service bezahlt Schuss. HTML. Wir wollen das nicht da drin, weil das wirklich dazu beiträgt, zwei AP zusammen zu verschmelzen. Was wir letztendlich tun werden, ist, dass wir hier eine neue Vorlage wie diese erstellen . Eigentlich machen wir es jetzt. Dienstleistungen Service Seite dot html. Also habe ich meine Seite hier geteilt. Ich habe Service-Seite, die jeden Monat in der linken habe ich Homepage-Punkt html auf der rechten Seite und wieder, dass Service-Bezahlung nur unter Vorlagen, Dienstleistungen und in Service-Seite gelebt Vorlagen, . Genau das erwarten Wag Tail und Jangle. Jetzt müssen wir ein paar Dinge kopieren, die wir sagen, Hey, wir wollen unsere A typische basierend auf HTML-Datei verwenden, nur die generische. Fügen wir hier einen neuen Block hinzu und nennen wir ihn Inhalt ähnlich wie unser Banner. Aber wir wollen nur einige Inhalte dort und in unseren Inhalten hinzufügen. Lassen Sie uns Hallo von Service Seite dot html tun. Gehen wir zurück zu unserer Seite, wo wir diese Luft bekommen. Verkleinern Sie wieder. Aktualisieren Sie hallo von Service Seite dot html. Nun, in den nächsten Lektionen, werden wir mit dieser und auch mit der Service-Listing-Seite arbeiten, die Ihnen derzeit einen Fehler gibt. Wir werden mit beiden arbeiten und diese ziemlich schön aussehend machen, und wir werden mehr in die Template-Management-Seite der Dinge 10. Service-Seite: bevor wir weiterhin Funktionen und Datenfelder zu unseren Serviceseiten hinzufügen, lassen Sie uns tatsächlich diese Seiten etwas respektabel aussehen. Dies ist der Spaß Teil hinter aber Entwicklung, und es ist ziemlich wichtig, eine schön aussehende Website zu haben. Also, anstatt diese Seite zu haben, die nur Hallo von Service-Seite dot html sagt, lassen Sie uns voran und aktualisieren Sie das tatsächlich. Es sieht also wie ein richtiger Service aus, Pedro. Es fängt zumindest an, irgendeine Art von Form anzunehmen. Danach werden wir unsere Service-Listing-Seite aktualisieren. Also habe ich die Service-Seite hier geöffnet. Wie werden wir eine Service-Listing-Seitenvorlage hinzufügen, und wir werden das auch ein wenig schöner aussehen lassen. Erste Dinge zuerst. Wir müssen wissen, womit wir arbeiten. Während wir hier mit einer Service-Seite arbeiten. Wir haben eine Serviceseite. Wir haben Beschreibung, interne Seite, externe Seite, aber im Text haben wir Service-Image und einige Panels. Gehen wir rüber zu unserem Terminal und stellen sicher, dass das läuft. Lassen Sie uns also unsere Umwelt beschaffen. Also bin ich in einer Quelle, der Raketenmann, dann wurde ich aktiviert. Und da sind wir. Wir sind drinnen. Und dann hat es einfach Python geschafft. Ich betreibe Server auf Port 8000 und wenn ich zu meinen Werbemännern zurückkomme, können wir sehen, dass dies funktioniert. Ich kann meine Seite aktualisieren und es funktioniert. Es gibt keinen Fehler, wenn ich sage, dass es nicht läuft. Also lassen Sie uns unsere Service-Seite hier öffnen und lassen Sie uns den Titel und die Beschreibung nur als Beispiel erhalten . Also hier drin könnte das auch größer werden. Hier können wir Hallo von Seite Punkt Titel sagen und lassen Sie uns eine Beschreibung werfen auch hier. Beschreibung des Seiten-Punkts. Und als schnelle Auffrischung bekomme ich eine Beschreibung aus dem Modellfeld, dem Textfeld, das wir im letzten Video erstellt haben. Also habe ich diese Datei gespeichert und lassen Sie uns sie aktualisieren und wir können sehen, sagen Hallo von der Reinigung. Das ist der Service-Typ und eine Reihe von warmem ipsum Text, der füllt. Das ist genau das, was wir in unseren Seitentitel eingefügt haben, ist Reinigung und Laura MIPs, ähm, Text für die Beschreibung. Ordnung, InOrdnung, also habe ich hier nur etwas vorne und Zeug reingestellt, etwas HTML, ein bisschen CSS, und es macht die Seite wirklich , dass sie wie eine eigentliche Seite aussieht. Wenn ich also zu meinem Browser zurückgehe und auf Aktualisieren klicke, werden wir das sehen. Wir werden etwas in dieser Richtung sehen, aber haben ein Bild über die Rechte, den Seitentitel, eine Beschreibung und eine Schaltfläche, und das, aber muss irgendwo hingehen. Also lassen Sie uns voran und spüren Sie dies mit den Feldern, die wir bereits hinzugefügt haben. Wir wissen, wir haben Titelbeschreibung, interne Seite und externe Seite Ah, aber in Text und ein Service-Image. Also werden wir hier mit mehreren verschiedenen Dingen arbeiten. Also lasst uns einfach an der Spitze beginnen. Wir haben hier einen Seitentitel. Wir möchten den eigentlichen Seitentitel verwenden. Also, was ich tun werde, ist nur geschweifte Klammern, doppelte geschweifte Klammern zu verwenden . Er ist der Titel. Und für die Beschreibung werde ich dasselbe mit der Beschreibung machen. So Seite Punkt Beschreibung und diese nur mit geschweiften Klammern oder der Schnurrbart Art der Syntax umwickelt . Lassen Sie uns fortfahren und speichern Sie das und aktualisieren Sie unsere Seite. Wir können sehen, dass sich das schon zusammensetzt. Lassen Sie uns voran und arbeiten mit diesem Button Texte nur ein wenig. So wissen wir in unseren Modellen haben wir eine interne Seite und externe Seite und einige Schaltflächen-Text. Aber in Texas, der schnellste, den man hier abholen kann. Also lasst uns voran gehen und diesen Schaltflächentext ändern. So Seite Punkt Button Text. Aktualisieren Sie Ihre Seite. Hier steht: Sieh dir das an. Ist das, was es sagt, wenn wir bearbeiten sind bezahlt? Ja, ja. Sicher genug, da steht, sieh dir das an. Okay, Jetzt müssen wir feststellen, ob eine interne Seite oder eine externe Seite gegeben wurde und einen Euro erstellen . Also werden wir das hier in ein bisschen längerer Ansatz nehmen. Ich werfe ein paar horizontale Regeln hier rein, damit wir Text hier sehen können. Und hier werden die Mädchen nur als Beispiel herauskommen. Also zuerst, wir haben diese interne Seite. Das ist der Feldname. Es heißt Interne Seite. Nun, das ist ein Fremdschlüssel zu einer Wag Tail Page, was in der Datenbank wirklich nur bedeutet, dass dies als Zahl gespeichert ist, die Zahl vier, die Zahl fünf, die Nummer 10 was auch immer Seitenzahl befindet sich im Hintergrund in der Datenbank. Das ist, was es gespeichert wird, als aber jonglierenden Wag Schwanz. Nun, sie sind klug genug, um zu wissen, dass Oh, das ist ein Fremdschlüssel für ein Wag Tail Corp Alter. Also eine Standardseite, im Grunde, woraus das gemacht wird, so dass ich jede andere Seite auswählen kann. Wir wissen, dass es ein Fremdschlüssel für eine andere Seite ist, und es erstellt das Objekt für uns. Also jetzt alles, was wir brauchen, ist Seite Punkt interne Seite zu tippen, und lasst uns ah, lasst uns einfach den Titel greifen. Wir können den Titel der Seite, die wir Teoh verknüpfen, die Dienste. Also sollte es nur sagen, Dienste. Und sicher genug, es sagt nur Dienstleistungen. Gehen wir weiter und schnappen wir uns das. Paige, du warst alle statt des Titels. Was schnapp dir das, Earl? Und wenn wir Ihre Seite aktualisieren, da ist sie. Es gibt uns den Verwandten. Ihre l Schrägstrich Dienstleistungen ist die Seite, auf der wir alle unsere Dienstleistungen sehen konnten, und das stimmt tatsächlich in der U. R L Bar. Die Dienste sind die U-Service-Listing-Seite und die Reinigungsseite. Eine, auf der wir gerade sind, ist unsere Detailseite, und so haben wir sie im Wag Tail verschachtelt. Edmund. Also wissen wir, dass dieser funktioniert. Was ist mit der externen Seite? Nun, die externe Seite ist nur Text. Es kann nichts anderes sein. Wir haben gesagt, es soll es einfach in der Datenbank als Text speichern. Das ist, was ein u R L Feld ist. Es ist nur Text. Also, wenn wir in einer anderen horizontalen Regel hier hinzufügen und wir auf Seite Punkt externe Seite schauen, lassen Sie uns voran. Erfrischen Sie das, sagt er. Space x dot com Also jetzt müssen wir feststellen, ob einer von ihnen gefüllt ist Verwenden Sie es, wenn das andere Feld es verwendet, und wenn die andere, oder wenn keiner von ihnen eher verwendet wird, zeigen Sie die Schaltfläche überhaupt nicht an. Jetzt haben wir eine Logik, mit der wir arbeiten können. Wir wissen, dass diese funktionieren würden. Also für diesen Link, müssen wir sagen, ob Seite Punkt interne Seite oder Seite Punkt externe Seite. Wenn das vorhanden ist, wird die Schaltfläche angezeigt. Wir wickeln das nur in ein Wenn und ein Ende ein. If-Anweisung. Es ist also nur Logik in unserer Vorlage. Es ist eine grundlegende if-Anweisung jetzt mit diesem Mädchen, das wir bestimmen müssen, ob wir verwenden oder suchen, und dann verwenden Sie zuerst die externe Seite oder die interne Seite. Ich benutze gerne zuerst die interne Seite, so dass wir tun können, wenn Seite Punkt interne Seite, wenn das existiert , von der wir wissen, dass entweder interne oder externe Seite existiert. If-Anweisung. Wenn das existiert, lassen Sie uns geschweifte Klammern hinzufügen und Sie sind in dupage Punkt interne Seite Punkt Sie Earl und das entspricht diesem hier oben online. 12. Lassen Sie uns voran und erstellen Sie eine LF Statement elliff Seite Punkt externe Seite. Nun, geben Sie geschweifte Klammern Seite Punkt externe Seite. Wir wissen, dass das nur Text ist, also müssen wir nicht wie Punkt u R L tun weil es kein Python-Objekt ist, keine Klasse, also könnten wir hier eine else-Anweisung machen. Das müssen wir eigentlich nicht. Dies wird nie ausgelöst, da dies nur angezeigt wird, wenn es eine interne Seite oder eine externe Seite gibt. Aber wir könnten eine else Aussage machen und ihr einfach einen leeren Link geben. Es ist Go ahead, bereinigen Sie das, aktualisieren Sie unsere Seite, und wenn ich den Mauszeiger über diese, können Sie unten links sehen, es sagt Local Host Port 8000 Schrägstrich Dienste. Jetzt lassen Sie uns mit diesem Bild ein wenig arbeiten. Wir haben hier etwas zu tun. Gehen Sie zurück zu unseren Models. Wir haben ein Service-Image. Es ist auch ein Fremdschlüssel, also wissen wir, dass der Fremdschlüssel wie die Nummer eins oder die Zahl 90 oder die Nummer 42 sein wird. Es wird etwas in dieser Richtung sein. Sowohl Django als auch Wag Tail sind schlau genug, um zu sagen , Oh, , Oh,das wird eine Nummer sein. Aber ich weiß, dass das den Wag Tail Bildern, der App und der Bildklasse zuordnen wird. Auch wenn es eine Zahl ist, wenn Sie versuchen, es zu benutzen, werde ich das Bild mit einem I D nachschlagen , was auch immer diese Idee gespeichert ist. Also I D vier wird Bild mit einer Idee für suchen und es gibt uns dieses Objekt. Also werde ich diese nur acht Berührung kleiner machen und bevor wir mit Bildern arbeiten warten Sie eine windige, um das Image-Tag zu laden. Also laden wir Wag Tail Bilder Tags, und das erlaubt uns nur, dieses Template-Tag namens Image zu verwenden. Jetzt gehen wir runter, wo wir dieses Bild hier drin haben. Es ist in ein Bild eingewickelt, also können wir. Es muss nicht direkt darüber sein. Es könnte wirklich überall in diesem Inhalt sein. Blockieren Sie diesen Inhalt hier blockieren, wir werden sagen, Bild Seite Punkt Was heißt das Bild? Es wird als Service-Image bezeichnet, das Service-Image ausgibt. Als erster Parameter geben wir ihm das gesamte Bildobjekt. Dann werden wir Phil 5 73 von drei sagen, 69 und dann werden wir dies als Variable zuweisen, wie wir es einfach Bild nennen. Ich weiß, zu diesem Zeitpunkt haben wir Zugang zu Bild, dass wir Bild machen könnten, dass Sie sind. L was auch immer dieses u r l wird sein, nachdem es beschnitten ist, wird es ein neues Bild für uns Bild Punkttitel Bild dot ault erstellen, das ist in der Regel der Titel, glaube ich, und lassen Sie uns voran und aktualisieren Sie uns und wir können sehen hier. Wir haben unser erstes Bild. Das ist das Mädchen. Wir haben den Namen hier drin und wir haben nichts für Ault. Ich glaube nicht, wirklich erweitern korrigiert. Ich glaube, das ist der Titel. Lasst uns voran gehen und das testen. Lass uns den Titel machen. Werde das los. Ja, also gehen wir hin. Wir haben ein Bild. Du bist auf Bildkult. Gehen wir weiter und fügen hier einen Altar hinzu. Ault ist gleich Bild, kein alternativer Text. Und wo wir unsere Bildquelle haben, werden wir das einfach durch das Bild ersetzen. Sie sind l Bild Punkt u r l Und da gehen wir. Wir haben eine Service-Detailseite. Jetzt haben wir keine Kopf- oder Fußzeile oder irgendetwas, um tatsächlich auf der Website zu navigieren, aber wir haben jetzt eine Service-Detailseite. Eine letzte Sache, die wir tun können, ist, dass wir sagen können, dass dies eine bestimmte Vorlage verwenden, damit wir sagen können, Hey, Witwe, wir wissen, dass dies eine Seite ist, die eine bestimmte Vorlage verwendet. Also lasst uns einfach mit mir ertragen. Ich werde diese brechen, tatsächlich, tatsächlich, So ist es Sie Dienste Schrägstrich Service Seite 40404044, weil diese Seite nicht existiert. Speichern Sie das. Und ich werde nur warten, bis mein Server neu geladen wird. Wenn ich diese Seite aktualisiere, werden Sie sehen, dass Sie eine Vorlage nicht vorhanden Fehler erhalten. Das liegt daran, dass wir es sagen, tatsächlich nach Dienstleistungen Slash Service Seite für eine Welt für insgesamt vier HTML zu suchen, und das existiert nicht. Es sagt dir sogar genau, wo du danach suchen sollst. Und es existiert nirgendwo, wo es weiß, wo ich jetzt suchen soll, werde ich angeben , welche Vorlage verwendet werden soll. Nun, dies wird nichts ändern, weil dies der Standard gewesen wäre. Wie auch immer, dies ist in den Diensten AP und der Seite. Wenn Sie diesen Klassennamen mit einem Großbuchstaben s und einem Großbuchstaben P nehmen und ihn in Schlangenfall verwandeln , sieht es so aus. Und dann nimmt Django einfach Punkt html an, also ist das eigentlich nicht notwendig. Aber ich mag es, eine Vorlage auf diese Weise anzugeben, wenn du mit jemandem anderen mit Code arbeitest und eine Seite siehst und du gehst, Oh, wo ist dieser Tempel? Sie müssen nicht nach Ihnen suchen, nur wissen, dass Sie das hervorheben können und Sie können es direkt in Ihrem Editor suchen . Ich habe gerade kopiert und eingefügt und fand es automatisch für mich, denn das Problem ist jetzt, wenn wir zu unserer Services-Seite zurückkehren. Das ist, wenn wir auf diese Schaltfläche klicken. Oh, nein, Service Listing Seite existiert auch nicht. Und es gibt einige andere Dinge, die wir auch auf dieser Seite tun wollen, wie zum Beispiel automatisch zeigen unsere Dienstleistungen. Im nächsten Video werden wir das anpacken. 11. Listing: Alles klar. Zu diesem Zeitpunkt laden Sie Ihre Website und Sie versuchen, Ihre Service-Listing-Seite und innere zugeben, dass diese Seite nicht die Reinigung ist, diejenige, die gerade sagte Dienste und bekam einen Untertitel. Und derzeit gibt es keine Vorlage dafür. Also in diesem Video, lassen Sie uns diese Vorlage existiert. Und dann lassen Sie uns ein wenig Kontext hinzufügen. Diese Seite ist gut, also habe ich Service-Seite geöffnet, und was ich tun werde, ist, diese Seite wirklich zu duplizieren, diese Service-Liste Seite und, ah, wissen Sie, einfach loswerden diese Sachen hier drin, und ich habe eine schnelle kleine Vorlage dort. Jetzt wird diese Seite innerhalb dieser Dienste Ordner innerhalb der Vorlagen ein Ordner leben , und es heißt Service Listing Page, da Service Listing Seite wieder. Wenn Sie all diese Briefe nehmen, machen Sie sie Kleinbuchstaben. Und dann war der zweite Großbuchstabe dort früher Kleinbuchstaben. Das ist es, wonach es sucht. Service-Listing Seite dot html und in der Tat können wir. Das können wir auch spezifizieren, genau wie wir es bei unserer Service-Seite getan haben. Wir können hier rauf kommen und sagen, Hey, benutzen Sie die Service-Listing-Seite dot html Jetzt, wenn wir unsere Seite hier oben aktualisieren, sehen wir absolut nichts hier drin. Das liegt daran, dass unsere Vorlage nichts darin hat. Ich habe alles gelöscht und es zeigt nur einen leeren Inhaltsblock an. Okay, also habe ich nur eine HTML-Struktur eingefügt. Du musstest nicht zusehen, wie ich das alles austippe. Aber der wichtige Teil ist, dass wir diesen Seitentitel und den Untertitel nehmen und ihn ersetzen . Mal sehen, wie das aussieht. Moment haben wir eine Seite mit dem Titel Wir haben einen Untertitel und in unserer Angebotsseite heißt es eigentlich Untertitel, und das wissen wir in jeder Hinsicht. Sagen Sie Paige, wenn ich zu dieser Definition hier gehe, hat ein Feld namens Titel. Also was? Wir können auch darauf zugreifen. Also haben wir hier einen Titel. Wir wollen Seite Punkt Titel, und für unseren Untertitel Wir wollen Geschweifte Klammer geschweifte Klammer Seite Punkt Untertitel tun. Lassen Sie uns voran und aktualisieren Sie Ihre Seite und werfen Sie einen Blick. Da gehen wir, sagt die Dienste. Hier sind die Dienste, die wir jetzt mit Ihrer Rakete durchführen können. Eine Sache zu beachten ist, dass dieser Untertitel leer sein darf. Das heißt, wenn Sie diese Seite bearbeiten, muss sie überhaupt nicht da sein. Es ist völlig optional. Und so in unserer Vorlage, sagen wir, dass, selbst wenn es nichts hier drin ist, immer noch diesen Absatz nehmen. Wenn es also keinen Untertitel gibt, wird dies zu unserem Browser rendern. Wir wollen nicht unbedingt, dass das nicht nur ein leeres P-Tag ist, und das wird einige Abstandsprobleme verursachen. Also lasst uns voran gehen und hier eine if-Anweisung werfen. Wenn Seite Punkt Untertitel und lassen Sie uns dicht, dass nur um der Schönheit willen. Und wenn wir Ihre Seite aktualisieren, werden Sie sehen, dass sich nichts wirklich ändert. Aber wenn wir unsere Quelle hier betrachten, wenn es keinen Text hier drin gäbe, würde dieses ganze Element überhaupt nicht auftauchen. Das ist alles, was wir jetzt damit machen. Das nächste, was wir tun wollen, ist, ein paar Karten hier hinzuzufügen, also im Grunde, wir wollen nehmen, wenn wir zurück hierher gehen. Wir haben also eine Services-Seite, und unter dieser Seite haben wir all diese verschiedenen Serviceseiten. Wir haben tatsächlich den Einen. Ich werde in wenigen Minuten noch ein paar davon erstellen. Was wir tun möchten, ist diese untergeordnete Seite zu nehmen und sie auf der Service-Seite anzuzeigen. Es waren zwei Möglichkeiten, das zu tun. Wir können dies durch die Vorlage selbst tun, oder wir können es durch eine Seitenmethode namens Get Context tun. Und so werden wir es hier machen. Wir werden es tun. Das Ultra-Bein Tell Weg, Ordnung, also nochmal, in Ordnung, also nochmal, ich habe gerade ein paar HTML hier eingefügt. Dies ist nur zum größten Teil, es ist Standard-Bootstrap mit ein paar zusätzlichen Stilen, die ich hinzugefügt habe. Das ist alles in der Front und Vermögen. Wenn Sie die Projektbestände nicht haben, können Sie sie jederzeit für diesen Kurs herunterladen. Sie werden Rocketman Assets Dot Zip genannt. Und wenn ich zurück zu meiner Seite gehe und ich das einfach aktualisieren, werden wir Standard-Karte sehen. Also haben wir ein Bild, einen Kartentitel der Beschreibung und einen Link, und was ich hier tun möchte, ist vor allem, ich möchte wirklich nur sehen, wie das mit mehreren Artikeln hier aussehen wird. Also lass uns vier I im Jahr 1234 machen und was das tun wird, ist eine Schleife über jede Zahl. Also das wird mir geben und für So wird das mir vier Karten geben und wieder, dass nur für jedes Auge in String 1234 Und wenn ich erfrischen gibt mir vier Karten hier drin und diese sind eigentlich alle auf ihre eigenen Roe und das ist nicht, was ich wollte. Ich wollte eigentlich, dass alle diese in ihrer eigenen Bootstrap-Reihe sind und ihnen erlauben, sich zu packen , wie das viel besser aussieht. Da gehen wir. Jetzt haben wir vier Karten hier drin, also wollen wir das im Grunde tun. Also, wenn es hier einen Reinigungsservice gibt, wenn es hier einen weiteren Service für andere Dienstleistungen gibt, wollen wir diese automatisch mit einem Bild von der Serviceseite füllen. Das ist eine Service-Detail Seite eins, an der wir gerade im letzten Video mit seinem Titel, seiner Beschreibung und seinem Link und natürlich seinem Bild gearbeitet seiner Beschreibung und seinem Link und natürlich haben. Also, was wir tun werden, ist, dass wir offen sind, eine zweite Kleidung, die nicht brauchte, dass auf ihrer Service-Listing-Seite, Wir werden eine Methode namens Get Contact überschreiben, so dass es def bekommen Unterstrich Kontext. Es wird alle seine regulären Positionsargumente selbst anfordern, und es sind Schlüsselwortargumente. Und hier drin, was wir tun müssen, ist zu sagen, Hey, holen Sie sich den regulären Kontext unserer Seite. Also der Kontext ist, Ah, Sie wissen, wo wir sehen, wegen tun, um zu tun. Gehen wir zurück hier sehen wir Lockige Klammern Seite Punkt Titelseite , nicht Untertitel. Das ist alles im Zusammenhang mit unserer Vorlage. Und was wir tun werden, ist ein bisschen mehr hinzuzufügen, etwas, das nicht automatisch kommt, nur weil wir einen Feldnamen haben. Wir wollen einige zusätzliche Sachen erstellen, also werden wir diese Methode verwenden, und dieser Kontext ist gleich, wird eine Superklassen-Superfunktion ausführen, eher Kontext bekommen und wir werden unsere Eier Choreier und die Anfrage übergeben und Rückgabekontext. Und was das geht zu dio, wenn wir Ihre Seite aktualisieren, ist absolut nichts, was wir jetzt sehen können , da es aktualisiert wird. Nichts hat sich geändert, aber lassen Sie uns ein kleines Beispiel hier machen. Lasst uns Kontext machen. Hallo und das wird hallo Welt sein. Und jetzt habe ich Zugriff auf eine Variable in meiner Vorlage namens Hallo alle Großbuchstaben , denn so habe ich es hier geschrieben. Und wenn ich nur tun, dies a g l l o. Wenn ich das speichern und gehen aktualisieren meine Seite Hallo Welt. Es erscheint als völlig benutzerdefinierter Kontext, und wir können alles hineinwerfen, was wir wollen. Jetzt werde ich das loswerden, denn das ist eigentlich kein nützliches Beispiel. Es ist nur ein Beispiel dafür, wie wir im Grunde alles, was wir wollen, in unseren Kontext setzen können. So ist ein schneller Überblick. Wir haben im Grunde gesagt, Hey, auf Seite kommt mit einer Methode namens Get Context. Wir erkennen an, dass wir im Grunde genau die gleiche Funktion schreiben werden, genau die gleiche Methode, die wir das alte Zeug nennen werden. Das ist das Zeug, das mit Paige kommt. Das macht Super, sagt Super. Rufen Sie Paige an, bekommen Sie keinen Kontext. Wir werden alle Argumente übergeben, die wir normalerweise tun würden, und das wird der Standardkontext sein. Das ist, was die Seite standardmäßig haben wird. Dann sagten wir: Hey, Hey, füge da ein bisschen mehr hinzu. Ich habe die Welt auch nicht richtig buchstabiert . Das ist dann urkomisch. Sobald wir das hinzugefügt haben, gab es nur den Kontext zurück. Und so hatten wir eine Variable zu unserer Vorlage. Das ist die Django-Art, es zu tun. Und weil es der Drink weg ist. Es ist auch der Wag Tail Weg. Also, was wir jetzt tun können, ist, können wir sagen, dass Kontextdienste gleich sind, und dann müssen wir nur alle unsere Service-Seiten jetzt Weg, um alle unsere Service-Seiten zu bekommen . Da wir hier eine Klasse namens Service Page und Django haben, können wir ihre O. R M ihren Objekt-relationalen Manager, Dienstseiten-Punkt-Objekte verwenden R M ihren Objekt-relationalen Manager, , und wir könnten alles tun und das wird alle Seiten bekommen. Aber das ist nicht, was wir wollen, weil unsere Wang Tell Seiten einen Status haben, sie können ein Entwurf sein. Sie könnten live sein, sie können öffentlich sein, sie könnten privat sein, also wollen wir sicherstellen, dass wir dot live und dot public verwenden, und was dies tun wird, ist, dass es jede einzelne Seite greifen wird, die derzeit live ist und öffentlich und werfen Sie es in eine Variable, die wir über aufgerufene Dienste schleifen können. Also lasst uns das machen. Lassen Sie uns diese vier Schleife hier loswerden. Nun, nicht wirklich loswerden. Lassen Sie uns einfach diese vier ich in Dienstleistungen tun und wir werden Schritt für Schritt schrittweise machen dies tatsächlich funktioniert. Wenn ich nun die Seite aktualisiere, weil ich hier nur eine Service-Seite habe, ist dies die Service-Seite hier. Nur weil ich nur den einen habe. Dies wird nur mit einer Karte angezeigt. Was passiert nun, wenn ich diese Seite dupliziere? Das ist kopieren Sie diese Seite und lassen Sie uns einen Glanz geben. Das wird diese neue Serviceseite sein. Muss ich hier noch etwas ändern? Lass uns sein Bild ändern und ich werde ein neues hochladen, okay? Und lassen Sie uns einfach diese Seite veröffentlichen. Wenn ich diese Seite aktualisiere, habe ich zwei Karten hier drin. Wenn ich diese Seite aktualisiere, Der Grund dafür ist, dass es zwei dieser Seiten gibt. Und wenn ich „hey“ gesagt habe , lassen Sie uns die Reinigung unveröffentlicht. Ja, ich möchte die Reinigung unveröffentlicht. Jetzt. Warte, Till sagt: Ja, okay. Ich verstehe, dass es tatsächlich einige dieser Seiten gibt. Aber nur einer von ihnen ist technisch live, also zeigen Sie nur einen von ihnen. Und deshalb sehen wir hier die eine Karte. Jetzt werde ich nur seine Seite neu veröffentlichen, also haben wir beide Karten. Und jetzt gehen wir weiter und ändern jedes Stück davon. Also in unserem Editor, werde ich sagen, für jede Karte in Service ISMs in einem Anruf es Karte. Das einfachste, was ich hier ändern kann, ist der Titelkarten-Punkttitel, und wenn wir zurück zu unseren Modellen in hier gehen , Modelle,Modelle, Modelle, wir greifen alle Serviceseiten. So haben wir nun Zugriff auf jedes einzelne Feld, das auf einer Service-Seite verfügbar ist. Wir haben jetzt Zugriff auf die Beschreibung, also lasst uns diese Beschreibung auch packen und diese eine Karte Punktbeschreibung ersetzen. Woher bekomme ich die Karte? Nun, weil Dienste ist, ist es eine Liste der im Grunde die Service-Seite. Wir werden jede Karte durchlaufen, weil wir Karten am Frontend erstellen werden. Und so, für jede dieser Seiten, eine dieser Karten haben wir Zugriff auf den Titel und die Beschreibung wie eine normale Seite . Also lasst uns das speichern und uns eine Erfrischung geben, und wir können sehen, dass wir Reinigungsstrahlen haben . Wir haben einen Alarm ipsum drin, und jetzt müssen wir die URL und das Bild ändern. In Ordnung, also lassen wir uns zuerst das Bild machen. Ich werde einfach der Größte sein, der zum lustigsten geht. Wir müssen sicherstellen, dass wir Wag Tail Bilder haben, Tags geladen, die wir derzeit dio, und lassen Sie uns gehen und ein neues Bild erstellen hier. Wir sagen „Bildkarte“. Und wie heißt das Feld dann? Es heißt Dienstabbild. Gehen, um es ein Service-Image zu geben, werden wir sagen, Füllen Sie es mit 5 73 von 369 als Kartenbild. Und dann, wie in unserem letzten Video, können wir Kartenbild Punkt u R l. Wir können ihm auch einen Altar geben , der immer eine gute Idee ist, auch wenn er leer ist. Guard Bild Punkt Punkt a lt für das Wort Kult. Und sieh dir das an. Dies fängt an, zusammen zu kommen, wenn wir dies klicken, dies ist nicht wirklich gehen irgendwo und Sie können unten links auf meinem Bildschirm zu sehen. Es steht an zu tun Also lasst uns das reparieren. Jetzt wissen wir, dass jede Karte eine Seite hat. Nun, weil das alles ist, ist dies ein Seitenobjekt. Wir haben es gerade in Karte für diese Schleife umbenannt. Also werden wir für jede Karte tun, eine Karte generieren. Du bist ich. Wir werden das Mädchen auch hier reinbringen und wir werden es auch hier reinbringen. Also im Grunde, wenn jemand irgendwo in dieser Karte Textbild klickt oder der Link wird sie auf die richtige Seite zu bringen . Also, hier geht's. Ich aktualisiere die Seite. Ich klicke auf Reinigung bringt mich auf die Reinigungsseite. Ich klicke zurück, Click Shining bringt mich auf die glänzende Seite und da gehen wir. Genau so haben wir eine Service-Listing-Seite, und für jede neue Seite, die Sie hinzufügen, wird sie automatisch hier angezeigt. Es wird sie einfach weiter hinzufügen. Das war eine super schnelle Zusammenfassung. Hier ist, was wir in diesem Video gemacht haben. Wir haben die Seite Titelseite Untertitel hinzugefügt Wir prüfen, ob der Seiten-Untertitel überhaupt existiert. Eigentlich gibt es noch eine andere Sache, die wir dio sollten. Gibt es eine Beschreibung? Eso. Dann sagten wir, Hey, wir werden einige benutzerdefinierte Sachen in den Kontext unserer Vorlage hinzufügen. Also dann haben wir hinzugefügt, ich bekomme Kontextmethode. Wir sagten, Hey, schnappen Sie sich die regulären Sachen, die warten, bis wir uns immer geben, und fügen Sie dann ein paar zusätzliche Sachen in Ihrem Dies ist mit Django Zo R M Also wir greifen alle Serviceseiten, die sicherstellen, dass alle Seiten Luft live und öffentlich, und wir bringen sie einfach in den Kontext zurück. Dann wir in unserer Vorlage, in die der Kontext injiziert wird, könnenwir in unserer Vorlage, in die der Kontext injiziert wird, jeden Service durchlaufen. Wir nannten es Karte. Also für jede Iteration nennen wir es Karte, wir haben ein Bild erstellt, ihm einen Titel geben oder den Titel angezeigt, die Beschreibung angezeigt und gab ihm eine l. es war eine letzte Sache, die ich nicht getan habe, ist ich vergessen, dass der Service Seitenbeschreibung ist in der Tat optional. Also haben wir Service Seite Beschreibung. Leer ist gleich true. Es ist ein optionales Feld, so werden wir sagen, ob Karte, die Beschreibung und einfach zu Ende, wenn jetzt ist es nicht gehen, um die Anzeige zu ändern, weil sie eine Beschreibung haben. Aber wenn es keins gab, wird es kein leeres Absatz-Tag und ihr Dokumentobjektmodell in ihrer Seite in ihrem HTML geben. Und das ist nur eine der Möglichkeiten, wie wir eine Auflistungsseite erstellen und alle untergeordneten Seiten darunter auflisten können , genau wie wir es hier getan haben. Es gibt noch ein paar andere Möglichkeiten, wie wir es tun können, aber das ist bei weitem die einfachste. 12. Page hinzufügen: bis zu diesem Punkt haben wir ein paar Felder zu unseren Serviceseiten hinzugefügt, die als Externe Seite und Interne Seite bezeichnet werden. Und was wir im Grunde auf der Vorlage sagen, ist, wenn es eine interne Seite gibt, verwenden Sie, Earl, oder wenn es eine externe Seite gibt, verwenden Sie diesen Text und jetzt ist ein guter Zeitpunkt, um eine Seite Validierung hinzuzufügen. Also, wenn beide Luft gefüllt ist, werden wir einen kleinen Fehler hinzufügen, der besagt, Hey, nur einer von ihnen kann zu einem bestimmten Zeitpunkt ausgefüllt werden. Also werde ich meinen Editor und in meinen Dienstmodellen Dot Pie Datei öffnen. Und wenn ich schließe, können wir tatsächlich sehen, wo das Dienstleistungen ist und dann Dot Pie modelliert. Wir werden eine weitere Methode hinzufügen, die hier Clean genannt wird. Wir werden sagen, Definieren Sie sauber, das wird selbst super sauber nehmen, und das wird nur seine regelmäßige Reinigung zu tun. Wenn Sie also Inhalte auf der Seite hinzufügen, um Ihren Inhalt zu entkommen, so dass wir können, wissen Sie, dass Sie sicher in Ihre Datenbank eingegeben werden und Sie müssen sich keine Sorgen um SQL-Injektionen und solche Dinge machen. Nun, was wir hier tun werden, ist zu sagen, wenn etwas Ursache und Irrtum, das ist wirklich alles, was wir tun. Wenn Sie also diese beiden Zeilen im Hinterkopf behalten, ist das eigentlich ziemlich einfach. So können wir sagen, wenn Selbstpunkt-interne Seite und Selbstpunkt-externe Seite beide Felder ausgefüllt sind , und das ist eigentlich wissen, was wir wollen. Wir möchten nicht, dass beide Felder ausgefüllt werden. Wir möchten nur eine von ihnen ausgefüllt werden, und dies hilft Ihren Content-Eintrag Menschen zu führen, im Grunde die richtigen Dinge zu tun. Ich fülle es nicht an beiden Orten aus, weil das verwirrend sein könnte. Und wenn jemand sonst auf Ihre Seite kommt und sagen würde: Hey, Hey, es gibt einen Link hier, nichts hier, welches benutzt werden soll? Ich weiß nicht, aber das wird tun, ist ein Fehler zu werfen und zu sagen, Hey, nur einer von ihnen könnte zu jeder Zeit verwendet werden. Also, jetzt gehen wir weiter und fügen Sie einen Fehler hinzu, also werden wir hier eine außergewöhnliche Erhöhung und Fehler auslösen, also ist dies ziemlich alles jangle an diesem Punkt. Wir werden einen Validierungsfehler auslösen und wir werden diesem ein Wörterbuch geben, und die 1. 1 wird sein, was auch immer Ihr Feldname ist. Also, was das sagt, ist, wenn es tatsächlich eine interne Seite und eine externe Seite gibt, das ist diese if-Anweisung hier, wir wollen eine Luft auf eine dieser oder beide von ihnen werfen. Also werfe ich zuerst auf das interne Seitenfeld. Das wird also der Schlüssel für den ersten Wörterbuchwert hier sein. Und dann werde ich wieder geben. Es ist nur ein weiterer Validierungsbereich. Es scheint etwas seltsam, dass wir das verschachteln. Aber das ist alles, was wir hier tun. Und wir können an dieser Stelle sagen, wählen Sie bitte nur eine Seite vier, Geben Sie eine externe, Sie sind l. So, jetzt ist das alles in Ordnung und Dandy. Aber wenn Sie diese Seite wirklich speichern, werden Sie auf ein Problem stoßen. Wir müssen Validierungsluft importieren. Wir haben das noch nicht verwendet, und deshalb haben wir es noch nicht importiert. Also gehen wir zurück zum Anfang unserer Seite hier. Nun lassen Sie uns von Django Dekor Dot Exceptions tun, Import Validierung. Fehler. Das ist alles, was wir tun. Ich werde hier wieder runterrutschen, um das ein bisschen aufzuräumen. Speichern Django Dekor Punkt Ausnahme ist nicht vorhanden. Das liegt daran, dass das ein Band oder ein Mangel an Tippfehler war. Es ist Django. Ausnahmeregelungen. Da gehen wir. Jetzt gehen wir weiter und versuchen, diese Seite zu speichern. Was passiert, wenn ich nur versuche, einen Entwurf zu speichern? Diese Seite konnte aufgrund von Validierungsfehlern, die gut aussehen, nicht gespeichert werden. Es sieht gut aus. Und hier ist der genaue Text, den ich geschrieben habe. Bitte wählen Sie nur eine Seite aus oder geben Sie einen externen Euro ein. Nein, hier gibt es keinen Fehler, aber wir können einen sehr, sehr einfach hinzufügen . Also lasst uns weitermachen. Scrollen Sie hier nach unten und ich werde das etwas kleiner machen. Größe passt auf eine Zeile Das ist viel zu klein, und ich bin keine Kopie und fügen Sie dies ein, weil alles, was wir brauchen, um dio ändert den Feldnamen, und ich nehme an, wir sollten ein Komma da drin haben, weil dies ein Wörterbuch ist. Dies ist also der erste Schlüssel mit der ersten Luftmeldung, und dies ist der zweite Schlüssel mit der zweiten Fehlermeldung, und dieser Text muss keineswegs gleich sein. Also lassen Sie uns einfach tun, dass dass das, dass die Toten ich das retten werde und Sie werden sehen, dass die erste Luft etwas sehr höflich sagen wird. Und der zweite Fehler wird eine Reihe von Krankheiten haben. Es gibt Anzeigen darin und wird danach genau den gleichen Text sagen. Lass uns voran gehen und den Entwurf speichern. Die Seit