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 Seite kann nicht gespeichert werden. Sie tun Validierung lüftet und bitte wählen Sie eine Seite oder geben Sie eine externe Sie gut, und in der 2. 1 hier unten, wir haben gesagt, dass das, dass das, dass die Toten bitte nur eine Seite auswählen oder geben eine externe Sie Earl. Also jetzt haben wir zwei Fehler für die grundlegende Validierung. Ich werde das wirklich aufräumen, weil ich nicht alle Köpfe da drin mag. Sieht nicht sehr schön aus. Er wirft das sogar in eine Variable, um das wirklich aufzuräumen. Und jetzt, an diesem Punkt,
alles, was wir tun müssen, ist, sagen wir, lassen Sie uns von Space X loswerden. Wir wollen nicht unbedingt mit Space X verlinkt. Auf welcher Seite sind wir auf der Reinigung Seite? Also lasst uns voran und lasst uns das jetzt veröffentlichen und es funktioniert. Es gibt keine Validierungsfehler mehr. Es erlaubt uns tatsächlich, die Seite zu speichern, was wirklich,
wirklich gute Nachrichten ist , denn bis zu diesem Punkt können wir eine interne und eine externe Sie Earl hinzufügen. Nehmen wir nun an, jede Seite muss die eine oder andere haben, sagt Gehen Sie voraus, löschen Sie diese Wahl. Es gibt keine interne Seite und es gibt keine externe Seite und es ist perfekt gespeichert. Was wir jetzt sagen könnten, ist, ich werde das einfach wieder etwas größer machen, wenn nicht selbst starb interne Seite. Wenn es also keine interne Seite und keine externe Seite gibt, also gibt es keine interne Seite und keine externe Seite, können
wir hier auch eine Luft aufwerfen. Lassen Sie uns also voran gehen und einen Validierungsfehler auslösen. Das wird ein Wörterbuch. Und wieder, es sieht einfach so aus. Wir haben einen Schlüssel mit Validierungsfehler und dann einen zweiten Schlüssel mit einer anderen Validierungsluft. Das ist wirklich alles. Sieht aus, als ob wir diese Schlüssel als interne und externe Seiten setzen wollen und die
Validierungsluft wird sein. Sie müssen immer eine Seite auswählen oder eine externe Sie Earl eingeben und ich bin keine Kopie, die dazu führt, dass
ich diesen Wortlaut mag und das ist gut genug für beide Felder, mit denen ich arbeite. Also werde ich das retten. Und jetzt, wenn wir unsere Seiten speichern und nach zwei Dingen suchen, wenn beide Luft gefüllt ist, dann wird es einen Fehler verursachen. Es wird Luft werfen etwas Validierungsluft. Und wenn keine dieser Luft gefüllt ist, wird
es auch Validierungsluft werfen. Also lassen Sie uns voran gehen und sparen Entwurf. Hey, sieh dir das an. Die Seite konnte aufgrund von Validierungslüften nicht gespeichert werden. Sie müssen immer eine Seite auswählen oder einen externen You Earl sagt das gleiche hier unten. Texas Nice und lesen Sie Ihr Textfeld selbst ist schön und rot, so dass Menschen Inhalt Eintrag Menschen genau wissen, was schief gelaufen ist. Jetzt werde ich eine beliebige Seite wählen. Ah, und ich werde in der Tat die Homepage zu wählen veröffentlicht,
und es veröffentlicht perfekt und so letztendlich,
das ist alles, was wir tun, um einen Validierungsfehler für unsere Seitenfelder hinzuzufügen. Also haben wir hier oben eine Seite namens Service Page, und wir wollen sicherstellen, dass es immer eine interne oder externe Seite gibt, und es wird immer nur eine von ihnen gesetzt.
13. Kopf- und Fußzeilen: Wenn wir jetzt einen Blick auf unsere Seite werfen, sieht
es leer aus. Wir haben Dienstleistungen, Seite, Wir haben Service-Detailseiten und wir haben eine Homepage, aber wir haben keine Möglichkeit, tatsächlich zu umgehen. Die Homepage hat ein schönes Banner. Das ist cool, aber es gibt keine Kopf- oder Fußzeile. Also, wie sollen wir herumkommen? Nun, lassen Sie uns weitermachen und einen globalen Header und eine globale Fußzeile zu unserer Wag Tail Website hinzufügen. Erste Dinge zuerst. Ich werde das schließen und Basispunkt-HTML öffnen und das lebt innerhalb unseres Rocket
Man-Ordners und innerhalb des Unterordners namens Templates. Jetzt hier, ich werde einfach sagen, eine Datei enthält Header dot html und das ist alles, was ich werde dio und unter all meinen Inhalten, ich werde einfach einen Fußzeilenpunkt HTML einschließen. Jetzt wird dies nach Vorlagendateien suchen. Dies ist eine Vorlagendatei. Wir arbeiten mit der Basis, und es wird innerhalb unseres Vorlagenordners suchen, der genau hier nach einem anderen Ordner
namens Includes und dann eine Datei namens Header suchen. Und dann wird es auch in den Include-Ordner noch einmal nach einer Datei namens
Footer suchen Jetzt, wenn wir uns speichern und wir unsere Seite aktualisieren, ja, Vorlage existiert nicht. Wir haben das schon einmal gesehen, und das sagt Ihnen tatsächlich, dass es nach einer Vorlage sucht. Also in den Vorlagenordner oder in einem dieser Vorlagenordner für einen bestimmten Ordner namens Includes und eine Datei namens Header dot html. Also lasst uns weitermachen. Das Erstellen neuer Einreichung enthält hier Header dot html. Also habe ich gerade einen Ordner und eine Datei erstellt, und ich werde auch voran gehen und Fußzeilenpunkt-HTML erstellen und das waren völlig leere Dateien. drin ist nichts. Also an dieser Stelle haben
wir effektiv nichts an unserer Website getan. Also, wenn wir Header dot html öffnen, können
wir im Grunde alles haben. Also lasst uns das machen. Div. Das ist ah, Header Cool. Das wird auf jeder einzelnen Seite erscheinen. Wenn ich also zu Schrägstrichdiensten gehe, ist
dies ein Header. Zeigt sich dort oben, gehen Sie zu einer Service-Detailseite, es wird immer noch angezeigt. Es ist immer da, also lasst uns das wirklich schön aussehen. Lassen Sie uns das tatsächlich wie eine richtige Navigation aussehen. In Ordnung? Also alles, was ich hier getan habe, war, dass ich im Grunde nur eine Navigation von get bootstrap dot com genommen habe und ich es hier
injiziert habe . Ich habe eine Kleinigkeit gemacht. Ich habe einen Link hinzugefügt. Es ist nicht einmal ein echter Link, und ich gab uns einen Verwandten, der mit unserem Logo verknüpft ist. Das war's. Wenn ich also deine Seite aktualisiere, werden
wir sehen, dass wir tatsächlich Rocketman-Logo und einen einzigen Link haben, und das wird wieder auf jeder einzelnen Seite erscheinen. Also, wenn ich auf den Zurück-Knopf klicke, aktualisieren Sie diesen. Da gehen wir. Ich bin auf der Seite „Dienste“. Ich kann zu einer der Detailseiten gehen, und diese Kopfzeile ist immer da. Jetzt gibt es zwei Dinge, die wir hier tun wollen. Erstens möchten
wir nicht direkt mit Static verknüpfen. Sie können dies in anderen Warte bis Projekten sehen, die Sie vielleicht sogar sehen. Ein anderes Django-Projekt, bei dem Leute einfach direkt mit dem statischen Ordner verlinken, und für viele Zwecke ist
das eigentlich in Ordnung. Bei einigen Websites möchten
Sie jedoch möglicherweise nicht, dass Ihr statischer Ordner als statisch bezeichnet wird. Vielleicht wollen Sie, dass es etwas anderes ist. Ich weiß nicht, warum Sie es ändern würden, aber einige Leute wollen, dass es geändert wird, also Was wir tun werden, ist das statische
Template-Tag statisch zu verwenden , und wir werden diesem einfach eine Zeichenfolge geben und sagen, Hey, wo immer statisch ist, ob wir das jetzt ändern oder wenn wir es in der Zukunft ändern, wo immer dieser Ordner jangles wird herausfinden, wo das der Image-Unterordner innerhalb des statischen Ordners wieder ist, wir wissen nicht, wo das ist, also ist es sehr relativ an dieser Stelle und die Datei Logo Punkt PNG Nun, um diese Arbeit zu machen, haben
wir tatsächlich eine Last dies in hier. Also werden wir das statische Tag laden. Und wenn wir Ihre Seite aktualisieren, sehen
Sie, dass sich nichts ändert. Und selbst wenn wir uns die Quelle hier in betrachten, sieht
es genau die gleiche Schrägstrich statische Schrägstrich Bilder Schrägstrich Logo Punkt PNG Sieht aus wie nichts geändert, aber in der Produktion, zum Beispiel, wenn Sie warten müssen, bis dot io und wir klicken mit der rechten Maustaste und inspizieren hier, können
Sie ja sagen. Dies verwendet auch statisch. Sie hätten jeden anderen Ordner verwenden können. Sie haben einen Unterordner namens Image, aber dann haben sie Fingerabdrücke aktiviert. Jedes Mal, wenn sie sammeln statisch jedes Mal, wenn sie mehr Vermögenswerte auf der Website hatten. Sie erhalten einen zufälligen Hash und effektiv, was das tut. Ist es Cash Busts, all Ihre Vermögenswerte, all Ihre CSS, alle von Ihnen, JavaScript, alle Ihre Bilder? Also, das ist, wenn Sie Amazon s drei oder Cloudfront oder digitale Ozeanräume oder irgendetwas , das Einlösen haben könnte sofort kaputt. Und das ist der Grund, warum
wir typischerweise statische verwenden. Also hat es zu Vorteilen, Wirklich? Die andere Sache, die ich tat, war, dass ich hier einen Lincoln hinzugefügt habe. Also, wenn ich zurück zu unserer Seite gehe, habe ich nur einen Link, und was ich hier tun werde, ist, dass ich tatsächlich eine andere Schleife machen werde. Also für mich in 123 Ich will nur drei dieser Artikel. Und so habe ich gerade einige in Dellen gemacht und das Ende von vier Tag hinzugefügt. Lasst uns weitermachen. Ad I auch. Das wird in Zukunft unsere Speisekarte sein. Also für jedes Auge, für jede ganze Zahl in 123 zeigen Link einen Link zu drei zu verknüpfen. Und genau so haben
wir Link eins, der mit Link drei verknüpft ist. Bitte geh nirgendwohin. Wir könnten diese schwer codieren, wenn wir es wollten, aber wir wissen nicht wirklich, ob unser zukünftiger Kunde oder zukünftiger Self
diese Links pflegen werden . Also, zum Beispiel könnte
ich sagen, Link man geht immer zu Schrägstellen. Aber was ist, wenn ich eines Tages auf meine Services-Seite gehe und sage, dass ich nicht möchte, dass es Dienste genannt wird? Ich wollte Raketenwartungsdienste genannt werden. Und vielleicht ist das einfach besser für S e o. Nun, plötzlich,
mein Link, der zu Schrägstellen geht, wird
diese Seite brechen, also wollen wir das auch nicht tun. Das werde ich nicht wirklich sagen. Ich werde diese Add-Dienste behalten und so fügen wir einen Header hinzu. Und als nächstes werde
ich eine Fußzeile hinzufügen. Wenn wir also zurück zu unserer Basis gehen, haben
wir auch Footer. Aber unsere Fußzeilenseite hat momentan nichts drin. Okay, also nochmal, ich habe Ach,
Vorlage,
Fußzeile hier reingeklebt Vorlage, . Es ist ein Haufen Hte E-Mail und so weiter. Es ist eigentlich nichts wirklich los hier, außer es gibt eine for-Schleife Toe, die wieder gefälschte Links erstellt, genau wie wir es in der Kopfzeile getan haben und ah ja, das war's. Also lassen Sie uns voran und werfen einen Blick auf das nur als eine kurze Vorschau. Also werde ich die Schriftrolle nach unten loswerden, und ich habe gerade meine Seite aktualisiert, und da geht's los. Wir haben ein globales Bild,
einen Text da drin,
einen Knopf, der irgendwann irgendwo hingehen wird. Ich denke, Social-Media-Symbole Stunden zu tun ist Links 12 und drei. Und das sind alles Features, die wir ein wenig später hinzufügen werden. Aber im Moment ist
es einfach schön zu wissen, dass wir anfangen, tatsächlich eine Website zu erstellen, die aussieht, als ob etwas tatsächlich wie eine Website aussieht. Zumindest kann ich an dieser Stelle von wirklich jeder Seite auf die Startseite gelangen und in zukünftigen Lektionen werden
wir hier einen richtigen Header hinzufügen. Ah, richtige Navigation. Also werden wir Menüpunkte erstellen. Wir werden drei von ihnen da drinnen erschaffen. Wir werden dann
jedoch kopieren, jedoch kopieren, so dass sie auch die Links durchlaufen und genau die gleichen Links hier unten erstellen. Wir werden globale Website-Einstellungen für den Kontakt mit uns für die Stunden für die
Social-Media-Einstellungen für die Links hinzufügen . Wir werden sicherstellen, dass dies anpassbar ist. Dies ist anpassbar, unsichtbar. Und diese Seite diese Schaltfläche zu tun tatsächlich Links zu einer richtigen Seite. Also kommen wir zu all dem auf der Straße runter. Aber im Moment werden
wir es nur hier als Platzhalter behalten.
14. Debug hinzufügen: Okay, Unsere Website beginnt, komplex genug zu werden, dass wir wahrscheinlich beginnen sollten,
einige Debugging-Tools zu erwägen ,
etwas, das uns auf dem Weg helfen wird, Dinge herauszufinden. Sie heraus, ob es ein Problem gibt, auf das wir eigentlich gar nichts gestoßen sind, aber es wird uns auf dem Weg helfen. Also werden wir zwei Dinge installieren. Die 1. 1, die wir installieren werden, wird eine neue Datei erstellen, hier wird
Django Debug Tool genannt werden, und die zweite 1 wird P You d Be genannt werden. Und das ist ein interaktiver Python-Bugger. Es ist also etwas besser als der normale D-Bugger. Es ist ein Werkzeug. Ich mag beide Luft völlig optional. Wenn Sie bessere Debugging-Tools haben, die Sie bevorzugen, verwenden diese
definitiv. Aber diese Luft, dass. liebe ich absolut. Ich habe so ziemlich jedes einzelne Projekt angezogen, nur weil es mir enorm hilft. Also gehen wir weiter, öffnen Sie unser Terminal und stornieren unseren Server. Und während wir in unserer Umgebung sind, so was auch immer virtuelle Umgebung Sie verwenden, ob es Pippen ven vor v Neid Docker, vagrant, so
etwas wie das. Stellen Sie einfach sicher, dass Sie sich in Ihrer Umgebung befinden, und geben Sie Pip ein. Installieren Sie die Django Debug-Symbolleiste und Sie können sehen, dass erfolgreich Jingo Debug
Symbolleiste installiert . Version zwei Punkt einmal lässt Sie Django-Debug zu einer Bar pip zeigen, und das wird uns die tatsächlichen Versionen geben. Wir haben hier einen Namen. Das ist unser Name. Und wir haben auch eine Version, die 2.1 so cool ist Wir haben, dass in einer virtuellen
Umgebung installiert . Nun das erste, was wir tun wollen, ist, dass wir Anforderungen dot txt Sicher öffnen wollen, was auch immer da drin ist, lasst uns voran gehen und eine neue Datei erstellen, die diese genannt dev dot txt und gelöscht wird. Der Grund, warum wir das getan haben, ist, weil ich dev dot txt und Anforderungen dot txt toe live
nebeneinander in unserem Projektverzeichnis möchte , so dass Sie sehen können, dass ich Anforderungen txt
im selben Ordner habe . Ich habe dev dot txt Jetzt, was wir sagen werden innere dev dot txt ist erfordern die Anforderungen dot txt-Datei und darunter können
wir Django Debug Toolbar gleich Version 2.1 setzen. Also jetzt, wenn Sie ein neues Projekt ausgeben. Statt pip install zu tun, stash unsere Anforderungen wie das, was wir normalerweise für ein neues Projekt tun. Sie können Pip Install Dash tun sind dev dot txt und es wird Ihre Basisanforderungen installieren, sondern auch die Dev-Anforderungen, wie Debuggen zu einer Bar oder P Sie d no, aber installiert es in unserer virtuellen Umgebung. Aber das ist nicht wirklich in unserem Projekt installiert. Also gehen wir voran und schließen das und das und das und lassen Sie uns dev dot pie öffnen. Das sind also unsere Entwicklungseinstellungen. Wir können unsere eigenen Entwicklungseinstellungen hinzufügen und hier, oder wir können sie mit den lokalen Einstellungen überschreiben, die wir in einer lokalen Dot Pie Datei wollen. Ich werfe sie hier rein, denn wenn ich das begehe, möchte
ich, dass andere Leute genau dieselben Änderungen haben. Oft werden lokale DUP-Dateien oder lokale Dateien nicht wirklich übertragen, nur weil es eine
kleine zusätzliche Optimierung ist , die Sie tun müssen, um das Projekt auf Ihrem Computer laufen zu lassen. Während ich will, dass jeder das hat, also werde ich das jetzt in die Dev Dot Pie Datei legen. Das erste, was ich tun möchte, ist, dass ich dies zu meinen installierten APs hinzufügen möchte. Lassen Sie uns installierte APS tun und dies kommt von Basis dot pie. Wenn wir also auf Basis von Kuchen online 26 bis zur Linie 52 öffnen, haben wir unsere installierten APs. Also sagen wir im Grunde, Hey, Django, benutze die Basiseinstellungen Das ist cool. Und schnappen Sie sich auch Ihre installierten APs und fügen Sie dort etwas Maurin hinzu. Also lassen Sie uns voran und tun Plus ist gleich. Und lassen Sie uns eine Liste von Elementen hier werfen, und diese eine Liste wird Debug-Symbolleiste sein. Und zu diesem Zeitpunkt können
wir ihren Server erneut ausführen, wenn wir sehen wollen, ob irgendetwas zu irgendwelchen Fehlern kommt. Sieh dir das an. Und es steht,
Hey, Hey, Django, Debug-Symbolleiste Middleware fehlt. Das sollten wir unserer Middleware hinzufügen. Okay, lassen Sie uns voran und fügen Sie das zu ihrer Mitte hinzu, wo jetzt all diese auf der
Jangle Debug-Symbolleiste gefunden werden konnten . Lesen Sie mir Anweisungen. Also, wenn Sie gehen,
ich denke, es ist ah, lesen Sie die Docks oder Django-Debug-Werkzeugleiste Punkt Lesen Sie die Docks. Ein schneller Google wird Ihnen sagen, wo das ist. Es wird Ihnen genau sagen, wie Sie dies installieren. Das ist wirklich nur ich mache das meiste aus dem Speicher hier, also lasst uns Middleware machen. Und wieder, lassen Sie uns zu unserer Middleware hinzufügen, und wir werden diesem eine Liste dieser Debug-Symbolleiste Middleware geben. Was war das, das sich über diesen hier beschwert hat? Wir möchten das alles auswählen und dort einfügen. Darüber beschwert sich, und schließlich ist
das eine seltsame. Aber Django Debug Toolbar erfordert, dass wir eine Art internes I p geben, das
verwendet werden darf . Und dafür wollen wir nur 127.0 dot 0.1 verwenden. Das ist Ihr lokaler Host Speichern. Schauen wir uns unser Terminal an. Alles sieht gut aus in Terminal Land. Und lassen Sie uns unsere Seite hier aktualisieren und zu diesem Zeitpunkt können Sie tatsächlich nicht sagen, aber es versucht zu funktionieren. Wir haben noch einen Schritt zu tun, aber es versucht wirklich zu funktionieren. Also im Allgemeinen werden wir hier oben ein kleines Django-Symbol sehen, und das wird unser Profiling-Tool sein. Das Letzte, was wir tun müssen, ist, unseren Do-Kuchen zu öffnen und der einfach
unter Rocket Man lebt . Hier haben wir einen Rocket Man-Ordner, direkt neben dem Festlegen von statischen und Vorlagen. Wir haben eine Datei namens URLs dot pie und hier wollen wir im Grunde einige zusätzliche
Sie RLs hinzufügen , damit die Jangle Debug-Symbolleiste Ihnen zeigen kann, was sie Ihnen zeigen will . Also lassen Sie uns hier gehen wegen zu tun, um Einstellungen zu tun. Wir werden sagen, wenn Einstellungen Debug wahr ist, bedeutet
das, dass wir lokal entwickeln. Debug ist nur dann wahr, wenn Sie lokal entwickeln. Sobald Sie in die Produktion gehen, sollten
Sie entlarvt haben verdient. Oft schieben Sie Engine X oder eine andere Art von Anwendung, die Ihre statischen Dateien bereitstellt. Aber vorerst ist
das okay. Lassen Sie uns Debug-Symbolleiste importieren, und wir brauchen nichts mit diesen zu tun. Und lassen Sie uns einfach voran und fügen Sie Debug-Symbolleiste zu rul Mustern hinzu. Also wieder, das wird nur für unsere lokale Entwicklung auftauchen. Also sind Sie alle Muster, ist gleich Ihren alten Mustern, und lassen Sie uns es auf eine andere Art und Weise erhöhen. Fügen wir Uriel-Muster am Ende hinzu. Sie sind L-Muster gleich, was auch immer die Liste plus vorhandene neuronale Muster ist. Aber dieser Weg unterstrichen. Unterstrich Debug-Unterstrich. Schrägstrich unterstrichen. Und dann lassen Sie uns Debuggen zu einer Bar einschließen, die Sie oder sonst jetzt brechen wird, weil wir wahrscheinlich keinen Pfad oder Include installiert haben oder den richtigen Weg enthalten haben. Es ist wahrscheinlich installiert, um zum Django zu kommen, aber es ist wahrscheinlich nicht so importiert, wie wir erwarten, dass es importiert wird. Also gehen wir zurück nach oben. Haben wir Django Sie oder sonst haben wir zuversichtlich, dass Sie anders sind, aber wir wollen von Django Dot Ural Import Include in der Vergangenheit. Okay, gehen
wir zurück und aktualisieren unsere Seite, und sie wird immer noch nicht angezeigt, also habe ich offensichtlich etwas falsch gemacht. Gehen Sie zurück zu dev dot pie installiert APS Middleware installiert. I p ist Nein, das sollte installiert werden. Nein. Innere Augenerbsen. Lass uns voran gehen und geben, dass eine Auffrischung und hat ah, da ist es. Also es Ah, ich schätze ein wenig pingelig. Ich meine, es gibt ein paar Schritte,
aber wieder, aber wieder, das ist alles dokumentiert entweder in diesem Video oder in der Dschungel-Symbolleiste Lesen Sie die Ducks Website . Also hier drin haben wir Jangle Debug-Symbolleiste. Es sagt uns, die Version, die wir verwenden die Verarbeitungszeit zeigt uns oder Einstellungen. Wie viele SQL-Abfragen. Dies ist eine große, weil Sie mit einem Content-Management-System arbeiten. Sie können am Ende Blähungen dies viel sein, idealerweise schießen für weniger als 100 Abfragen, wenn Sie können. Wenn Sie jemals eine Website mit 1000 Abfragen sehen, muss sich
etwas definitiv ändern. Das heißt, das ist schrecklich. Wie viele statische Dateien verwenden wir und gehen tatsächlich zu den SQL-Abfragen zurück? Wir können sehen, welche hier drin gelaufen sind. Das ist ziemlich cool Weekend Say, Hey, erklären Sie sich selbst und das tut es. Es sagt uns, was los ist. Das ist ziemlich ordentlich, damit wir unsere statischen Dateien sehen können. Wir können unsere Vorlagen auch hier sehen. Wir haben 13 Vorlagen gerendert, so dass wir eine bessere Service-Angebotsseite haben. Wir wissen, woher das kommt. Das ist wirklich hilfreich. Wenn Sie ein bestehendes Projekt gestartet haben und Sie sind wie, Oh, wo ist diese Vorlage? Woher kommen diese Vorlagen? Ich weiß nicht, woher sie kommen. Das wird dir sagen, was genau kommt. Dies kommt von Dienstleistungen Schrägstrich Service Listing Seite. Das ist ziemlich cool. Wir wissen, dass es auf HTML basiert. Hier drin ist ein Haufen Wag-Tail-Zeug. Also ist es mit der Benutzerleiste mehr Gewicht zu sagen Männer Zeug, und wir haben einen Include für Header und enthalten For Our Footer sagte uns alle möglichen Dinge, sagt uns
sogar, was mit Einlösen und Signalen und Protokollierung los ist und alle das gute Zeug . Dies ist also ein vollständiges Profiling-Tool. Die größten Helfer hier sind Ihre SQL-Abfragen und Ihre Vorlagen. Wenn Sie eine Website haben, die wirklich,
wirklich langsam geladen wird oder Sie nicht wissen, woher eine Vorlage kommt
oder woher einige Daten in einer bestimmten Vorlage stammen , wird
dies Ihnen enorm helfen. Das ist also zu einem Werkzeug Nummer eins. Nummer zwei hieß P Sie d sein. Also gehen wir zurück. Dieser ist eigentlich super einfach zu installieren, so dass wir Pip installieren P Sie d sein. Lassen Sie uns voran und tun pip show p you d Be und es wird 2019 dot verwenden, um uns voran zu gehen und unseren Server mit Python Men Shop neu zu
starten. Ich führe Server 0.0 dot 0.0 cool und 8000 und wir konnten all diese schließen. Und lassen Sie uns dev dot txt wieder öffnen. Und lassen Sie uns P D. B gleich 2019 Punkt auch. Also sind wir Version sperren die Version von PDB, die wir in unserem Projekt in nur den
Dev-Anforderungen verwenden . Und für diesen ist
das buchstäblich alles, was wir tun müssen. Also lasst uns diesem einen Schuss geben. Gehen wir zu Service-Modellen und um dieses zu aktivieren,
ist das super einfach. Sie werfen es einfach, wo immer Sie sind, haben einige Probleme, wenn Sie brauchen. Sie müssen etwas debuggen und Sie geben einfach import Sie d be Doppelpunkt und dann p u 0.2 db Klammern. Und das wird Ihren d Bugger für Sie laufen. Also was? Geht das zu Ihnen? Wird mir das alles sagen, worauf ich in dieser speziellen Ansicht zugreifen kann? Alle Variablen, alle Daten, alles. Lassen Sie uns voran und erstellen Sie hier eine neue Variable. Nur als Beispiel heißt
es Space Company ist gleich X. Stellen Sie sicher, dass unsere Server laufen OK, sieht ein okay aus. Gehen wir nun zurück zu unserer Services-Seite und lassen Sie uns einfach diese Seite aktualisieren. Der Grund, warum wir auf dieser Seite sind, übrigens, ist
übrigens,weil wir eine Service-Listing-Seite haben und wir benutzerdefinierte Kontakte hinzufügen. Also haben wir hier eine benutzerdefinierte Logik, nicht wirklich Logik, sondern einige benutzerdefinierte Daten, die wir in die Vorlage werfen möchten. Und vielleicht müssen wir das überprüfen und herausfinden, was los ist. Also unter der Service-Listing-Seite und einem Treffer aktualisieren, und es sieht so aus, als ob es nur für immer geladen wird. Aber wenn Sie Ihr Terminal wieder hochfahren, werden
Sie diese extrem hässliche Seite jetzt sehen. Normalerweise gibt es ein kleines Pop-up im Wind in der Mitte, man muss nur schlagen. Ich glaube, es ist der rechte Pfeil, und dann treten Sie ein, und das bringt Sie einfach hier rein. Und dann kannst du links und rechts treffen, und du kannst hier durchgehen. Normalerweise gehe ich direkt zum rechten Abschnitt. Sie können sehen, dass sich das grüne Zeug dort verändert, und so haben wir Zugang zu den Wachen. Der Kontext, die Schlüsselwortargumente, die Zugriff auf die gesamte PP hatten. Du bist ein Ding, das wir nicht brauchen, das schon gelaufen ist. Es wird eine Whiskey-Anfrage ausgeführt. Selbst ist die Service-Listing-Seite. Unsere benutzerdefinierte Variable namens Space Company ist gleich X, und das war's. Wir haben ein paar andere Sachen drin, auf die wir nicht eingehen werden, weil das die
größte Hilfe ist . Also lasst uns in unseren Kontext gehen. Ich werde den Schrägstrich drücken. Das ist direkt über meinem Return-Schlüssel, und das wird es nur gegen nicht super intuitiv öffnen, aber es ist super hilfreich. Und im Zusammenhang haben wir Seite selbst Anfrage und Dienste, so dass wir tatsächlich sehen können, dass, wenn wir hier zurück in Service Listing Seite gehen, haben
wir Seite Seite Punkt etwas Seite Punkt Titel bezahlt Schüsse verwendet. Untertitel Und wenn ich diesen wieder mit demselben Schlüssel öffne, können
wir alles sehen, was uns in der Vorlage zur Verfügung steht. Und seitdem, scrollen Sie nach unten, bis ich das Wort Titel dot tono sehe, wo bist du? Ein CEO-Titel Slug alle möglichen Sachen. Hier ist unser Untertitel. Alle Dienste, die wir mit Ihrer Rakete leisten können. Das ist genau richtig. Und das ist der Seitentitel wird nur Dienste genannt. Das ist unsere Seite. Du bist l Wir haben das schon mal benutzt, und jetzt können wir wirklich alles sehen, was hier drin ist. Wir haben einen vollen ul Weg. Sollten Sie jemals brauchen, dass alle möglichen Sachen, Selbst wird genau das Gleiche sein. Self und Paige sind identisch, aber der, den wir hinzugefügt haben, vielleicht ist der, den wir debuggen möchten, diese Dienste. Und das liegt daran, wenn wir hierher zurückgehen, sagten
wir, dass Context-Dienste den bezahlten Shot-Objekten entsprechen, die diese Öffentlichkeit leben. Vielleicht wissen wir nicht alles, was da drin ist. Wir können nichts rausfinden. Es scheint, als würde es uns ein paar Geheimdaten anwerfen, damit wir hier reingehen können. Wir können dieses öffnen und es heißt Null und eins, so dass wir automatisch wissen, dass es eine Liste ist. Es ist kein Wörterbuch. Wörterbücher haben den Namen Kees. Listen haben Indizes oder Indizes nur für ihren Index Null und man macht es zu einer Liste. Also wird die erste Seite angezeigt, und das ist die Service-Seite, die tatsächlich erscheinen sehen könnte. Also Null, das ist die 1. 1 ist eine Service-Seite, und dann könnten wir den ganzen Weg nach unten scrollen, bekommt alle möglichen Dinge Paige. Ich d. Nummer fünf. Das ist ordentlich. Ist es das Leben? Ja, das ist live. Ist es Schloss? Nein. Es ist nicht verschlossen, Max Count. Wir haben nicht davon gelernt, aber wir werden, Oh
, viele Dinge im Jahr und es gibt Titel. Die 1. 1 ist die Reinigung. Jemand geht weiter nach unten und geht zu Nummer zwei Ihr Index Nummer eins. Aber es ist die 2. 1 in unserer Liste. Gehen Sie einfach den ganzen Weg runter, wo es sagt Punkt Titel wieder scheint. Die ersten Dienste, die den zweiten Service reinigen, scheinen
also, das sagt uns genau, was wir wollen. Oder in diesem Fall möchte
ich nur die Titel sehen, die in dieser Reihenfolge putzen und glänzen,
reinigen und glänzen würden . Das ist also wirklich cool. Das ist eine andere Möglichkeit, wirklich nur zu debuggen, was Ihnen in einem bestimmten
Kontakt präsentiert wird . Also für uns sind
wir in den Kontakten. Hier wird es genau hier drin laufen, und das oben rechts sind alle Daten, auf die wir Zugriff haben. Also, wenn Sie sich jemals fragen, was ist das? Ein CEO-Titel Feldname? Sie gehen einfach hier rein, schauen Sie sich den Namen des CEO an, oder Sie könnten sich den Quellcode ansehen und
dann, dann, um hier rauszukommen, drücken
Sie einfach den Buchstaben Q, um zu beenden. Es wird sich beschweren. Ja. Es wird sich beschweren. Keine Ausnahme. Mitgelieferte Nachricht. Das ist okay. Und wir werden das einfach loswerden. das auch nicht. Angst vor diesem Server hat sich neu gestartet, aber wenn dies nicht der Fall ist, können
Sie ihn immer manuell neu starten. Refresher Pidge. Und wir sahen über Debug-Symbolleiste und alles. Also gehen wir hin. Wir haben Django Debug-Symbolleiste und P Sie d installiert werden. Wir haben auch eine neue Datei namens dev dot txt hinzugefügt. Also, wenn Sie dieses Projekt installieren, werden
Sie pip install Dash sind dev dot t x team eingeben und
alles andere von den Anforderungen installieren ,
nicht txt-Datei, nicht txt-Datei, sondern auch Django-Debug-Symbolleiste und P Sie d sein. Ich hoffe, das wird dir in Zukunft wieder helfen, wenn du deine eigenen Werkzeuge
hast und diese nicht magst, völlig ignoriert. Aber diese beiden Werkzeuge haben mir im Laufe der Jahre enorm geholfen und auch heute noch habe ich ihn auf fast jedem einzelnen Projekt
installiert, nur so dass ich diese kleine zusätzliche
helfende Handhaben kann helfende Hand
15. Flex/Misc: In Ordnung, lassen Sie uns weitermachen und einen anderen Seitentyp erstellen. Das ist nicht das Aufregendste, was wir bisher getan haben. Aber wir werden einen regulären Seitentyp erstellen. Ich nenne es eine Flex-Seite. Ah, manche Leute nennen es eine generische Seite oder eine einfache Seite. Einige Leute nennen die andere Seite oder eine Standardseite, aber wirklich, die Idee ist, dass wir eine Art von Seite haben. Es hat keinen wirklichen Zweck, außer Inhalte zu liefern. Diese Seite wird also nicht unbedingt mit ah,
blawg oder Dienstleistungen verwandt sein. Es ist nicht wie eine Service-Detailseite, auf der es tatsächlich einen bestimmten Zweck hat. Dies ist nur eine reguläre Inhaltsseite. Nein, wir werden noch keine Inhalte hinzufügen, aber wir müssen diese Seite für zukünftige Lektionen erstellen. Lassen Sie uns weitermachen, aktivieren Sie Ihre virtuelle Umgebung und gehen Sie weiter und starten Sie. Python hat es geschafft. Ich starte die App. Ich werde es Flex nennen, und dann gehen Sie weiter und führen Sie Ihren Server mit Python verwaltet, ich führe Server Port 8000 und in unserem Code werde
ich Base Dot Pie öffnen und direkt unter Diensten habe ich eine neue App hier drin genannt Flex und Sie können tatsächlich in meinem Editor hier sehen. Ich habe einen neuen Ordner namens Flex, also werde ich das speichern und Flex öffnen. Und ich werde ein paar Sachen loswerden, von denen ich weiß, dass wir nicht brauchen, weil Wag Tail sich um eine Menge
von diesem Zeug für uns kümmert . Also Blick nach oben. Wir brauchen nicht, wir schreiben keine Tests. Wir machen nichts mit unserem Admin. Wir wollen Migrationen darin behalten. APs und Modelle, dieser Kuchen und wirklich alles, was wir tun werden, ist, wieder eine normale Seite zu erstellen. Also werden wir von der Wartezeit bis Punktkern-Punkt-Modelle Importseite zu tun, und dann werden wir eine neue Seite namens Flex Page erstellen, und es wird nur das Seitenmodell erben. Und für jetzt können
wir passieren, und das wäre gut genug, um eine Seite zu erstellen. Nun gehen wir diesen noch einen Schritt weiter. Lassen Sie uns Klasse Metta machen, und lassen Sie uns dies eine ver rühmen Namen geben. Also werden wir sehen, dass wir den Namen hier tatsächlich ändern können, so dass das für beide Name gleich flex ist, und es würde normalerweise nur Flex Page genannt werden. Aber wir werden es Flex Sonstiges Seite nennen, und die ausführliche namens Plural wird flexible fehlende Seiten einfach so sein. Nun, wenn wir einen Browser öffnen und ich gerade die Homepage hier bearbeite, wenn ich zu Add Child Pidge gehe, haben
wir hier eine Flex Misc Seite. Ich werde das jetzt nur ein bisschen größer machen, wenn ich darauf klicke, weil ich keine Migrationen durchgeführt
habe, ich erwarte, dass dies mir den Classic 404 Werfen Wir liefen schon einmal in diese Luft, und das ist sehr erwartetes Verhalten. Gehen wir zurück zu unserem Terminal. Stornieren Sie das, und ich werde diese Seite einfach löschen. Und jetzt werde ich Python ausführen, Dot Pie verwalten, Migrationen
machen. Und dann, noch
einmal Python gelungen ist, migriere ich und wieder, was das tut, ist, wenn Sie Migrationen wie diese machen, gerade eine Datei namens 0001
Unterstrich initialen Punktkuchen erstellt haben . Und das schreibt wirklich nur Python-IQ-Anweisungen für das, was Django tun sollte, um Ihre Datenbank zu
gestalten, so dass diese Seite tatsächlich für uns funktioniert und dann, wenn wir Python ausführen verwaltet hoch migrieren. Dies wird diese neue Migrationsdatei anwenden, und es wird tatsächlich Struktur zu Seite, die wir suchen Teoh in unserer Datenbank zu erstellen. So verwaltet es unsere Datenbanktabelle auf Spalten für uns. Jetzt gehen wir weiter, führen Sie unseren Server
erneut aus, schließen Sie ihn und aktualisieren Sie ihn. Und in einer Sekunde wird
das geladen. Wir können jetzt eine neue Flex-Seite erstellen. Also lassen Sie uns das einfach nennen. Ich weiß nichts von uns. Nur eine generische Seite Jetzt gibt es nichts anderes auf dieser Seite es Wir werden es
so halten , nur für ein wenig. Wir brauchen nur, dass diese Seite läuft. Also gehen Sie weiter, veröffentlichen Sie diese Seite. Die Dinge sahen gut aus, wenn wir live von euch klicken. haben wir schon mal gesehen. Das haben wir schon mehrmals gesehen. Wir werden eine Vorlage zu erhalten, existiert nicht Fehler. Und genau wie diese Vorlage gibt es nicht bei über uns. Es sucht nach Flex Slash Flex Unterstrich bezahlt Schuss. HTML. Wir können tatsächlich gehen und genau ändern, welche Seiten suchen. Wir wissen, dass, wenn wir hier reinschauen mit Motor Django, die richtige Art von in diesem Bereich der rechten Hand Luft. Wir können sehen, dass es nach Flex Page im Flex-Ordner sucht, sich im Ordner Vorlagen befindet. Es sucht es auch in der Home-App und der Such-App und dann auch innerhalb aller unserer Pakete. Lassen Sie uns voran, machen Sie diese Vorlage tatsächlich existieren. Öffnen Sie unseren Code und ich werde einfach schließen all das zu öffnen, Rocket Man, gehen Sie in Vorlagen und lassen Sie uns einen neuen Ordner hier erstellen namens Flex und dann eine neue Seite namens Flex Seite dot html. Und genau das ist, wo Wag Schwänze nach dieser Vorlage suchen. Als nächstes müssen
wir dies tatsächlich von einer Seite erweitern. Lassen Sie uns dies von basierend auf hte E-Mail erweitern. Das ist, wo all unser HTML ursprünglich kommen wird, und wir werden nur ein wenig hier überschreiben. Erstellen wir einen neuen Block, und wir werden ihn Inhalt nennen. Wenn Sie sich uns jetzt nur anschließen, wenn Sie sich basierend auf HTML öffnen, haben
wir hier eine Blockierung namens Bannerinhalt und zusätzliche Js. Wir werden diesen Inhalt nehmen, und wir werden nur ein Haufen HTML direkt hier reinspritzen. Also was? Ich werde tun, ist genau richtig. Einige Bootstrap-Code wirklich schnell. Also habe ich eine Reihe. Ich habe Säulenmittel acht, und lassen Sie uns das durch zwei versetzen, also Offset MD zu und ich habe ein H hier drin. Ich habe eine benutzerdefinierte Klasse, die ich mit dem Namen CC-inneren Titel verwenden werde,
und hier werden wir nur die Seite Punkt Titelseite Punkt Titel verwenden und jede Möglichkeit sagen Paige kommt mit einem Feld namens Titel, so dass wir wissen, dass wir Zugriff auf das. Lassen Sie uns voran und aktualisieren Sie unsere Seite immer und wir können sehen, da es ist. Wir haben ein wenig über uns Titel. Das ist genau das, worin ich eingegeben habe. Wag Tail ist ein Content Management System, das der Titel unserer Seite ist. Kein Titel unserer Seite erscheint hier,
also ist das alles, was es gibt, um wirklich eine brandneue App und eine Seite von Grund auf neu zu erstellen. Wir werden ein wenig mehr zu dieser Seite hinzufügen, wenn wir beginnen, in
Stream-Felder ein wenig entlang der Straße zu bekommen , so dass diese Seite vollständig anpassbar sein könnte. Also los, bekomme Commit, das es speichert, mach, was immer du tun musst, und wenn du bereit bist, gehen
wir zu diesem nächsten Video
16. Testimonials: Bisher haben
wir Wag Tail Seiten mit nur wenigen benutzerdefinierten Feldern erstellt. Dies hat weitgehend alles nur weg Tale Zeug gewesen. Aber jetzt lassen Sie uns eher einen Schritt nach hinten oder nach außen machen. Und lass uns mit Django arbeiten. Und lassen Sie uns ermöglichen, dass ein Jingle-Modell innerhalb des Wags zugänglich ist. Sag es Admin. Nun, im Grunde, mit dem Wag Tail Modell Inman, werden
wir nicht das Django-Modell Inman brauchen. Nun, wenn Ihr brandneuer D Jango immer dann mit Modellen arbeitet und Sie neue Daten erstellen, kommt
es mit dem Django-Admin, und Sie können alle Ihre Daten auf diese Weise verwalten. Nun, wenn Sie einen Weg schaffen, bis Sie glücklich sind, haben Sie jetzt zu Edmunds und wir werden im Grunde sagen: „ Verwenden Sie den Jan Goodman überhaupt
nicht, ich habe Ihnen noch nicht einmal die Jangle Wedemen gezeigt. Wir werden es uns nicht ansehen. Wir werden einfach Wag sagt Modell Edmund verwenden. Also bin ich in meiner virtuellen Umgebung und ich hatte meinen Server laufen, also werde ich das abbrechen und ich werde eine brandneue App erstellen. Also werde ich Python Dot Pie verwalten und wir werden eine neue App namens
Testimonials erstellen . Wenn ich das Recht buchstabieren könnte, es mony als zu testen, und dann werde ich diesen Server erneut ausführen und meinen Code öffnen. Schließen Sie die Sachen aus der letzten Lektion und Sie können hier sehen, ich habe einen neuen Ordner namens Testimonials. Nun, Ansichten sind wirklich nur ein Wackel-Sache. Sie brauchen es nicht zu viel, wenn Sie es mit wag tell zu tun haben, es sei denn, Sie schreiben eine benutzerdefinierte Jangle-Ansicht. Also werden wir diese Akte loswerden. Nun, wir werden alle Tests schreiben. Ich glaube nicht, dass wir dafür einen Test schreiben müssen. Und wir werden tatsächlich unsere Anzeige Männer APS Modelle DuPuy In It Up High und Migrations
Folder halten . Die größte Änderung hier ist also, dass wir wirklich nur die Admin-Dupuy-Datei behalten. Lassen Sie uns voran gehen und öffnen Modelle dot pie. Und bevor wir das tun, gehen
wir weiter und öffnen Basispunktkuchen und lassen Sie uns das tatsächlich aktivieren. Also haben wir all diese verschiedenen APS. Wir haben hier eine neue App namens Testimonials, die mit dem Ordnernamen übereinstimmt. Wo bist du hin? Testimonials. Genau hier. Nein, wir gehen zu dio ist das speichern und schließen basierend auf Kuchen? Nein, Wir haben eine Jingle-App erstellt, und das ist so ziemlich alles, was wir an dieser Stelle brauchen. Wir werden sagen, Klasse und wir werden ein Zeugnis hinzufügen, und es wird Modelle Punktmodell erben. Das ist nur ein gerader Jangle. Das hat an dieser Stelle nichts mit Wag Tail zu tun. Und wir werden das als Testimonial Class bezeichnen, braucht definitiv einen besseren Doc String. Aber im Moment, das ist alles, was wir jetzt reinlegen werden. Was ist ein Zeugnis? Testimonials Ein Zitat und hat eine Person. Also sagen wir „Namensnennung“ Also, was soll das Zitat jetzt sein? Dies wird viel wie ein reguläres Feld aussehen. Also, wenn wir zu Hause Models Dot Pie gehen, haben
wir Blei Texas gleich einem Char-Feld. Wir haben Fremdschlüssel. Beachten Sie, wie Modelle verwendet werden, die hier Kuchen? Wir werden im Grunde genau dasselbe tun. Nur dieses Mal ist es kein Weg. Sagen Sie Paige, es ist ein Jangle-Modell. Also ein Zitat. Wie lange soll ihr Zitat dauern? Geben wir uns ein Textfeld mit einer maximalen Länge von etwas relativ kurz. 500 Zeichen. Kann das leer sein? Nein. Kann das sein? Nein. Nein, dies ist ein obligatorisches Feld und Attribution würden im Grunde das gleiche tun, aber wir werden ein char-Feld verwenden, also wird dieses eine maximale Länge von se haben. Vielleicht muss das einen Namen und einen Firmennamen haben. Also Caleb Tallinn von der Programmierung für alle. Also schätze ich, das sind ungefähr 50 Charaktere. Kann das leer sein? Nein. Kann das sein? Nein. Nein. Und ich werde sie auf ihre eigenen Linien aufteilen, weil es das Leben ein
wenig leichter machen wird , wenn wir das alles auf verschiedenen Linien sehen können. Da gehen wir. Jetzt können wir hier ein paar verschiedene Dinge tun. Optional können wir diesem einen ausführlichen Namen geben. Wir haben dies in der letzten Lektion für rühmen. Der Name ist gleich seinem Zeugnis, und die ausführliche Bezeichnung Plural könnte
Zeugnisse sein . Jangles wird das schon für uns tun. Wag Tail macht das schon für uns. Wir müssen das nicht einstellen,
weil , es unseren Klassennamen,unser
Zeugnis und Plural in Pluralaugen nehmen wird . Etwas in Englisch Grundsätzlich fügen Sie Justin s hinzu Und so sagt es, OK, ich werde einfach ein s hinzufügen, was auch immer der für die meisten Namen ist, so technisch ist dies optional. Es ist jetzt nicht erforderlich. Wenn Sie den Namen ändern möchten, aber den Modellnamen als Zeugnis behalten
möchten, könnten Sie das tun. Dies dient zur Anzeige. Als nächstes wollen
wir ihm eine Zeichenfolge geben. Also der Tod unterstrichen. Unterstrich für Zeichenfolgenunterstriche. Unterstrich innere str Es nimmt einen Parameter selbst, weil es in einem Objekt ist. Es ist in einer Klasse in Python, also braucht es selbst. Und das wird nur die String-Darstellung dieses Elements sein. Und ich werde Ihnen zeigen, wie das in ein wenig der String-Darstellung dieser
Klasse für dieses Objekt aussieht , und wir werden nur selbst Punkt-Zitat oder Attribution zurückgeben Lassen Sie uns selbst nicht zitieren. In der Tat, lassen Sie uns kein Zitat machen. Lassen Sie uns eine F-Zeichenfolge zurückgeben. Also Selbstpunkt-Zitat durch Selbstpunkt-Attribution So wird es einen sehr langen String-Namen haben. Wahrscheinlich zu lange, um ehrlich zu sein, aber damit werden wir jetzt arbeiten. Gehen wir zurück zu unserem Server. Abbrechen Sie es und lassen Sie uns Python ausführen, verwalten Sie diese Tortenmake-Migrationen und all dies wird tun, ist die klassische 001
anfängliche Dot Pie Datei zu erstellen . haben wir schon mal gesehen. Das ist im Grunde nur unsere Anweisungen, die in Python geschrieben wurden, wie Jangles
unsere Datenbank für uns strukturieren . Jetzt werden wir tatsächlich diejenigen anwenden, mit Python verwaltet hoch migrieren, die funktioniert. Gehen wir weiter, starten ihren Server
erneut und gehen wir zurück zu unserem Admin. Also bin ich wieder in meinem Wag und erzähle Männern hier, und ich werde nur eine Seite laden und du wirst sehen, sobald sie geladen ist, hat sich
nichts geändert. Sie werden hier nicht in der Lage sein, Zeugnisse zu finden. Tatsache ist, es existiert. Wir haben unsere Datenbank mit Testimonials oder mit einer Testimonial Tabelle strukturiert, die wir hier in unserem Modell sehen können. Allerdings haben
wir überhaupt keinen Zugang dazu. Lassen Sie uns also voran gehen und geben Sie uns Zugriff auf unsere eigenen Daten hier, damit wir
Zeugnisse hinzufügen können . Also lasst uns weitermachen. Öffnen Sie bei Minda Pie. Dies ist das erste Mal, dass wir bei min dot pie geöffnet haben und ich werde das
alles loswerden . Das ist Django Wittman, und wir werden Wag Tails Admin benutzen. Also machen wir, Ah, wenig Import hier. Also lassen Sie uns von Wag Tail Dodge Con Trib Punkt-Modell Admin Punkt-Optionen Import tun. Und wir wollen Model Edmund und importieren auch Modell Admin Register. Bevor wir fortfahren,können
Sie sehen, dass dies aus dem Paket namens Con Trib kommt. Bevor wir fortfahren, Ich bin nicht wirklich ein Paket. Es ist mehr von, ah, Halter für Beiträge für zusätzliche Funktionen, die Wag Tail kommen kann mit. Wir müssen sicherstellen, dass dies aktiviert ist. Also lassen Sie uns unsere Basis Dot Pie öffnen und schauen wir uns hier nach unten für wag tail dot con Trib dot model admin. Also modellieren wir Edmon. Ich sehe es nirgendwo hier drin. Also werden wir wollen, um dies zu ermöglichen, und ich werde es nur mit dem Rest der Beitrag Weddell Punkt con Trib Punkt-Modell
Edmund setzen , Speichern Sie das. Lassen Sie uns ihr Terminal überprüfen. scheint alles in Ordnung zu sein. Gehen Sie zurück zu unserem Browser. Geben Sie dem eine Auffrischung. Das Leben wird gut aussehen, wenn ich lade. Da gehen wir wieder. Wollte nichts sehen. Es ist also geschlossen, basierend auf Kuchen. Lassen Sie uns weiterhin unsere Anwendung hier registrieren. Als nächstes müssen
wir die Aussage selbst importieren. Also, weil dies nicht der gleiche Ordner bei min dot pie und Modellen oben hoch ist, können
wir einfach von Punktmodellen importieren Testimonial tun. Danke. V s Code für Auto Gefühl, dass für mich. Als nächstes gehen
wir voran und registrieren Sie dieses Modell. Inman. Nun, was wir hier tun müssen, ist, dass wir ein Modell schaffen müssen, das Männer mit unserem Zeugnis. Das ist diese Klasse hier. Und dann müssen wir es registrieren. Also werden wir eine Klasse eine neue Klasse erstellen und in der Klasse zugeben und das dann registrieren. Also lassen Sie uns dieses Zeugnis nennen. Admin könnte wirklich alles aufgerufen werden und wird Modell zugeben Nüsse erben. Das da genau. Danke. Haben Sie die Doktorin des Zeugnisses bei Männern Das ist eine Zeit getestet und sinnlos Doktoring. Aber Sie kennen Lehren, Doc. String So Modell ist gleich diesem ist, wo wir beginnen, tatsächlich setzen unsere Modell Frauen. So Modell ist gleich, um ihn Denkmal zu testen, und das muss der tatsächlichen Testimonial Klasse entsprechen. Das ist das Django-Modell, das wir in Modellen Dot Pie sehen. Das ist das hier. Als nächstes lassen Sie uns Menübeschriftung tun. Wie wollen wir das in unserem Wag Telemann nennen? Also, wenn es hier in ihrer Speisekarte auftaucht, wie wollen wir es nennen? Ich werde es Testimonials nennen. Geben wir ihm auch ein Menü-Symbol, und ich gebe ihm nur einen Platzhalter. Eine Menüreihenfolge irgendwo zwischen 101.000 Ausgabe. Lass uns, ich weiß es nicht. Geben wir ihm ein 290. Fügen Sie zwei Einstellungsmenü hinzu und Sie können alle diese Einstellungen in der Dokumentation sowie
an Docks finden , die bis dot io warten. Ich möchte dies nicht zum Menü Einstellungen hinzufügen. Was das sagt, ist, dass es dort, Lassen Sie uns nicht hinzugefügt, wir brauchen es nicht dort. Aus Explorer ausschließen ist gleich false. Lassen Sie uns nicht aus dem Explorer ausgeschlossen, und es gibt zwei weitere in der Listenanzeige, und dieser wird Ihnen gleich sein. Etwas, das wir noch nicht hinzufügen werden. Auf diesem tun Suchfelder ist auch etwas gleich. werden wir auch nicht hinzufügen. Lass uns das retten. Überprüfe unser Terminal. Stellen Sie sicher, dass es tatsächlich aktualisiert wurde. Gelegentlich nicht. Und gehen wir zurück zu unserer Wag Tail Seite und drücken Sie einfach Refresh. Und sicher genug,
du siehst, dass es immer noch nicht funktioniert. Das liegt daran, dass ich vor
einer Minute, vor ein paar Minuten, gesagt
habe, dass wir ein Zulassungsmodell erstellen müssen, und dann müssen wir es registrieren. Also nehmen wir dieses Modell war registrieren und lassen Sie uns dies als Dekorateur hinzufügen. Also werden wir das dort wieder speichern setzen. Stellen Sie sicher, dass Terminal Django Server selbst neu startet. Jetzt lass uns erfrischend treffen. Wir sehen hier auf der Seite. Es wird Zeugnisse sagen, genau so mit unserer kleinen Ikone. Das ist ein Platzhaltersymbol. Wir haben angegeben, dass eine Zeugnisse. Wir haben keine Zeugenaussage. Gehen wir weiter und fügen Sie eins hinzu. Was zu tun ist oder nicht. Es gibt keinen Versuch klassischen Yoda voran zu gehen und zu retten, und wir haben ein Zeugnis. Wir können hier noch einen hinzufügen, und das wird oh,
von Chewbacca sein , und sie sind wirklich, also haben wir Zeugnisse in Ihrem Das ist ziemlich cool. Jetzt, zu jedem Zeitpunkt, innere bekommen Kontextfunktionen, wenn wir sind, wenn wir eine Seite bearbeiten, so wie ich sie
referenzieren würde . Aber lassen Sie uns darüber reden. Wir haben eine Service-Models-Seite hier, Die Service-Listing-Seite und Inter get Kontext. Wir können jetzt tatsächlich sagen, dass Testimonials Punktobjekte alle Punkt, und wir können alle Zeugnisse bekommen. So ermöglicht es uns als Entwickler, Content-Eingabe Personen oder Ihrem Client, irgendeine Form von Daten eingeben zu lassen. Und wir können es dann ein wenig später benutzen. In Ordnung, lassen Sie uns ungewöhnlich, dass die Liste angezeigt wird, und wir wollen hier zwei Felder setzen. So wird es jetzt so sein, wie es angezeigt wird. Es ist nur die eine Spalte nur dieses Zeugnis und das ist die Zeichenfolgendarstellung. Also, diese Zeichenfolge, die str Methode hier sagt das Zitat von wem es gesagt hat. Also, wenn wir das hier ein Haufen Müll gemacht haben, speichern Sie
, bis der Server aktualisiert wird, werden
wir sehen, dass all dieser Müll tatsächlich auf ihrer Seite hier nur so auftaucht. Das ist die Zeichenfolgendarstellung. Das wollen
wir nicht, denn das sieht schrecklich aus. Und anstatt nur die String-Repräsentation unserer Klasse anzuzeigen, können wir
sagen,
Hey, warten Sie, können wir
sagen,
Hey,
warten Sie,bis das Zitat und die Attribution als Spalten angezeigt werden. Lassen Sie uns voran und fügen Sie Zitat in Kleinbuchstaben und Namensnennung. Gehen Sie weiter, speichern und aktualisieren Sie unsere Seite. Und würdest du dir das ansehen? Wir haben eine Namensnennung zitiert und es ist irgendwie alles. Nun lassen Sie uns eine Suche hinzufügen, denn vielleicht als Raketen-Wartungsfirma haben
wir so viele Kunden, die ich mir nur vorstellen kann, wie drei von meinem Kopf, Blauer Ursprung, Space X und NASA, Vielleicht Virgin Galactic. Also haben wir vier Kunden, aber ja, sie schreiben uns jeweils 500 Testimonials. Also haben wir 2000 Zeugnisse auf ihrer Seite, und wir wollen in der Lage sein, sie zu durchsuchen. Welche Felder möchten wir durchsuchen? Wir wollen in der Lage sein, durch Zitat und die Zuordnung zu suchen, was dies zu dio wird . Es ist ein hey, ich weiß, dass hier eine Suche eingebaut ist. Und so, ähm, da ist es die Suchleiste und lassen Sie uns eingeben G R taucht mit Ger auf. Geben wir Yoda ein, und es findet Yoda für uns. Aber in Zukunft wir in der Lage sein, einige davon auszuwählen. Wir wollen, dass der Content Entry Person oder ein Kunde sagt:
Oh, Oh, eigentlich, ich möchte nur, dass dieses spezielle Zitat von Yoda auf unserer Seite erscheint, und im Moment haben sie keine Möglichkeit, das in der Art zu tun. Sagen Sie, es gibt diese Funktion, die ein Snippet-Auswahlfeld genannt wird, und als Stream gefüllt ist, ist
es ein Snippet-Auswahlblock. Und was das tut, ist, wenn wir dies als Zitat unquote Snippet thes registrieren, dann wiederverwendbare Stücke von Daten mit einer grafischen Benutzeroberfläche innerhalb von Wag Tail werden. Wir werden das etwas später angehen, aber vorerst lassen Sie uns das einfach als Snippet registrieren. Also alles, was wir jetzt tun müssen, ist zurück zu unseren Modellen Dot Pie und an der Spitze hier zu gehen. Wir werden das als eine Möglichkeit bis Snippets registrieren wollen. Das kommt also von Wag Tail Dot Snippets. Top-Modelle, Import Register Snippet, dass eine direkt dort, und wir können dies als Dekorator verwenden oder gelegentlich sehen Sie dies als eine Funktion verwendet. Und dann könntest du dein Zeugnis hier so reinlegen. Wir werden es nicht als eine Funktion verwenden, die wir als Dekorator in Python verwenden weil alles ein Objekt ist, das Sie sie irgendwie austauschbar verwenden können. Verwenden Sie das eine oder andere. Verwenden Sie
jedoch nicht beides . Lass uns voran gehen, Refresher Seite und ganz plötzlich. Siehe Abschnitt „Snippets anzeigen“. Jetzt sind Snippets wieder wiederverwendbare Teile von Daten. Wir haben einen Abschnitt namens Testimonials. Es versteht, dass wir Zeugnisse haben, hier heißt Testimonial ist mit dem ausführlichen Namen Plural Testimonials. Es ist darauf geklickt, und jetzt, an diesem Punkt, können
wir einen Haufen Leeds aussuchen. Lass uns das etwas kleiner machen. Das Set sieht etwas schöner aus. Wir können eine Reihe von diesen schwächen auswählen, eine Reihe von ihnen zur gleichen Zeit
löschen. Wir können sie bearbeiten. Wir können einen nach dem anderen löschen, wenn wir wollten. Aber das Schöne daran ist, irgendwann die Straße hinunter, genau wie ein Seitenauswahlfeld oder ein Bildauswahlfeld, dieses kleine Motil, das auftaucht, ermöglicht es Ihnen, eine Seite oder ein Bild auszuwählen. Wir werden sagen können,
Hey, zeig uns ein Motel, wo wir nur Zeugnisse auswählen können, also kommt das hoch, die Straße
runter. Also im Wesentlichen, was wir getan haben, ist, dass wir ein Jingle-Modell erstellt haben, das es mit Wag Tail registriert . Also Waggle ist jetzt unser At Men Panel. Also müssen wir nicht den Jangle Admit verwenden, wir haben mehrere Spalten hinzugefügt. Sie sind irgendwie alles, was wir hinzugefügt haben suchen, schwächen, suchen entweder durch die Attribution oder die Zitatspalte Und dann haben wir es als
Snippet registriert und jetzt können unsere Daten in einer grafischen Benutzeroberfläche oder in etwas wie die get-Kontext-Funktion oder die get-Kontext-Methode.
17. Willkommen in StreamFields: Lassen Sie uns über Bachfelder sprechen. Ich habe das immer wieder erwähnt. Dies ist ein Konzept, das den Weg zu sagen extrem mächtig macht. Nun, Bachfelder sind eine wahnsinnig schöne Eigenschaft. ihnen können Sie Abschnitte von Inhalten so ziemlich überall auf Ihrer Seite hinzufügen. Sie können unbegrenzte Stream-Felder hinzufügen, und Ihre Inhalte müssen nicht in einer bestimmten Reihenfolge vorliegen. Also, wenn wir unsere Rocket Man-Seite jetzt ansehen, haben
wir Header einen Heldenbereich, nichts in hier und dann einen Fußzeilenabschnitt, der alles in Ordnung ist. Und das wird so bleiben, weil wir so gebraucht haben. Wir brauchen eine konstante Vorlage oder ein Layout für unsere gesamte Website. Aber genau in der Mitte hier haben wir alle Arten von verschiedenen Inhalten und wir können es mischen und mit einem Stream-Feld
abgleichen. Kein Beispiel für dieses al be Es ist wahrscheinlich ein ziemlich hässliches Beispiel. Ist das hier drin? Ja, los geht's. Also, auf der gelernten Wag Tail Dot Com-Website, dies ist eine Tutorial-Detailseite, die ich habe. Es erfasst automatisch den Tag-Namen und den Seitennamen, und dieser ist ein Titel. Das ist ein Stream-Feld und dann habe ich hier einen reichen Tech-Bereich, damit ich Links und
Bilder und solche Dinge hinzufügen kann . Und dann habe ich einen weiteren Titel hier drin, einige grundlegende Texte. Und dann habe ich einen Codeabschnitt und ich kann jede Art von Code schreiben. Ich möchte wieder einen anderen Titel, um mehr Text und etwas mehr Code. Und ich kann das auf jede Weise mischen und anpassen, die ich will. Das ist also Nein, das ist nicht das größte Beispiel. Mal sehen, ob ich einen besseren finden kann. Okay, ich habe endlich eine gefunden, wie man ein Jingle-Modell mit Wag Tails Model Admin registriert, was eigentlich unsere letzte Lektion war. Also, wenn Sie jemals nach Quellcode suchen, ist
es auf dieser Seite. So können Sie hier sehen. Ich habe einen Titel wie der Scherz und ich habe ein Stream-Feld, wo ich buchstäblich den Kern
setzen kann . Sie sind Ellen hier. Also habe ich nur Ihre alle, und es macht automatisch die Hervorhebung und Sachen von einem get Hub. Du, Errol. Ich kann uns alles mischen und kombinieren, was sie wollen. Und genau wie die andere Seite könnte
ich das nach oben und unten verschieben. Ich könnte Inhalte zwischen Abschnitten hinzufügen. Ich könnte Titel hinzufügen, wo immer ich will. Es gibt keine strenge Formatierung, und das ist es, was ein Stream-Feld uns erlaubt zu tun. Aber ich denke, ein noch besseres Beispiel wäre, sagen
wir, Landingpage. Nehmen wir an, Sie haben eine Zielseite, auf der Sie versuchen, jemanden zu konvertieren. Tatsächlich dachte
ich eigentlich nur an ein noch besseres Beispiel. Also hier ist eine Wag Tail Seite. Es ist von Verstärker, die Dot Org's geben, also haben sie hier einen Bannerbereich. Dies ist nicht Teil eines Streams gefüllt, weil es hier immer ein Banner geben wird, aber sie können die Bilder und Texte und solche Dinge austauschen. Dann haben wir hier einen Abschnitt, den sie nach oben oder unten bewegen können. Sie haben also diesen Abschnitt der drei Karten, und sie könnten ihn nach unten verschieben, einen
Abschnitt nach oben abschneiden oder vollständig löschen. Und dann haben sie hier noch ein Stromfeld. Warum begann Kreis zu geben? Sie könnten das nach oben oder unten bewegen, das alles in ihm anpassen kann. Dann müssen sie sich anmelden, sich für einen Newsletter
anmelden, um Philanthropie,
Ressourcen Schulungen und Lernmöglichkeiten zu erhalten , Chancen zu
gewähren, indem sie Kreise geben, und es bat um eine E-Mail-Adresse. Dann gibt es einen weiteren Abschnitt hier ein Bachfeld, einen
anderen hier drin und einen der unteren. Und wir könnten sagen: Weißt du was? Vielleicht wollen wir diesen grünen einen Zeh. Sei auch hier oben mitten in der Mitte. Möglichkeit, Ihre Inhalte so umschalten zu können, macht Ihre Seiten wirklich, wirklich flexibel, während Sie ein schönes Design beibehalten. Nun, wenn Sie bereits mit Django-Stream-Feldern vertraut sind, werden
wir viel wie ein Standard-ah-Modell aussehen, das mit der Jangle-Form gemischt ist. Aber wenn du ganz neu im Jangle bist, wird
dein brandneuer Wag Schwanz viel wie das aussehen, mit dem wir bereits gearbeitet haben, mit einem kleinen Unterschied. Und das ist wie Unterschied, zum größten Teil,
ist, anstatt Modelle zu sagen, dass Textfeld, wir werden am Ende sagen Blöcke, Textblock und anstelle von Decken falsch und Noah falsch, wir gehen zu sagen: Ist es wahr oder falsch? Ansonsten fast nichts ändern. Alles, was wir geschrieben haben, wird Ihnen schon sehr vertraut sein. In diesem Video werden
wir keine Stream-Felder schreiben. Ich wollte Ihnen nur eine schnelle Einführung in die Art geben, was ein Streamfeld ist und warum es wichtig ist. Und dann, als eine letzte Art von wichtigen bemerkenswerten Stream-Felder und wie sie
jetzt in der Datenbank in ihrem Zeugenblock oder einem Testimonial Modell gespeichert sind , haben
wir Quoten gleich Modellen Punkt-Textfeld in unserer Datenbank. Was auch immer die Datenbankkönigin missbraucht, dies wird ein Textfeld oder eine Textspalte mit einer maximalen Länge von 500 sein. Die Namensnennung wird ah sein, wahrscheinlich von Bogen unser Feld oder ein reguläres Zeichenfeld mit der maximalen Länge von 50 Zeichen, die Sie auch in Ihre Felder setzen können. Positive beigesetzt Ihre Felder, Fremdschlüssel viele zu vielen Beziehungen. Dinge wie diese und diese sind alle in ihren eigenen Spalten gespeichert. Aber ein Stream-Feld wird nicht so gespeichert. Ein Stream-Feld ist im Grunde der gesamte Stream. Felddaten werden als ein riesiges Jason-Objekt gespeichert, und der Grund dafür ist, dass Ihre Seite so alle benutzerdefinierten
Felder wirklich schnell nachschlagen und die Reihenfolge aller Ihrer Inhalte beibehalten kann , während immer noch nur Ausführen von Datenbankabfragen, wenn es tatsächlich absolut notwendig ist. Aber als Python-Entwickler, der Ihre Stream-Felddaten analysieren könnte. Ah, ein bisschen knifflig, weil es alles J erstarrt ist, und es ist ein bisschen schwieriger, es über die Datenbank zu ziehen, wie Sie es erwarten würden. Es gibt also meistens Profis. Es ist 90% Prosa, aber da ist ein kleiner Betrüger. Wenn Sie Ihre Stream-Felder wirklich automatisieren möchten und möchten, dass jemand ein Formular auf Ihrer Seite ausfüllt und ein Stream-Feld entlang der Straße erstellt, das
vielleicht nicht der beste Ansatz, istdas
vielleicht nicht der beste Ansatz,
denn das wird ein wenig etwas schwieriger als nur ein normales Feld zu verwenden und nur ein normales Modell zu
aktualisieren. Egal, lassen Sie uns voran und springen direkt in Ströme, Felder
18. Erstellen der StreamField: wie alles in der Welt der Programmierung, gibt es mehrere verschiedene Möglichkeiten, um genau das gleiche Endergebnis zu erzielen. In diesem Kurs. Wir haben alle unsere Seiten in ihre eigenen APs statt einer großen App namens Seiten gesetzt . Aber, hey, einige Leute mögen es, alle ihre Seiten in einer App zu setzen, und das ist völlig OK. Ich werde dir nicht sagen, dass das richtig oder falsch für mich ist. Ich mag es, Dinge zu teilen, damit ich sie viel einfacher finden kann. Die gleiche Idee kann auf Stream-Felder angewendet werden, obwohl ich eine App nur vier Stream-Feld erstellen werde, so dass wir nicht auf
kreisförmige Importe laufen und wir einen dedizierten Bereich für alle unsere Stream-Felder haben. Es hilft uns, unsere benutzerdefinierten Content-Abschnitte zu finden. Ah, viel einfacher, finde
ich. Anstatt sie in Stream zu verteilen,
fühlt sich an, dass nur für die Homepage ohne Stream-Felder in der Home-App sind. Und dann haben wir Stream-Felder in den Diensten Apfel. Wir haben Stream-Felder in, als ob ich die Flexseiten-App nicht kenne. Wir werden sie alle zusammenstellen, damit wir sie nett und leicht finden können. Also, was ich hier tun
werde , ist, in meine virtuelle Umgebung zu gelangen. Quelle. Rocketman Vin wurde aktiviert. So machen wir es mit. Dann lassen Sie uns voran gehen und tun Python Dot Pie verwalten. Starten Sie AP Streams und Streams ist Es wird eine kurze Terminologie für die
Wort-Stream-Felder geben, und lassen Sie uns gehen und Python bei PI verwaltet läuft über und lassen Sie uns das auf Port 8000 tun. Lassen Sie uns unseren Code öffnen und wir können sehen, dass es hier einen neuen Abschnitt namens Streams gibt. Lassen Sie uns voran und aktivieren Sie diese neue App, so geben Sie basierend hoch in unserem installierten APS. Wieder, wir haben diese Anzahl von Malen bereits gemacht. Lassen Sie uns voran und fügen Sie hier Streams hinzu. Speichern Sie schließen Sie das und lassen Sie uns gehen und suchen Sie nach Streams jetzt. Wir brauchen eigentlich nicht viel davon. Wir brauchen keine Aussichten. Sie werden ihre eigenen Vorlagen haben, und Stream-Felder werden auch auf verschiedenen Seiten aufgenommen werden. Wir werden keine Tests schreiben, also müssen wir das nicht tun. Modelle während Stream-Felder sind ihre eigenen Dinge, also was wir tun werden, ist das Umbenennen von Modellen. Zwei Blöcke. Ich schätze, du könntest es Models nennen, wenn du es wolltest. Ich mag Colin. Es blockiert APS. - Wir gehen. Teoh, bleib Admin. Wir werden löschen. Also haben wir Migrationen darin. APS und Blöcke und in Blöcken. Ich wollte das löschen. Und jetzt haben wir, was wie eine Jangle-App aussieht, die wir irgendwie mutiert haben. Also haben wir nicht einmal ein Modell Stop High File mehr. Es ist nur Block Stop, ich jetzt, der Grund, warum ich es einen Block nenne, ist, weil jedes Stream-Feld, jedes Stream-Feld, das wir am Ende erstellen, tatsächlich ein Block irgendeiner Art ist. Vielleicht ist es also ein Char-Block oder ein Bildauswahlblock oder ein Auswahlblock. Wir werden ein paar dieser verschiedenen Blöcke zusammen durchlaufen, aber im Moment müssen wir nur sicherstellen, dass wir Streams laufen und laufen, dass wir Streams basierend auf Kuchen aktiviert haben und dass wir einen Blockstopp haben. Ich Datei, sobald Sie den Kopf über die nächste Lektion haben und wir werden unser erstes
Stream-Felderstellen Stream-Feld
19. Dein erstes StreamField: Oakley lokal, lassen Sie uns voran und erstellen Sie ein erstes Stream-Feld. Dies wird ein grundlegendes textbasiertes Stream-Feld sein, also lasst uns voran gehen und unseren Stream-Block öffnen. Stoppen Sie, ich Datei und lassen Sie uns unseren ersten Block erstellen. Und was ich hier sage, ist geschlagen Block. Jetzt werden wir einen markierten Block mit nur einem einzigen Feld in erstellen. Es wird nur ein normales Textfeld sein. Und anstatt so etwas wie Modelle Dutch, unser Feld zu verwenden, können
wir so etwas wie Blöcke Dot hr Block verwenden. Und das ist streng wag sagen an dieser Stelle, das ist immer sagen den ganzen Weg. Nun, an der Wurzel davon bricht schließlich in Django zusammen. Aber das ist so ziemlich immer sagen jetzt. Nun ist das Schöne an Streamfeldern ist, dass sie Abschnitte von Inhalten sein können, die nach oben und unten
bestellt werden können, so dass Sie sagen können ,
wie hallo, Welt ist die 1. 1 Mein Name ist Caleb ist ein 2. 1 Ich mag Ziegen ist die 3. 1 und es ist genau wie das nach oben und unten bewegen. Aber Sie können dies mit ganzen Inhaltsblöcken tun. Das ist eine wirklich schöne Sache. Die andere nette Sache daran ist, dass Stream-Felder verschachtelt werden könnten, sie wiederverwendet werden können ,
und tatsächlich wir ein wenig später darauf eingehen. Also lasst uns weitermachen und damit anfangen. Das erste, was wir tun müssen, ist dies zu importieren. Lassen Sie uns von Wag Tail Dot Kern wichtige Blöcke tun. Kein Hinweis, dass dies die Wortblöcke verwendet und unsere Datei heißt Blocks up High. Da gibt es keine Beziehung. Es ist zufällig, dass ich das Blöcke angerufen habe. I Es muss nicht Block Stop I genannt werden. Dies ist einfach, wo ich diese Datei speichern, und Wag Tail hat auch eine Datei namens Blocks That Pie. Jetzt lassen Sie uns unsere erste Klasse hier ein Titelblöcke erstellen. Lassen Sie uns diese Klasse Titelblock nennen und wird von Blöcken Punkt geschlagen Block erben, und es wird ein einzelnes Feld hier haben. Nur Text Text ist gleich zwei Blöcke Blöcke Punkt hr Block, und hier können wir sagen, statt leer ist gleich wahr oder falsch oder nein ist gleich wahr oder falsch. Wir können sagen, dass dies erforderlich ist. Wahr oder falsch. Ja, dies ist erforderlich. Das ist die Standardeinstellung. Ich kann es hier sehen, sagt Char. Block erfordert gleich true. Das ist die Standardeinstellung. Ich kann uns auch helfen. Text maximale Länge, mittlere Länge, benutzerdefinierte Validatoren, Dinge wie diese. Lass uns weitermachen und uns etwas Hilfe geben. Text. Es wollte sagen, Hilfe-Text ist Text, der angezeigt werden soll. Wir brauchen keine Paneele. Wir brauchen so etwas nicht. Warten Sie, bis einfach automatisch davon ausgehen, dass, wenn Sie hier ein Stream-Feld haben, es angezeigt werden sollte. Lassen Sie uns weitermachen und mit einigen Metadaten arbeiten. Also, zuerst können
wir uns eine Vorlage geben, und das wird irgendwo sein. Darauf kommen wir in einer Sekunde zurück. Wir können uns eine Ikone geben. Darauf kommen wir in einer Sekunde zurück. Wir geben uns ein Etikett benutzerdefinierten Namen, wenn wir wollten. Wir werden in einer Sekunde darauf zurückkommen und auch einen Hilfetext
, der, wenn Sie es nicht erraten
haben, in nur einer Sekunde darauf zurückkommen wird. So wird die Vorlage genau wie unsere Art sein. Sagen Sie Seiten, wenn dies wach war, bis Seiten Titel für Melone blockiert werden, würde
es innerhalb des Streams-Ordners leben, weil dies die Streams-App ist. Hier würde es also automatisch danach suchen. Aber es ist kein Wag. Sagen Sie Paige, es ist ein Streamfeld und wird etwas sehr,
sehr ähnliches tun . Aber anstatt zu raten, lege
ich das immer gerne da rein. Also gehe ich davon aus, dass alle meine Stream-Felder im Vorlagenordner in
einem Unterordner namens Streams leben werden, und dies wird Titelblock dot html genannt. mache ich gerne. Wenn du also meinen Code zum ersten Mal ansehen würdest, könntest
du dir dieses Traumgefühl vor Augen sehen. Ich weiß genau, wo diese Vorlage ist. Lassen Sie uns diesem ein Symbol geben und bearbeiten Symbol, und das Label wird nur Titel sein. Andernfalls könnte
es Titelblock oder irgendetwas anderes genannt werden, das wir nennen möchten, und der Hilfetext wird zentrierter Text sein, um auf der Seite angezeigt zu werden, und dass es so ist, wie wir ein Stream-Gefühl jetzt erstellen, das nicht verfügbar ist auf jedem einzelnen Seite überhaupt. Also, wenn wir hier zurück gehen und wir versuchen, es unsere Homepage, zu sehen, dass sich nichts geändert hat. Wir haben Text,
Banner,
Hintergrundbild hinzugefügt Banner, , aber wir haben hier keinen neuen Abschnitt hinzugefügt. Dies ist, wo das Panel kommt, um die Stream-Felder tatsächlich der
Admin-Schnittstelle zugänglich zu machen. Also lassen Sie uns voran und fügen Sie dies hinzu, um einfach die Homepage zu sagen, damit unsere Homepage einige benutzerdefinierte Inhalte darauf
haben kann . Ich werde die linke Tafel dort zusammenbrechen, also bin ich einfach zu Hause. Models dot pie und hier möchte ich von Streams Punktblöcke tun. Das ist meine Blockdatei hier, nicht das Warten bis zum Kern eins. Das ist mein Blockdatei-Import-Titelblock, Tyto Block. Alternativ könnten
wir auch aus Streams Importblöcke machen und dann ein wenig später, anstatt nur Schriftfeld zu verwenden, könnten
wir Blockstartschriftfeld verwenden. In der Tat, das ist die Art, wie wir es jetzt tun werden. Also werden wir nur von Streams Importblöcke als nächstes in unserer Homepage hier unten tun. Lassen Sie uns voran und fügen Sie einige benutzerdefinierte Stream-Felder. Nun ist ein Stream-Feld sein eigener Feldtyp. Genau wie wir ein Char-Feld oder ein Textfeld haben. Das kommt von Wag Tail. Dies ist ein Strom gefüllt. Es heißt also diese Leiche. So werden wir es nennen. Dies wird ein Stream-Feld sein, und dies wird eine Liste von Topples nehmen. Es ist also eine Klasse. Sein erster Parameter ist eine Liste, und hier wird es eine Reihe von Topples sein. Also nennen wir diesen einen Titel. Es ist ein Topple zu setzen, also wird die 1. 1 sein, was sie in der Datenbank genannt wird. Also noch einmal,
erinnern Sie sich, wie ich erwähnt habe, dass Wag Tail Stream Felder alle in Jason gespeichert sind? Nun, das ist der Schlüssel. So weiß es, was es sein wird. Also werden wir diesen Titel nennen. Du kannst es so nennen, wie du willst. Es muss nicht Titel sein, und wir werden sagen, Blöcke Punkt Titelblock mit Klammern, weil es eine Klasse ist. Ich schätze,
ich werfe eine gemeinsame dort für gute Praktiken . Lassen wir dieses Feld kennenlernen? Ja, wir werden sagen, dass die Homepage möglicherweise keine benutzerdefinierten Inhalte enthält und irgendwie leer ist. Sagen wir auch „Ja“. Das bedeutet, dass Sie die Homepage speichern können, ohne zusätzliche Stream-Felder oder benutzerdefinierte Inhalte hinzuzufügen. Jetzt haben wir diese Leiche. Was machen wir damit? Gehen wir zu unseren Content-Panels hier, und wir müssen uns mit einem neuen Panel enthüllen. So ist eine neue Linie von sogar bewegen, dass ein wenig dort oben. Lassen Sie uns ein neues Panel erstellen, das ein Stream-Feldfeld genannt wird, und wir werden gerade Körper hier jetzt einfügen. Wenn wir uns retten, ist
es wahrscheinlich, dass sich unser Terminal beschweren wird,
weil
das vor allem allemein Tisch war. Es wird sich darüber beschweren, dass Stream, Feld-Panel und Stream-Feld nicht importiert werden. Also lassen Sie uns voran und stellen Sie sicher, dass diese Luft importiert. Also in unseren Edit-Handlern hier oben haben
wir Feldpanel-Seiten-Auswahlfeld, das sich in einem Stream-Feldfeld hier befindet, und das Stream-Feld selbst kommt tatsächlich von Wag Tail Dekor Punktfelder Import
Stream-Feld . Na gut, sagen
wir das und sehen, Hey, sieh dir die Terminals an, die sich über nichts beschweren. Lassen Sie uns gehen und sehen Sie die Seite und, wie erwartet, Betriebsluft. Keine solche Spalte. Startseite Startseite Punkt Körper. Grundsätzlich ist
dies ein SQL-Bereich, der sagt, dass unsere Homepage keine Spalte in der Tabelle hat, die sie im kalten Körper
lebt. Lassen Sie uns fortfahren und unsere Migrationen machen Migrationen durchführen, Migrationen
anwenden unseren Server
erneut ausführen. Lassen Sie uns gehen und aktualisieren Sie Ihre Seite und wir werden sehen, sobald es lädt wollen Lasten, Scrollen Sie den ganzen Weg nach unten. Wir haben jetzt einen neuen Abschnitt hier drin, wenn Sie Wag Tail 2.6 oder früher verwenden, wird
dies etwas anders aussehen und für die Verwendung von Wait bis 2.7 oder neuer wird etwas in dieser Richtung
aussehen. Also habe ich hier einen neuen Abschnitt namens Titel,
und ich könnte alles, was ich will, hier reinbringen. Das ist ein Rad. Machen Sie Ihre Raketen kraftstoffeffizienter, zentrierter Text auf der Seite angezeigt, die ihre Hilfetext. Wir haben noch ein paar SMS da drin. Es ist ein Pflichtfeld. Gehen wir weiter und speichern Sie das. Nun, wenn wir dies sehen, werden
wir das überhaupt nicht sehen, weil
wir auf unserer Startseite Vorlage nicht angegeben haben, dass wir das eigentlich überhaupt zeigen wollen. So ist unser nächster Schritt jetzt öffnen Homepage dot html. Das ist überhaupt nicht das Richtige. Startseite dot html Das ist unsere Homepage. Und auf unserer Homepage haben
wir einen Abschnitt für unser Banner. Ich werde das hier nur ein bisschen kleiner machen. Also habe ich einen Abschnitt für ein Banner. Lassen Sie uns das reduzieren und erstellen Sie einen neuen Block für einen Inhalt. Und wieder, nur als schnelle kleine Auffrischung hier. Wenn wir uns basierend auf HTML öffnen, haben
wir hier einen Abschnitt nur für einen Inhalt. Wir werden unsere Stream-Felder in hier injizieren, und dies zu tun ist eigentlich super einfach. Wir müssen nur grundsätzlich über jeden einzelnen,
einen vier Block,
im Seiten-Punktkörper schließen Blockieren Sie den Block, der sich schleifen einen vier Block, . Das ist dieser Wert genau da und und vier jetzt für diese Zehe eigentlich registrieren, weil dies eine Wag Tail Funktion
ist. Dies kommt nicht mit Standard, Django. Wir müssen sicherstellen, dass wir uns benutzen können. Also lasst uns auch laden zusammen mit unseren Wait Till Images Tags wag Tail Core-Tags. Speichern wir das und lassen Sie uns Ihre Seite aktualisieren. Und jetzt können wir sehen, dass die Vorlage nicht existiert, also kommen wir tatsächlich irgendwo hin. Dies bedeutet, dass unser Streams Air-Titelblock noch keine Vorlage hat. Gehen wir weiter und fügen Sie diese Vorlage hinzu. Öffnen Sie also meine Website und gehen Sie dann in Vorlagen. Und hier war es auf der Suche nach Streams Schrägstrich Titelblock dot html. Wieder. Wo ich das herkam, war ich spezifiziert, um hier zu leben, und Sie können sehen, wo es aussieht. Es sucht in Vorlagen. Streams Titel gesperrt. Html Es sucht auch in Home-Vorlagen. Schriftfeld „Streams“ Daddy, sie männlich. Es sucht auch in Suchvorlagenströmen. Titel gesperrt. Html Lassen Sie uns einfach in. Der erste Ort ist suchen Das scheint am effizientesten. Also haben wir hier einen Titel blockiert. Dann lass uns einfach etwas wirklich Hässliches machen. H eins, das ist eine Titelblock Refresher Seite und oh! Oh, da ist es. Da ist ein Schriftfeld. Okay, okay. Wir kommen dem so nahe. Okay, also habe ich gerade ein paar HTML hier reingeworfen, mit einem H drei und einer benutzerdefinierten Klasse in diesem Alter. Und jetzt könnte ich alles hier drinnen sagen. In Ordnung? Nein sagt etwas hier drin. Es sieht etwas mehr gestylt aus. Lassen Sie uns voran und werfen Sie tatsächlich diesen Text hier ein, wenn Sie Wert in Kleinbuchstaben
Punkttext verwenden . Nun, wenn Sie sich die Kamera fragen, woher haben Sie Wert? Ich kann Wert verwenden oder ich kann selbst verwenden, was jeder mehr Sinn macht für Sie dort genau gleich. Und das kommt tatsächlich aus unserem Block selbst. Also Titelblock und setzen Sie diese zusammen Titelblock verwendet diese Vorlage und innerhalb davon, genau wie Seite Punkt Text oder Seite Punkt Banner Titel. Dieser hat Schriftfeld Punkttext. Jetzt ist es keine Seite. Also werden wir es nicht Paige nennen, um Felder zu streamen. Wir geben ihm den Wert. Der Wert ist was auch immer das Streamfeld ist oder Selbstpunkt, was auch immer der Feldname ist, ich werde diesen Wert aufrufen. Lassen Sie uns fortfahren und diese Seite aktualisieren. Nun, machen Sie Ihre Raketen kraftstoffeffizienter, und genau das haben wir in ihre Homepage aufgenommen. Werfen wir einen Blick auf den Rial, warum wir tatsächlich einen Strom benutzen, der dafür gefüllt ist, dass ich alles hier reinstelle, ich werde Alarm ipsum dort und darunter setzen. Ich werde sagen, das ist unter dem Original. Und lassen Sie uns eine Vorschau dieses Alarmismus oben, das Original und eins unten. Und wenn mir das nicht gefallen würde, könnte
ich das immer nach oben bringen. Und so ist das Original jetzt wieder an der unteren Treffervorschau. Scrollen Sie nach unten Nun, machen Sie Ihre Raketen kraftstoffeffizienter. Es ist jetzt auf dem Boden. Jetzt nehmen wir diese ganzen Abschnitte und bewegen sie nach oben und unten. Dies ist nur, wo es beginnt, denn dies ist nur ein Titelfeld, das wir tun könnten, ist mit ganzen Abschnitten des Inhalts mit Bildern und Videos, Dokumenten ,
Links, allerlei Dinge. Ich werde diese Vorschau schließen und ich werde diese Seite jetzt nicht speichern. Eine letzte Sache. Wenn Sie mit Streamfeldern arbeiten, weil sie ein spezieller,
komplexer Feldtyp sind , hat
es nicht nur eine reguläre Spalte mit einem einzigen Wert, und es ist ein großer Jason-Blob. Es ist immer eine gute Idee, und ich glaube nicht, dass dies Migrationen benötigen wird, aber ich denke, es ist immer eine gute Idee, wenn Sie mit ihnen fertig sind. Führen Sie immer hoch gemanagt, machen Sie Migrationen keine Änderungen erkannt. Aber wenn Sie mit ihnen gearbeitet haben, wenn Sie etwas extra gemacht haben, werden
Sie Änderungen erkannt, in diesem Fall werden Sie auch ausführen. Python wurde hoch verwaltet und um sie auszuführen, verwenden
Sie Migrationen. Richtig? Ja, benutze meine große, und das wird deine Änderungen für dich anwenden. Gehen wir zum nächsten, wo wir Abschnitte von Stream-Feldern erstellen können, in denen wir mehr und
mehr wie eine Liste hinzufügen können . Es wird eigentlich ein Listenblock genannt. Wenn Sie also fertig sind, damit zu spielen, wenn Sie sich definitiv frei fühlen wollen, mit einem Code zu experimentieren und wenn Sie nett und
bereit sind , gehen wir zur nächsten Lektion, wo wir unseren nächsten Extremfeldtyp aufgreifen.
20. Wiederholen von StreamFields: Es wird eine Zeit geben, in der Sie ähnliche Inhalte immer und
immer wieder wiederholen müssen , irgendwie dieselbe Vorlage verwenden und verschiedene Teile des Inhalts austauschen müssen. Listen von wirklich allem sind wirklich guter Kandidat für diese Sache, die einen Listenblock genannt wird. In der letzten Lektion haben wir von einem geschlagenen Block erfahren. Diesem werden wir einen Listenblock verwenden, und dieser hat eine seltsam aussehende Syntax. Aber es ist eine sehr,
sehr mächtige Funktion in Wag Tail Stream Felder. Also auf unserer Website waren dabei, einen sich wiederholenden Inhaltsblock zu erstellen, wo der
Inhaltseintrag Person auf begrenzte Elemente hinzufügen kann, wenn sie wollte. Aber sie werden alle auf die gleiche Weise formatiert. Und wir werden das mit Bootstrap-Karten machen. Wenn Sie also Ihren Server noch nicht betriebsbereit haben,
stellen Sie sicher, dass Sie in Ihre virtuelle Umgebung einsteigen und Ihren Django-Server ausführen. Als nächstes werde
ich Block öffnen Stop I Das ist in meiner Streams-Anwendung. Also streams Schrägstrich Blöcke, die fromm, wo dies das ist, und das ist, wo wir unseren
Titelblock erstellt . Als nächstes werden
wir einen neuen Typ von Stream-Feld erstellen. Dieser wird als Listenblock bezeichnet. Es ist eigentlich immer noch technisch ein geschlagener Block, aber wir werfen einen Listenblock hinein, und dann gehen wir immer und immer wieder durch die Zehenschleife. So können Sie sich einen Listenblock vorstellen, wirklich als eine wirklich ausgefallene Liste. Und dann in dieser schicken Liste werden
wir einen weiteren Block haben. Also wieder, die Syntax wird wirklich seltsam, und ich werde mein Bestes versuchen, es zu beschreiben, während wir weitergehen, und das wird zuerst. Es wird nicht nur komisch aussehen, sondern es wird etwas kompliziert klingen. Hört sich wahrscheinlich schon kompliziert an, wenn du ganz neu bei Wag Tail bist. Aber sobald Sie ein paar davon schreiben, beginnen
sie tatsächlich eine Menge Sinn zu machen. Beginnen wir also mit einem sehr einfachen Beispiel. Lassen Sie uns einen Titelchar Block und einen Textblock hinzufügen und ah Meta-Klasse Wissem einige Daten darin hinzufügen. Also lasst uns voran gehen und Klasse erstellen. Wir werden es Karten Block nennen, weil es das ist, was es irgendwann sein wird. Calder. Das ist es, was es tun wird. Und hier drin wird
das nur ein geschlagener Block, ein regelmäßiger Block. Hier fängt es an, etwas seltsam zu werden. Also werden wir Karten hier drin haben, und das wird Blöcke Punktlisten-Block sein. Das sieht also schon ein wenig bizarr aus. Und dann innerhalb dieses Listenblocks, werden
wir blockieren Start geschlagen Block. Nun, hier wird es seltsam, weil unsere Klassen von Struck Block einen Listenblock definiert haben . Wir haben noch einen Block drinnen. Und hier drinnen werden wir all unsere benutzerdefinierten Felder einfügen. Das ist also eine Liste von Paaren wie ein normales Stream-Feld, genau wie auf unseren Hausmodellen, dass Kuchen wir Stream-Feld haben und es ist eine Liste von zwei
Paarproblemen . Es wird genau das Gleiche sein. Hier ist eine Liste von zwei Paaren, so dass die 1. 1 wird ein Titelkomma sein, und dann werden wir Blöcke verwenden Punkt HR Block sieht viel wie Blöcke HR Block aus unserem Titelblock. Dies wird eine maximale Länge benötigen. Wir wollen uns eine maximale Länge von vielleicht 100 oder so geben, und wir können ihm etwas Hilfe Steuer geben, so Hilfe Steuer wird schließlich sein. Dies wird der Bolds mit dem Titel Text für diese Karte sein, und ich mag es, die maximale Länge zu setzen, so dass Ihre Kunden,
Ihre Kunden,
kontinentalen Menschen wissen, was zu erwarten ist Ihre Kunden, . Also gibt es eine maximale Länge von 100 Zeichen Jetzt, wenn ich wirklich Remote
benutze, ich meine, es gibt eine wirklich lange Zeile, und schließlich würde ich das brechen. Aber jetzt werde
ich das in einer Zeile behalten, weil ich hier auch Text in einer
zweiten Zeile erstellen werde . Wenn ich das auf zu viele Zeilen setze, sieht
das ein wenig kompliziert aus. Das wird also Blöcke Punkt-Textblock sein. Also anstelle von ah, Textfeld, ist
es ein Textblock. Max Länge für diese eine wird eine satte 255 Zeichen sein,
das ist alles, das ist alles, und die Hilfe Steuern gehen, um den optionalen Text für diese Karte zu sagen, Die Max Max Länge ist 250 Zeichen, und lassen Sie uns auch sagen, dass dies optional, indem Sie sagen, erforderlich ist gleich false. Es war als Metadaten hier drin. Also Klasse Meta, ich werde das größere noch machen, damit wir sehen können, dass ein wenig einfacher, du weißt schon, das
zusammenbrechen. Sie sind also haben wir Klassenmeta. Und hier lassen Sie uns Vorlage angeben, genau wie wir es mit ihrem letzten gemacht haben. Wir werden sagen, es geht in Streams und das wird ein Kartenblock dot html und etwas ist nicht richtig, weil meine Syntax-Hervorhebung kaputt ist. Was bin ich hier eingebrochen? Da ist es. Ich vermisse eine Klammer, die besser aussieht. Ich werde diesem ein Symbol eines Bildes und ein Etikett von ANA-Standardkarten geben. Ich will sagen, dass sich meine Terminals nicht beschweren. Und sicher genug, es geht um einen festsitzenden Block. Ich denke, da habe ich den ursprünglichen Tippfehler gemacht. Lass uns weitermachen und Django neu starten. Und nein, sicher genug, stecken Block ist keine Sache. Wo steckt fest? Blocken? Da sind Sie. Ich habe mir die falschen Blöcke angesehen, die Block geschlagen OK, Terminal und ist glücklich mit unserem Code. Lassen Sie uns auch zurück zu unserem Hause Slash Modelle dot pie. Sie können sehen, dass ich in den Home-Ordner-Modelle dot pie bin, und jetzt werde ich ein weiteres zwei Paar Toppling hier erstellen, und dieser wird Karten sein. Und das wird von Block Start Karten Block und wieder kommen. Setzen Sie einfach einen Kommentar Das Ende für gute Praxis. Gehen wir zurück zu unserer Homepage und lassen Sie uns es bearbeiten. Ich werde darauf warten, dass es geladen wird. Lassen Sie uns hier ein neues erstellen und sehen Sie sich das an. Wir haben ein Schriftfeld, das in der letzten Lektion erstellt wurde. Wir haben auch eine Standard-Karten jetzt. Dies ist, wo es wirklich cool wird, weil dies jetzt ein wenig verschachtelt aussieht, also könnte dies Titel Nummer eins sein, und Text könnte jede Art von Texas völlig optional sein. Nehmen wir also an, die 1. 1 wird optional sein. Titel eins mit optionalem Text und lassen Sie uns weitermachen. Hit das Pluszeichen und erstellen Sie ein weiteres. Und diese sind tatsächlich und völlig austauschbar, , also können wir diese nach oben und unten tauschen,
und dieser wird sagen,
Titel Nummer zwei, Titel Nummer zwei, weil ich mich nicht kreativ mit meinen Titeln und diesem hier fühle. Wir werden einen warmen Ipsum-Text da drin haben. Lass uns das retten. Jetzt werde ich live ansehen und es wird sagen, dass ich weiß, dass es sagen wird, dass das
die Vorlage nicht finden kann . Sicher genug, schauen Sie sich diese Vorlage nicht existiert. Es sucht nach Streams. Karten gesperrt. HTML. Gehen wir weiter und erstellen Sie diese Datei jetzt. Also in einer Rakete Mann Vorlagen, wir haben bereits einen Ordner namens Streams. Lassen Sie uns eine neue Datei in hier namens Karten Block dot html erstellen und lassen Sie uns nur Rückerstattungen ist Lassen Sie uns einfach Schleife durch diese einfach wirklich schnell. Wir werden das noch nicht gut aussehen lassen. Wir werden das nur durchlaufen, also werde ich vier jede Karte in Wert-Punkt-Karten sagen. Wir könnten auch Selbstpunkt-Karte machen, also werde ich diese austauschbar Kehle verschiedene Stream-Felder verwenden, und ich werde das beenden. Also, was ich hier mache, ist, dass ich in diesem speziellen Stream-Feld sage, keine falsche Datei ihren Rio. In diesem speziellen Stream-Feld habe ich eine Variable namens Selbstpunktkarten. Selbstpunktkarten Objektorientierte Programmierung schreibt vor, dass, wenn ich darauf in einer Methode zugreifen würde, es Selbstpunktkarten genannt werden würde. Es ist eine Liste. Block ist genau im Namen. Es ist eine Liste, also ist es eine reizbare schwäche Schleife durch sie, so dass wir für jede Karte in Selbstpunktkarten sagen können. Und dann können wir gehen und jede von ihnen bekommen, damit wir sagen können, dass der Titel ein H
drei Karten Punkttitel sein wird. Und wir können auch sagen, wenn Karte Punkt Text können wir Absatz in hier Karte Punkt Text setzen und dass, wenn und lassen Sie uns auch
eine Reihe von horizontalen Regeln hinzufügen , um dies wirklich,
wirklich hässlich zu machen , aber auch sehr auffällig, wo wir arbeiten, Gehen Sie voran und aktualisieren Sie diese Seite. Sehen Sie sich diesen Titel eins optional ohne Steuer an. Da ist keine Steuer drin,
berechtigt, mit etwas Text in einer Reihe von horizontalen Regeln, um die Seite super
hässlich zu machen . Jetzt lasst uns das bestätigen. Nur eine kurze Sekunde hier in ihren Modellen nicht Kuchen. Wir haben etwas zu unserem Körperfeld hinzugefügt. Warum haben wir keine Migrationen angewendet? Nun, weil dies nur im Grunde ein Textfeld ist. eine Menge Jason in der Datenbank speichern, müssen Migrationen nicht unbedingt angewendet werden, obwohl die Chancen bestehen, wenn Sie gerade versuchen würden, Migrationen auszuführen, würde
es sagen, dass Änderungen erkannt wurden. Wir werden sowieso am Ende dieser Lektion Migrationen durchführen, aber wir müssen es jetzt nicht tun, alles klar. Ich denke, wir haben noch ein wenig Zeit in diesem Video, also lasst uns weiter gehen und ein paar weitere Artikel hier hinzufügen. Also sagen wir jede Karte als Titel. Jede Karte hat, ähm, Text. Mal sehen. Jede Karte hat ein Bild, und wir werden einen Bildauswahlblock verwenden, den wir in diesem Jahr nicht importiert haben, kein Panel-Bild. Wählen Sie Glück. Dies wird erforderlich sein. Zwei sind standardmäßig erforderlich, damit wir nicht erforderlich setzen müssen, ist gleich echter Hilfe. Texas Eagle to Image wird automatisch magisch korrupt zu Ah sein, wenn ich mich richtig irgendwo um 570 Pixel von 370 Pixel erinnere und wir werden
dieses Zuschneiden in der Vorlage setzen , lassen Sie uns voran und speichern Sie das und lassen Sie uns unsere glaubwürdige Seite oder Homepage. Oh, es wird nicht geladen, weil ich keinen Bildauswahlblock hinzugefügt habe, Lassen Sie uns voran und fügen Sie das hier jetzt hinzu. So tun wir von Art und Weise sagen Punktbilder, Entenblöcke, Importbild, Auswahlblock. Da gehen wir. Jetzt wird es verbinden. Und wenn ich nach unten scrolle, haben
wir hier einen kleinen Bildbereich. Also werde ich sagen, dass das die 1. 1 sein wird und das wird die 2. 1 sein, die
voran gehen wird und das speichern wird. Es geht, wenn ich die Seite aktualisiere, wird über alles schleifen. Es gibt keine Bilder, weil wir es nicht gesagt haben. Toe hat irgendwelche Bilder? Lassen Sie uns sagen, es soll jetzt ein paar Bilder haben, bevor wir Bilder überhaupt mit Wag Tail verwenden können und sie automatisch zuschneiden und all das gute Zeug, was wir tun müssen, ist sagen, laden,
warten, bis Image-Tags, und das ermöglicht es uns, ein Template-Tag namens Image zu verwenden. Lassen Sie uns das in eine for-Schleife setzen. Und weil wir wissen, dass dies ein Pflichtfeld ist, wird
es immer hier sein. Ich sage vier. Jedes Bild, das wir haben, verwenden wir die Bild-Tag-Karte Punkt Wie haben wir es genannt? Wie haben wir genannt? Wahrscheinlich nur Bild. Ja. Sicher genug, nannte es
nur Bild. Also habe ich das gerade vom ersten Wert in unseren Doppel-Sets von Paaren hier bekommen. So wird der erste Satz in unserem Topple Bild genannt. Dieser hier heißt Texaner namens Titel. dort bekommen wir die. Also dieser hier hat nur Bild genannt, und ich werde das nur dort benutzen. Ich werde die Filmmethode verwenden. Es gibt Max mit Methoden, Höhe und Breite Methoden als auch, so dass Sie eine maximale Höhe oder Maximum mit auf Ihre Bilder setzen können. Solche Dinge würden sagen, immer diesen Zeh fühlen. Seien Sie immer 570 Pixel mal 370 Pixel. Und dann werden wir einfach speichern, dass als eine Variable namens Bild. Lassen Sie uns voran und erstellen Sie hier und für die Quelle ein neues Bild. Lassen Sie uns Bild tun, dass Sie auf dem Altar sind Bild dot alta, und so bin ich G Spiele hier, hier und hier. Es hat nichts mit dem HTML-Tag zu tun, und in der Tat kann ich das ändern, nur um es zu beweisen. Wir nennen es das Bild. Gehen wir weiter, speichern und aktualisieren Sie unsere Seite, und wir werden dort ein Bild sehen, das es ist. Da ist unsere 1. 1 und da ist unsere 2. 1 und wenn ich dieses Element hier inspiziere, sicher genug, da ist es. 5 70 mal 3 70 nahm es mein Bild und es schneidete es perfekt. Jetzt denke ich, das reicht für dieses Video. In der nächsten werden
wir beginnen, einige der komplizierteren Teile in andere Klassen zu abstrahieren, die wir wiederverwenden können. Also müssen
wir in unseren Blöcken nicht unbedingt all das hier reinlegen. Wir können es hier oben eher so aussehen lassen, weil dieser hier unten ehrlich ist, das ist irgendwie schwer zu lesen. Also werden wir das ein bisschen anrühren. Und ich erwähnte auch, irgendwann können wir Migrationen laufen hatten. Lass uns das machen. Python ist hoch gelungen. Führen Sie Migrationen durch. Mal sehen, was passiert. Sicher genug, Ändern Feldkörper auf der Homepage und lassen Sie uns diese Migration anwenden. Alles ist gut. Vergiss es nicht zu irgendeinem Zeitpunkt. Wenn Sie stecken bleiben, schauen Sie sich
immer den Quellcode an. Es steht Ihnen völlig zur Verfügung. Andernfalls gehen wir weiter zur nächsten Lektion, in der wir weiterhin innerhalb unserer Liste tätig sind. Blockieren
21. Repeating: Alles klar. Abholung von der letzten Lektion. Dies ist der zweite Teil der Lektion für das wiederholte Stream-Feld. Dies ist ein ziemlich großes Thema, also ist es in mindestens zwei Videos aufgeteilt. Nun, wenn Sie die 1. 1 nicht gesehen haben, müssen Sie die 1. 1 ansehen Andernfalls werden
Sie wahrscheinlich nicht zu viel darüber wissen, was mit diesem in diesem
Video los ist . Also, jetzt, wo wir ein einfaches List-Block-Stil Stream-Feld haben, haben wir
im Grunde geschlagen Block mit diesem Block, weisen Sperre in es und dann Sätze von Tempeln hier drin. Gehen wir weiter und machen dies noch komplizierter, also das erste, was wir hier tun werden, ist, einen Link hinzuzufügen und wir müssen drei Felder hinzufügen . Wir müssen einen Linktext hinzufügen, da der Text angepasst werden soll. Wir wollen einen internen Link zu einer anderen Wag Tail Seite oder wir wollen einen externen Link zu einer Seite. Es ist nicht auf unserer Website, also lasst uns voran gehen und das irgendwie sehr schnell hash heraus. Also haben wir Block Start HR Block, und wir können das in nur einer Sekunde ausfüllen. Nennen wir diesen Link-Text. Die 2. 1 werden wir Interne Seite anrufen, und dieser wird eine Art bezahlter Schuhe sein, oder wir wissen das noch nicht wirklich. Wir werden darauf zurückkommen, und die 3. 1 wird ein externer Link sein. Und hier drin, das ist Block. Starten Sie Ihren L-Block. Genau wie, äh, ihr seid alle Feldmodelle, die ihr alle im Feld seid. Dies ist ein Block, dass Sie ein Block waren. Okay, also wird der externe Link benötigt? Wir werden nein sagen, denn die Links werden optional vollständig die interne Seite sein. Wie wählen wir eine interne Seite aus? Warten Sie, bis gibt uns ein schönes kleines Tool hier genannt Seite Chooser Block
, der auch sagen kann erforderlich ist gleich falsch Stellen Sie sicher, dass Sie am Ende dieser und
unserem Link-Text beruhigen müssen . Wir brauchen eine maximale Länge. Nehmen wir an, 50 und Standard wird mehr Details sagen. Setzen Sie auch ein Komma am Ende davon. Mal sehen. Ok. Vermutlich habe ich keine Tippfehler da drin. Lasst uns weitermachen und unsere Homepage bearbeiten. Und hier können wir sehen, es gibt Link-Text und interne Seite, einen externen Link. Also auf der internen Seite ermöglicht es mir, die Homepage oder die Services-Seite oder die Info
Seite oder eine der Service-Detailseiten zu wählen . Also für diesen, werde
ich die Reinigung auswählen. Und für die 1. 1 werde ich nur einen externen Earl hier reinbringen. Also, http wag tail dot io Alles klar, das gespeichert. Und wenn wir unsere Seite wieder ansehen, weil wir nichts geändert
haben, eine Vorlage, werden wir noch keine dieser Änderungen sehen. Also lassen Sie uns wieder zu unserer Vorlage gehen und lassen Sie uns hier einen Lincoln erstellen, damit es
ein A-Tag erstellt . Der Entwurf wird ein wenig Template-Logik sein. Lasst uns das letztlich lassen, nehme
ich an. Und hier drinnen, lassen Sie uns unseren Schaltflächentext setzen. Wir haben ein paar Texaner hier genannt Karte Punkt Link Text, und wo ich das bekam, war für jede Karte in Karten. Von dort bekomme ich die Karte. Es gibt Titeltext, Bild-Link-Text, interne Seite, einen externen Link. Ich bekomme den Link-Text von hier, und ich werfe das nur da rein, also lasst uns voran gehen, speichern und unsere Seite aktualisieren. Und wir werden mehr Details zum Detail sehen. Und in der Tat, das soll mehr Details sagen. Aber das war schon gerettet. Das ist also zu spät. Ah, und jetzt müssen wir überprüfen, ob wir eine interne Seite oder einen externen Link Toe zu verwenden haben . Also lasst uns das hier drinnen machen. können wir im Grunde, richtig. Ich werde das auf dem langen Weg schreiben und dann werde ich alles in eine Zeile
zu schieben gehen , wenn Karte Punkt interne Seite Auto Punkt interne Seite, die Sie l sind weil es ein Seitenobjekt und Seitenobjekte haben immer Punkt u R l In ihnen, sie haben immer die UL-Eigenschaft. Dann können wir sagen, LF-Karte Punkt externe Seite, Woher kommt das? Da bist du ja. Externer Link heißt es. Dann können wir Karte Punkt externen Link sagen, dass man keinen Punkt UL hat, weil es nur ein normales Textfeld ist. Und wenn es so ist, wie das jetzt aussehen wird, werde ich den Stau all das
in einer Zeile beginnen . Die fünfte ISS und kopieren Sie das alles und ich werfe das in den A-Entwurf. Hier ist es Go ahead, speichern und aktualisieren Sie diese Seite. Und wenn wir unten links schauen, das ist in der Tat versuchen, zu wag tail dot io gehen. Das ist perfekt. Das ist, wo der 1. 1 sollte gehen und dieser wird auf die Reinigungsseite gehen . Jetzt sind wir in der Lage, Links zu unserem Stream-Feld innerhalb unserer Liste hinzuzufügen. Block kann zu jeder Seite innerhalb von weiß gehen, jede Seite außerhalb der Wag Toe
sagen. Nun, wir weiter und machen diesen Code ein wenig schöner zu betrachten, denn wenn wir ihn jetzt betrachten, meine
ich,
das könnte für viele Leute lesbar sein, aber für mich ist das sieht irgendwie wie Müll aus. Als ob Sie mir diesen Code zuerst zeigen würden, ja, ich würde ihn lesen, und ich könnte ihn mit meinem eigenen Gehirn analysieren. Aber wenn ich nur ansehe, gehe
ich einfach. Was ist das ganze Zeug da unten? Das sieht das nicht wirklich toll aus. Das will ich nicht wirklich angehen. Also lasst uns so weitermachen und uns alle extrahieren, und wir werden das in eine neue Klasse setzen, die eine Karte genannt wird, und das wird ein verrückter Block sein, und was ich tun kann, ist, dass ich all diese Kopie und Einfügen nehmen kann, und wir können es in diesem speziellen Format nicht verwenden. Aber was ich tun kann, ist, dass ich meinen Editor verwenden kann, um mir irgendwie ein bisschen zu betrügen, und ich kann an mehreren Orten gleichzeitig. Und wir können das tun. Wir können alle Blöcke auswählen, die nur den R-Block greifen. Lasst uns alle Blöcke schnappen. Aber das alles in neuer Linie, das wird nicht ganz so funktionieren, wie ich es gehofft hatte. Also lassen Sie uns für diese auf neuen Kredit gehen. Befreien Sie sich von diesen beiden Zeilen. Alles klar, hier können Sie sehen, ich habe einfach alles auf ihre eigene Zeile gesetzt, und es sieht viel mehr wie unser Titelblock aus. Es sieht viel mehr aus wie eine Wag Tail Seite sieht viel mehr Django-freundlich aus, und es muss nicht mehr so aussehen. Jetzt werden wir dies nicht wirklich aktivieren, wie es eigenes Stream-Feld ist. Wir werden das nur anstelle von all dem Zeug benutzen. Also, was ich tun werde, ist, dass ich das löschen werde, und ich werde auch löschen, und ich werde einfach Karte setzen. Es ist ein Listenblock von Karten. Wenn ich zurück zu meinem Browser gehe und diese Seite editiere, habe
ich immer noch alle Karten hier drin. Wenn ich zurück zu meinem Browser gehe und diese Seite editiere, habe Also bekam ich den Titel, den Text, um den Link-Text zu bilden, interne Seite, all das gute Zeug. Also, nur um sicherzustellen, dass das funktioniert, lassen Sie uns etwas Verrücktes hier reinwerfen. Zebra, Zebra, Zebra Ich weiß nicht, warum ich ein Zebra ausgesucht habe und lass uns deine Seite auffrischen und das ansehen . Also, jetzt haben wir gänzlich das ganze Geräusch komplett entfernt, das
alles ohne einfachen Code, und wir haben es in seine eigene Klasse gesetzt. Nun, das Schöne daran ist, dass wir tatsächlich einen Schritt weiter gehen können und wir unseren
Link auch herausnehmen können , weil wir das an mehreren verschiedenen Orten verwenden werden. Also werde ich das wirklich schneiden und ich werde eine weitere Klasse in dieser Klasse erstellen. Es ist nur ein Link Blocks Punkt geschlagen Block genannt und werfen Sie das da hinein Jetzt, ein wenig später, können
wir tatsächlich sogar einen Schritt weiter bekommen, und wir können Validierung hinzufügen. Jedesmal, wenn jemand einen Link auf einem beliebigen Stringfield irgendwo benutzt, können
wir sagen, dass die interne Seite oder der externe Link sein muss. Traurigerweise muss
einer von ihnen absolut gesetzt werden. Derzeit sind beide nicht erforderlich, so dass Sie theoretisch einen Abschnitt ohne Link haben können. Nun, das willst
du überhaupt nicht, also könnten wir sicherstellen, dass das immer gesagt wird, dass wir darüber reden. Also haben wir jetzt einen geschlagenen Block für einen Link, und anstatt unsere Karte hat die drei Felder hier und irgendwie ziemlich lang aussehen, können
wir nur sagen, dass Link gleich unserem Link ist. Und wird es irgendeine Art von Hilfetext geben? Wir könnten Texas gleich helfen, einen Link eingeben, wenn wir einen Link eingeben oder eine Seite auswählen wollten ? Also, wenn wir das zurückspulen, ist
unser Kartenblock ein Listenblock von Karten, und das ist nur mit diesem. Jede Karte hat einen Titel, Text, Bild und Link. Und jetzt hat dieser Link auch einen Linktext, interne Seite und einen externen Link. Gehen wir weiter und bearbeiten Sie unsere Seite. Wir werden hier eine Änderung sehen, während wenn ich scrollen und runter halte, scrollen Sie weiter nach unten. Wir haben hier einen Link. Geben Sie den Link ein oder wählen Sie eine Seite mit Linktext, interner Seite und dem externen Link aus. Nun, wenn Sie sich erinnern, diese Links funktionierten tatsächlich und Sie können hier unten links sehen. Ich habe meine Seite noch nicht aktualisiert. Es funktioniert. Es ist seine Art. Sagen Sie dot io und wenn ich meine Seite aktualisiere, werden
wir sehen, dass der Link jetzt nicht mehr funktioniert. Der Grund dafür ist, weil wir in der Karte Block gesagt, wir haben nicht mehr Auto DOT externe Link. Wir haben Karte Punkt Link Punkt externen Link oder Karte Punkt Link, weil es zu einer anderen
Klasse Punkt Link Text denken . Also gehen wir zurück zu unserer Vorlage und wo es sagt Auto Punkt interne Seite oder Auto Punkt externen Link. Wir werden alle von denen greifen und tun Karte Punkt Link Punkt interne Seite Karte Punkt verlinkt interne Seite Punkt Sie sind Oh, so ist es immer Art von lang. Wurden irgendwie angefangen, durch unser Stream-Feld in Wag Tell selbst zu durchqueren, oder wir
haben Karte, die Link Punkt externen Link. Lassen Sie uns voran und speichern, dass aktualisieren Sie unsere Seite und Sie werden sehen, dass dies immer noch nicht
funktioniert. Nun ist es an diesem Punkt, dass Sie denken, dass etwas kaputt ist und Sie würden nicht
falsch sein , das zu denken. Aber der Grund, warum das nicht wieder auftaucht, liegt an dem, was wir ursprünglich gesehen haben. Dies ist eigentlich ein eigener Abschnitt jetzt, so dass Link-Text technisch nicht existiert. Es ist verlinkt Punkt Link-Text. Es ist Punkt interne Seite verlinkt. Es ist Punkt externe Seite verlinkt. Also, wenn wir hier eine Seite wählen und diese hier wird nur zur Startseite gehen und diese
untere wird gehen zu wag tail dot io und lassen Sie uns externe Lincoln hier anziehen. Http warten, bis dot io in der Aktualisierungsseite speichern und sie werden immer noch nicht angezeigt. Und ich bin bereit zu wetten, dass sie in ihrer Arbeit sind und dass ich gerade einen Fehler gemacht habe. Gehen wir weiter und sezieren das. Ich wette, ich habe irgendwo einen Fehler gemacht. Und wenn Sie auf Ihrem Bildschirm schreien und Caleb sagen, ich weiß, Ihr Fehler ist großartig, aber ich werde es niedrig finden müssen. Sieh dir das an. Da ist der Link. Kein Text da drin. Das ist interessant. Es ist wahrscheinlich genau das Gleiche hier unten. Das wird noch gehen. Warten Sie bis Punkt Io keine Verbindung. Das ist also mein Fehler, und mein Cursor war schon drauf. Es war Karte zu Punkt Link Liebling Text. Lasst uns weitermachen. Speichern Sie die Aktualisierung noch einmal. Hoch so. Sicher genug, unten links, sagt Wag Tail Dot io. Dort wird es mich bringen, wenn ich darauf klicke. Ich muss warten, bis Dot io Überprüfen Sie das, und das Top wird mich auf die Homepage bringen. Als eine kurze Zusammenfassung, was wir in diesen beiden Videos getan haben, ist, dass wir einen markierten Block mit einem Listenblock
erstellt haben , der
effektiv eine Liste von geschlagenen Blöcken erstellt hat. Wir haben ursprünglich einen ziemlich langen Block erstellt, und dann haben wir ihn irgendwie aus sich selbst in seine eigene Klasse abstrahiert. Wir nennen diese Klassenkarte und sagten: Machen Sie
einfach eine Liste von Karten geschlagen Blöcke. Aber wir hatten auch Links in diesem geschlagenen Block in der Karte geschlagen Block, und wir sagten: Das ist zu viel. Also lasst uns voran gehen und diese Links tatsächlich in ihre eigene Klasse verwandeln, ihren eigenen Block, was wir hier oben getan haben. Und wir haben die da reingeworfen. Aber jetzt, weil wir für jede Karte in Selbst Punkt-Karten und wir haben Link gehen zu einer anderen Klasse in unserer Vorlage waren mit Karte Punkt Link Punkt Link, Textkarte, Liebling Punkt interne Seite. Und es ist wirklich nur sagen für jede Karte in Karten Punkt Link Punkt Link Text und das, mein Freund, ist ein Listenblock. Also nochmal, die Syntax, die gegen ziemlich seltsam ich werde nicht lügen. Es ist ziemlich seltsam, und es ist zunächst ein wenig verwirrend, aber geben Sie es definitiv einen Schuss, um zu versuchen, ein paar von Ihren eigenen zu machen. Und wenn Sie anfangen, ein paar davon auf eigene Faust zu machen, fangen
Sie an, wirklich schön auszusehen. , Das ist nicht alles,was ich wollte. Dies ist kein schön aussehendes Stream-Feld. Also was? Ich gehe zu Dio ist, dass ich das eigentlich ausblenden werde und ich werde einen Haufen
HTML hineinwerfen und wir werden das zusammen ausfüllen. In Ordnung, also habe ich gerade hinzugefügt, ein
Haufen HTML hier drin und wir werden das zusammen ausfüllen. Das ist also nur eine Standardart Bootstrap-Block. Es wird also wahrscheinlich nicht am Größten aussehen. Ja, los geht's. Es wird genau so aussehen. Wir haben also eine Karte auf der linken Karte auf der rechten Seite, weil wir zwei Gegenstände und unseren
Listenblock haben . Wir haben einen Titel, Text, Ah, Knopf und Link. Und das soll irgendwo hingehen. Also lasst uns voran gehen und tatsächlich etwas damit machen. Also, was ist der größte Gewinn, den wir hier machen können? Was wird dieses Display wirklich beleben? Lassen Sie uns ein Bild hinzufügen. Also haben wir unsere Wag Tail Image-Tags geladen. Lassen Sie uns voran und fügen Sie unser Bild Bild Bild Karte Punktbild. Und wieder bekomme ich das vom Kartenpunktbild. Phil, ich habe hier einen Platzhalter für 5 73 von 3 69 Lassen Sie uns tun 5 73 von 3 69 Obwohl ich denke, das hat geholfen. Text sagt eigentlich etwas anderes, nicht
wahr? Ja. 5 70 mal 3 70 Lasst uns das richtig machen. 5 70 von 3 70 als Bild und lassen Sie uns dies ersetzen. Ich bin G. Du bist nicht ich und der Altar. Lassen Sie uns das ändern zu Ich bin GED tot nicht Sie, Earl dot lt Aktualisieren Sie Ihre Seite. Sieh dir das an. Es sieht schon viel besser aus. Lassen Sie uns den Titel als Nächstes haben. Wir hatten hier einen Titel. Das wird nur der Kartenpunkt-Titel sein, und nochmals, ich meine, das könnte für Sie durchaus Sinn ergeben, aber ich werde das wirklich nach Hause fahren. Wo bekomme ich die Karte? Dieser Titel von, ich meine den Listenblock. Es verwendet eine Karte Klasse Karte Punkt-Titel. Dort bekomme ich das aus dem Text, den wir Kartenpunkt-Text machen können. Lassen Sie uns das Kleinbuchstaben machen, und ist das optional? Manchmal mache ich das optional erforderliche falsch, das
in der Tat
optional ist in der Tat . Also lasst uns hier eine if-Anweisung werfen. Lassen Sie uns tun, wenn Karte Punkt Text. Also, wenn es einen Wert gibt und ob und lasst uns unsere Seite aktualisieren, die bis jetzt
ziemlich schön kommt . Fügen wir nun diesen Link hinzu. Dieser Link wird die Link-Textkarte Punkt der Link-Punkt-Link-Text sein. Und noch einmal, woher habe ich das? Ich habe hier einen Kartenlistenblock. Ich schleife mich durch jede genannte Karte. Immer noch vier Karten in Karten. Es Karte Punkt Link ist hier drin, so dass jeder Karte Punkt Link Punkt Link Text, von dem ich das bekomme. Und jetzt muss ich diese Links ausfüllen thes Alter refs. Also lasst uns hier ein wenig Logik machen. Lassen Sie uns tun, wenn Karte Punkt Link starb interne Seite, dann werden wir die interne Seite verwenden Sie oder sonst werden wir tun Karte Punkt Link interne Seite Punkt Sie Earl sonst. Wenn Ihr Elliff-Kartenpunkt diesen externen Link verknüpft hat, habe ich es so genannt? Externer und interner Seite externer Link. Lassen Sie uns voran gehen und tun Karte Entlein, dass externe Link und schließlich bald andere Erklärung
hier in . Lass es uns gehen. Absolut nirgends mit einem Nummernzeichen. Und wenn und hoffentlich ich all diese Syntax habe, richtig? Wenn ich es nicht hätte, würde Jenkins mich wissen lassen, weil es ein wenig Haare auf der
Seite geben wird. Sicher genug, nein, das hat alles funktioniert. Obwohl, wenn ich hier über, es sagt lokalen Host der unteren Links, Es sagt lokale Hostkarte Punkt Link Punkt externen Link. Etwas stimmt nicht, dass es genau da sein sollte, und überprüfen Sie das. Das geht zum Wag Tail. Alles hier sieht schön und kundenspezifisch aus. Dieser geht genau so auf die Homepage, wie ich es erwartet habe. Klicken Sie darauf. Stellen Sie sicher, dass es Dot io ins Exil geht und schauen Sie sich das an. Wir haben schöne Karten, die auf wiederholbaren Karten gehen. Wir können so viele hinzufügen, wie wir möchten. Sie könnten Hunderte oder Tausende von ihnen hinzufügen, wenn Sie Ihre Seite nach einer
Weile verlangsamen möchten. Aber Sie können so viele hinzufügen, wie Sie möchten. Ich werde das bei zwei belassen und durch diesen Kurs vorwärts gehen. Ich könnte tatsächlich einige dieser Inhalte als auch berühren, so dass Sie vielleicht nicht wirklich sehen, wie das nächste Video, dass dies sagt Titel, es könnte sagen etwas ein bisschen anderes. Als Nächstes. Ich denke, wir sollten diese Regel weiter verfolgen, und wir haben eine kleine Möglichkeit, hier einige zusätzliche Logik hinzuzufügen. Also anstatt zu sagen, ob Karte Punkt verlinkt Punkt interne Seite sonst Karte nicht auf externen Link yada, yada, yada, yada, all das Zeug, anstatt zu sagen, dass wir das tatsächlich verkürzen können, Ich denke, wir sollten voran gehen und das mit einer Sache tun, die man als Schlagwert bezeichnet. Wir machen das jedoch im nächsten Video, also
wenn Sie bereit sind, von diesem einen Kopf weiter zu gehen, und wir werden lernen, einige dieser Vorlagenlogik zu vereinfachen.
22. Benutzerdefinierte StreamField: mit einem markierten Block können
wir benutzerdefinierte,
Logik und Werte hinzufügen , ohne sie tatsächlich einem gespeicherten Datenobjekt zuordnen zu müssen, was wirklich nur schickes Gespräch ist, wenn wir sagen, dass wir keine zusätzlichen Daten speichern müssen, wie wir Ein anderes Feld hier genannt, wie das offizielle Du, Earl. Was wir tun können, ist, dass wir hier jetzt
in Django eine zusätzliche Logik hinzufügen können . Wenn dies ein Modell wäre, würde
das so etwas wie Klasse aussehen. Sie sind Modellmodelle, dieses Modell. Und es wäre, als hättest du hier eine Eigenschaft,
die taub . Weißt du, deine Logik wäre hier drin, und dann würdest du zurückkehren. Was auch immer da drin ist. Grundsätzlich würden
Sie den at property decorator verwenden. Nun, das machen
wir nicht, weil wir nicht im Eigentum benutzen. Wir verwenden kein Jangle-Modell. Wir verwenden eine Wartezeit bis geschlagen Block, Extremfeld-Abschnitt. Also im Wesentlichen, was ich in diesem Video tun möchte, ist so ziemlich all diese Logik loszuwerden und einfach zu sagen ob das Auto Liebling du bist el existiert,
benutze, dass du, Earl, was auch immer es sein wird. Also der Tempel muss er nicht mehr überprüfen, um zu sehen, ob seine interne Seite oder eine externe Seite muss
es das eine oder andere sein, und wir werden sie mit einem coolen kleinen Ding tun, der einen geschlagen Wert genannt wird. Also in unserem Link, können
wir tatsächlich sagen Klasse Meta. Geben wir uns eine Wert-Klasse und wir geben uns einen Wert Klasse von Link-Wert, Link-Wert. Nein, dies existiert derzeit nicht. Der Link-Wert existiert nicht, aber wir werden ihn existieren lassen. Also hier oben werde
ich sagen, der Klassenverknüpfungswert wird jetzt existieren. Blockiert den Punktwert, weist
weder Block noch einen Listenblock an, sondern weist Wert an. Und das wird zusätzliche Logik für unsere Links hinzufügen. Und was ich will, dass dies zu Dio ist, anstatt zu sagen, Link Punkt interne Seite, ich möchte, dass unsere Vorlage in der Lage sein, Link Punkt Sie Earl zu sagen, und es wird herausfinden, welche hier ist, und es wird einfach zurückkehren je nachdem, welches verfügbar ist. Nun, das ist eigentlich ganz einfach. Wir müssen tun, ist Typ. Sie sind l selbst, sie sind taub, Sie, Earl, und lassen Sie uns gehen und die interne Seite auf die interne Seite wird selbst sein. Erhalten Sie keine Interne Seite und weil wir diese Wert-Klasse verknüpft haben, um den Wert
hier oben zu löschen , wann immer Punkt u R l aufgerufen wird, wird
es sagen,
Hey, Hey, schnappen Sie sich die interne Seite, was auch immer das ist, und speichern Sie das in einer Variablen, auf die wir jetzt Zugriff haben, lassen Sie uns den externen Link machen. Lassen Sie uns tun externe Link ist gleich selbst gegraben noch ex ewige Verbindung. Und ich lege diese gerne in ihre eigenen Variablen, nur weil es meinen Code ein
wenig einfacher zu machen scheint , ein wenig auf der Straße zu lesen. Also, jetzt kann ich sagen, wenn Interne Seite, weil dies eine lokale Variable ist, kann
ich das tun. Wenn Interne Seite tatsächlich gesetzt ist, könnte
ich einfach die interne Seite zurückgeben, nicht wahr, Earl? Und es sieht genau so aus, was in unserer Vorlage wir haben Wenn Auto Punkt auf interne
Seite verlinkt , dann zeigen Auto Punkt Link Punkt interne Seite Hier ist es Punkt u r l. Wir könnten genau das gleiche in unserer Python-Logik tun. Wir können auch LF externen Link tun und wir könnten nur das als auch Externer Link zurückgeben. Und schließlich, wenn wir wollten, könnten
wir einfach nichts zurückgeben. Und wenn wir ihm ein wenig dazu wollten, können
wir sagen, dass dies immer eine Zeichenfolge zurückgeben wird. Gehen wir weiter und sagen das. Schauen Sie sich unser Terminal an. Es gibt keine Beschwerden, also habe ich keine Tippfehler. Hoffentlich gehen
wir zurück zu unseren Karten hier drin, und ich werde das in die Nähe des Titels setzen. Es ist ein Ort, den ich sehen kann, setzen horizontale Regel da rein und lassen Sie uns Kartenpunkt-Link machen Earl. , Nun ist der Grund, warum ich Auto Punkt Link, dass Sie nur sind, von den letzten beiden Videos, in denen wir über einen Listenblock sprechen. Und jetzt haben wir eine echte Kette von Ereignissen, die hier vor sich gehen, haben wir einen geschlagenen
Block namens Kartenblock , und darin befindet sich ein Listenblock von Karten. Innerhalb jeder Karte ist ein Titel-Text-Bild und ein Link, und innerhalb dieses Links ist drei weitere Felder, Link-Text, interne Seite und externen Link. Aber wir sagen auch,
Hey, Hey, es gibt hier eine Werteklasse, also geben Sie ihnen eine zusätzliche Logik, damit die Werteklasse dieser Link-Wert hier auftauchen wird und jedes Mal, wenn wir Punkt u r l auf dem Link selbst machen. Das ist also genau wie das Hinzufügen, Sie waren alle gleich einer benutzerdefinierten Logik. Es ist genau so, dass diese benutzerdefinierte Logik jetzt nach der internen Seite suchen wird. Wenn es existiert, wird
es uns das Mädchen geben. Wenn es stattdessen einen externen Link gibt, wird
es uns das geben. Und wenn es keine gibt, wird nur eine leere Zeichenfolge zurückgeben. Wie gefällt Ihnen das für eine Kette von Ereignissen? Das ist ziemlich gut, nicht
wahr? Also, jetzt tun wir Karte Punkt bei u R L anstelle von Auto Punkt auf interne Seite Auto
Erwachsenen Sache Punkt externen Link verknüpft . Gehen wir weiter und geben uns Ah,
schnell, schnell, eine kleine Auffrischung. Dieser sagt Slash, weil er auf die Homepage geht. Und dieser sagt http wag tail, Iook
nicht, weil es keine Seite für diesen gibt. Es handelt sich um einen externen Link. Also lasst uns das jetzt aufräumen. Lassen Sie uns das loswerden. Und lassen Sie uns alle diese Logik aus unserem letzten Video wählen, alle drei Abschnitte, und wir können einfach tun, wenn Karte Punkt Link Punkt u R L-Karte, die Link, dass Sie gut sind, sonst gibt es nichts drin. Also, in der Tat müssen
wir das überhaupt nicht tun. Lasst uns das einfach machen. Lassen Sie uns diesen Link immer setzen, Earl. Selbst wenn da nichts drin ist, ist
das völlig okay. Sicher genug, der linke geht immer noch auf die Homepage, und der rechte geht immer noch zu wag tail dot io. Und an dieser Stelle können
wir unsere Vorlage tatsächlich ein wenig schöner aussehen lassen. Ich mag diesen Teil zu tun, weil wir am Anfang unseres A-Tags sagen können, wenn Karte
Punkt Link Sie, Earl und lassen Sie uns zum Ende davon gehen und tun Und wenn und lassen Sie uns auch gehen und nach den schließenden
Tags suchen und im Grunde genau dasselbe tun Wenn Karte Punkt Link Punkt u r l. Und ich werde erklären, was ich hier in nur einer Sekunde mache. Und wenn ja, das heißt, wenn es einen Link gibt, Sie gut, also im Grunde, wenn es etwas anderes als eine leere Zeichenfolge zurückgibt, geben Sie uns einen Link mit diesem Link, wo ich darin und ebenfalls hier unten sagten: Wenn dieser Link Sie, wo alles existiert,
auch, auch, schließen Sie diesen Link. Also jetzt, wenn wir diese Seite speichern, werden
wir absolut keinen Unterschied sehen. Das haben beide Links. Das sind beide Links. Sie können unten links sehen, dass sie hin und her wechseln. Aber nur zum Spaß, Z's gehen wir voran und entfernen Sie die, die zurück auf die Homepage verlinkt. Der hier ist Zebra, Zebra Zebra, und dieser geht auf die Homepage. Lassen Sie uns diese Wahl klären. Es geht also nicht auf die Startseite, und es geht nicht zu einer externen Seite oder internen Seite. Es ist Klicken Sie auf unsere Seite veröffentlichen
und aktualisieren, und diese ist kein Link. Eigentlich hat dort
aber etwas kaputt gemacht, und das war, weil ich versuchte, schick zu sein und drei Orte gleichzeitig zu bearbeiten. Und sicher genug, die Karte auf der linken Seite hat nirgendwo mehr Links, und die Karte auf der rechten Seite tut es immer noch. Und so fügen wir unseren Stream-Feldern zusätzliche Logik hinzu, indem wir einen Strukturwert verwenden. Jetzt muss es nicht nur mit einem Link sein. Sie können dies auf jedem geschlagenen Block überhaupt tun. Alles, was Sie tun müssen, ist Wert zu tun. Unterstriche Klasse ist gleich dem, was auch immer Ihr Link-Wert sein wird, Ihr oder wirklich was auch immer dieser aufgetretene Wert wird dieser Klassenname genannt werden, und dann können Sie Ihre Werte aus dem Feld, das Sie geschrieben haben, greifen. Dann können Sie eine Logik ausführen und alles zurückgeben, was Sie wollen. Persönlich denke
ich, dass dies eine fantastische Funktion ist, die ich nicht genug da draußen sehe. Ich mag diesen hier
wirklich. Ich denke, es ist eine nette, saubere Möglichkeit, Ihren Streamfeldern eine kleine zusätzliche Logik zu geben, ohne Ihre
Vorlage zu überladen . Zu diesem Zeitpunkt würde
ich dringend empfehlen, einen Blick auf den Quellcode zu werfen, sogar fühlen Sie sich frei, meinen Quellcode völlig zu stehlen und einfach damit herumzubasteln. Experimentieren. Versuchen Sie, es zu brechen, wenn Sie möchten, weil es vier Abschnitte dazu gibt. Da ist der Kartenblock. Da ist der Kartenblock, da ist der Link-Block. Und dann ist da noch der Link. Wert hat Wert geschlagen, so auf jeden Fall geben, dass eine Chance. Viel Spaß damit noch mal. keine Angst, es zu brechen. Und wenn Sie bereit sind, zum nächsten Traumfeld zu gehen. Lass uns ein Stream-Feld erstellen, in dem wir ein Bild und Text haben werden.
23. Bild- und Textblock: In Ordnung, wir einen Schritt zurück und arbeiten nicht mit etwas so Kompliziertem. Blöcke auflisten. Sie haben, Ah, viele Teile, und es ist ziemlich einfach, es zu erweitern. Wie wir in den letzten drei oder so Lektionen gesehen haben, gehen
wir zurück zu einem regulären Block und lassen Sie uns einfach ein Bild hinzufügen ein vielleicht einige
Bildausrichtungsoptionen . Wir werden den Link wiederverwenden, den wir in unserem erstellt im letzten Video verwendet, und das ist auch ein Bild hinzufügen. Also zuerst gehen
wir weiter und öffnen unsere Streams Blöcke Dot Pie Datei, und ich werde das vollständig zusammenbrechen. Machen Sie das nur eine kleinere, und es spielt keine Rolle, wo Sie es hinstellen möchten. Ich schätze, ich könnte das ganz unten stellen. Ich weiß, dass ich eine brandneue Klasse erstellen möchte, und ich werde nur Bild und Textblock nennen, weil ich diese nicht sehr
kreativ nennen möchte . Ich möchte diese ausführlichen Lee nennen, damit die Leute genau wissen, was sie sehen. Dies wird ein gestürzter Block sein, ein regelmäßiger Block, und ich weiß, dass es ein glückliches Glück sein wird, weil es
hier mehrere Werte haben wird. Es wird also eine Bildausrichtung haben. Geben wir diesem Abschnitt einen Titel, einen Text und einen Link. , Wir wissen,dass Link bereits fertig ist. Link ist gleich Link. Woher kommt das jetzt? Wir haben hier oben eine Klasse namens Link erstellt. Wir haben es in unserer Karte verwendet. Wir können uns jetzt überall wiederverwenden. Es ist ein geschlagener Block, und es hat bereits einen benutzerdefinierten Wert namens dot u R L. So kann ich das jetzt überall verwenden. Also diese, wenn es darum geht, aber im Text eine wag tail page oder eine externe Seite auszuwählen,
kopieren und fügen Sie einen Link zu einer externen Seite ein. Das ist schon erledigt. Das sind drei Felder in einer Zeile. Das ist ein schönes und einfaches Bild. Wir haben das schon benutzt. Bildauswahl, Block, und wir könnten etwas Hilfe geben. Text auf diesem. Dies wird auch erforderlich sein. Nehmen wir also an, das Bild wird automatisch magisch zugeschnitten. Dies wird ein größeres Bild sein. Also glaube ich, es ist 7 68 Nein, habe ich falsch gesagt. 7 86 60 Es scheint seltsam. 7 86 mal 552 Pixel. Wenn ich mich vom Design richtig an die Bildausrichtung erinnere, wird
dies eine neue sein. Dies wird Blöcke Dot Choice Block jetzt sein. Ein Auswahlblock sieht ziemlich interessant aus. Also haben wir hier eine Auswahl, und das wird
im Grunde ein paar Doppel sein. Sie haben also Entscheidungen, die wir links und links setzen können, und ich werde Ihnen sagen, was das in Sekundenschnelle mit der linken, einer rechts und rechts bedeutet, und das war sehr verwirrend, was ich gesagt habe. Jedes Problem hat also zwei Werte. Die linke ist, was wir werden Zugriff auf innere Vorlage haben und die rechte ist was angezeigt werden wird, damit wir Bild auf der linken Seite sagen können. Totti links nach links und Bild rechts. Das macht es ein wenig klar. Wir können ihm auch einen Standardwert geben, so dass der Standardwert bleibt. Nehmen wir an, das Bild ist immer links, und wie alle unsere anderen können
wir uns auch etwas helfen. Text hier rein. Wir können dies auch auf neue Linien aufteilen. Es sieht also ein wenig konsistenter aus. Hilfe Texas gleich Bild auf der linken Seite mit Text auf der rechten Seite oder Bild auf der rechten Seite mit Text auf der linken Seite. Unser Titel wird Blöcke Tut char Block sein. haben wir schon mal gesehen. Lassen Sie uns dies eine maximale Länge von etwa 60 Zeichen geben und Hilfetext maximale Länge von 60 Zeichen. Text ist gleich Blockbolzen. Sie wollen HR Block Ja, wird nicht sehr lang sein. Text. Also HR Block mit maximaler Länge von dem, was früher ein Tweet war. 140 Zeichen, und wir machen dies optional erforderlich ist falsch und wir haben einen Lincoln hier. Als nächstes gehen wir weiter. Geben Sie einige Metaoptionen an. Wo soll diese Vorlage hin? Sagen wir Streams. Bild und Textblock Punkt html und Symbol. Ich werde ihm ein Bildsymbol geben, und das Etikett wird Bild und Text mit einem N Prozent in der Mitte sein. Also sagt es nicht und es sagt nur Bild kaufmännisches Und-Zeichen. Jetzt ist das alles groovig. Und hoffentlich habe ich keine Tippfehler. Ich Terminal denkt nicht so. Ich werde dieses Wert-Bild und Textblock nur diesen Text kopieren und ich werde
Home-Modelle öffnen , die Kuchen und in meinem Körper hier, wo ich das Titel-Stream-Feld und das Kartenstream-Feld
habe, werde ich nur Bild und Textblöcke Punkt hinzufügen Bild und Textblock. Jetzt gibt es derzeit keine Vorlage, aber lass uns voran gehen und sehen, wie das in unserem Backend aussieht. Wenn wir unsere Seite bearbeiten, jemand falsch dort Block ist nicht definiert. Ja, das ist richtig. Block ist in der Tat nicht definiert seine Blöcke. Es ist unsere Seite aktualisieren, und wenn ich auf dieses Plus klicken, haben
wir jetzt Bild und Text bemerkt das kaufmännisches Und-Zeichen dort, das das Label ist. So können wir jetzt ein Bild, ein
beliebiges Bild auswählen . Es ist so wie dieser. Wollen wir Bildausrichtungen nach links oder Bildausrichtung nach rechts? Lassen Sie uns das Bild auf den linken Beispieltitel hier sein. Beispieltexte hier. Beispieltext hier. Verknüpfen Sie weitere Details. Ja, gehen wir mit mehr Details. Eine interne Seite Lasst uns mit Glanz gehen. In der Tat, lasst uns etwas davon ändern. Das ist ein Titel die saubersten Raketen, die es je gab, und der Text wird sagen, dass keine Rakete jemals so glänzend war. Es ist so glänzend, es ist fast reibungslos. Gehen Sie weiter und speichern Sie das. Veröffentlichen Sie unsere Seite und wieder, wenn wir Aktualisieren drücken. Dies wird nach einer Stream-Feldvorlage suchen, die nicht vorhanden ist. Ja, und es ist auf der Suche nach Bild und Textblock, und wir wissen, dass es an all diesen verschiedenen Orten dafür suchen wird. Also lassen Sie uns voran und machen, dass unter meinem ROCKETMAN-Projekt existieren oder was auch immer Ihr Projekt aufgerufen wird oder unter Vorlagen unter Streams aufgerufen wird, lassen Sie uns hier ein neues erstellen. Bild und Textblock dot html. Nein, diesen Punkt. Hier gibt es nichts, was wir nicht mit Ausnahme der Bildausrichtung behandelt haben. Also lasst uns zuerst die Bildausrichtung angehen. Und dann werden wir, äh, ich schätze, wir werden alle anderen durchgehen und das irgendwie spüren. Ich würde es nicht schön aussehen lassen. Schauen wir uns ihre Bildausrichtung an. Alles, was wir dafür tun müssen Es ist eine Selbstpunkt-Bildausrichtung, und das wird diesem Text genau hier und wieder entsprechen. Wenn Sie sich in einem Stream-Feld befinden, könnte
es Wert Punkt, Bildausrichtung oder Selbst sein. Das Bild Lineman Also sagen wir, Ausrichtung. Lassen Sie uns das in H eins geben. Und wenn wir unsere Seite aktualisieren tun, tun, tun, tun Sie es wird links ausgerichtet werden jetzt hat es nichts mit diesem Abschnitt zu tun. Lassen Sie sich davon nicht verwirren. Das wird hier ein eigener Abschnitt sein. Dies ist kein völlig anderer Abschnitt, der bereits existiert. Okay, also was ich hier tun werde, ist, dass ich verblassen werde. Ich werde ein Haufen HTML rechts und dann werden wir die fehlenden Teile
zusammen füllen . Okay, also habe ich hier einen Haufen HTML geschrieben, und wir werden die fehlenden Teile ausfüllen. Aber schauen wir uns an, was das gerade ansieht. Wenn ich also meine Seite aktualisiere, habe ich hier ein Bild, das einen Link hat. Sie können sehen, dass unten links ein Titel, etwas Text und eine optionale Schaltfläche. Obwohl es derzeit hart codiert ist, ist
es nicht optional. Es ist definitiv jedes Mal da. Also müssen wir hier etwas arbeiten. Wir brauchen toe, im Grunde entfernen Sie alle zu tun und entfernen Sie dieses Platzhalterbild. Also lasst uns das einfach nach dem anderen ausarbeiten, und schauen wir uns jeden der zu tun hier an. So CC I 80 Bild- und Textabschnitt. Ich möchte, dass wir uns ausrichten. Dies wird also Selbstpunkt-Bildausrichtung sein und das ist Flex-Box. Das wird also links oder rechts sein, und es stimmt nur mit dem CSS überein. Als nächstes machen
wir das Bild. Ich weiß, dass es hier oben eine Acht gibt, aber lass uns zuerst das Bild sehen. Also wollen wir Bild Selbstpunkt Wie haben wir es genannt? Nicht nur Bild. Das ist einfach. Wir wollen sicherstellen, dass es immer genau 786 Pixel um 552 Pixel füllt, wie ich G bin und ich werde das durch Bildpunkt TRL ersetzen. Der Altar muss ersetzt werden. Auch wenn nicht alle Texte drin sind, ist es immer gut, wenigstens die alten Attribute drin zu haben. Lassen Sie uns fortfahren und diese Seite aktualisieren. Etwas ist kaputt. Oh, ist das nicht komisch? Ungültiges Block-Tag in Zeile 11 Bild. Haben Sie vergessen, sich anzumelden? Laden Sie diesen Take. Du hast absolut Recht. Habe ich. Lassen Sie uns Wag Tail Bilder Tags hinzufügen. Und denken Sie daran, jedes Mal, wenn wir das Wag Tail Bild-Tag verwenden, müssen
wir immer laden. Warten Sie, bis Bilder Tags unterstreichen. Jetzt lasst uns auffrischen. In
Ordnung, okay, okay, das sieht nicht halb schlecht aus. Okay, machen
wir den Titeltext und die Schaltfläche. Der Titel ist also genau hier. Wir werden dio-Selbstpunkt-Titel. Vermutlich habe ich es so genannt. Ja, Titel der nächste wird Text sein. Dieser ist optional. Also, weil dies optional ist, wenn Selbstpunkt-Text und wenn und hier, lassen Sie uns tun Selbstpunkt-Text aussehen, dass die saubersten Raketen jemals existieren. Keine Rakete war jemals so glänzend. Es ist so glänzend, es ist fast reibungslos. Das ist da drin etwas zu tun. Jetzt wird das ein bisschen anders sein. Dies wird kein Selbstpunkt-Link-Text sein. Das wird sich selbst zweifeln. Link Punkt Link Text Link, Text. Da gehen wir. Und der Grund dafür ist, dass Link gleich link ist. Nun, das ist eine andere Klasse, also können Sie es als Link gleich betrachten,
und dann wird es irgendwie wie ein Unterabschnitt von sich selbst hineingehen und sein bekommener Linktext ist gleich und irgendwie. Wenn Sie darüber nachdenken, ist
es Link gedacht Link-Text gleich ist, und jetzt müssen wir unsere Links in Jahren hinzufügen. Also lasst uns all diese finden. Da sollten ein paar von ihnen drin sein. Ja, zwei von ihnen. Das wird also immer so dot-link dot u r l. und wir bekommen das von unserem markanten Wert. Also haben wir einen Link, den wir hier Linktext, interne Seite, externen Link verwenden und einen Link-Wert oder einen markierten Wert verwendet. Und es gibt uns den Punkt u R L Wert. Dies ist also eine benutzerdefinierte Stream-Feldlogik. Dies existiert im Stream-Feld nicht, aber sobald das Stream-Feld auf der Seite gerendert wird, existiert
es. So haben wir Zugang zu Link, dass Sie l Jetzt, Schließlich, sollten
wir diese Links optional machen. Und der Grund, warum wir diese optional machen werden, ist, weil wir interne Seite einen
externen Link haben , und beide sind nicht erforderlich. Sie sind beide optional, also gibt es eine Möglichkeit für jemanden, beide Felder einfach zu ignorieren, und es wird keinen Link
geben. Also lasst uns einfach voran gehen und dieses Problem jetzt lösen, wenn selbst Punkt verknüpft ist, dass du sicherstellen
würdest, dass das existiert und wenn und wir dasselbe mit unserem
schließenden Tag machen wollen und wenn und das sauber ist, gibt es einen mehr. Wo bist du? Genau da. Sie müssen Link existiert. Zeigen Sie den Link an. Und wenn wir voran gehen, alles klar, so wird das jetzt zu unserem leuchtenden Service verbinden. Also auf unserer Homepage haben
wir jetzt ein Banner und wir haben hier ein Streamfeld, das sagt, die saubersten Raketen jemals existieren mit dem Link, der zu mehr Details geht. Und wenn wir darauf klicken, geht
es zu unserem glänzenden Service. Und so erstellen wir noch ein weiteres Stream-Feld, ein markiertes Block-Stream-Feld mit einer Bildauswahl Bildausrichtung, die technisch ein Auswahlblock Titeltext ist. Und wir verwenden die Link-Komponenten bereits in zwei Abschnitten. Also machen wir wirklich Gebrauch von diesem
24. Radio: Oakley Doak. Zu Beginn ihres letzten Videos haben wir die Bildausrichtung mit dem Auswahlblock erstellt. Nun kann
ein Auswahlblock großartig sein, wenn Sie mehrere Auswahlmöglichkeiten haben. Aber wenn Sie nur zwei Möglichkeiten haben, manchmal wollen Sie einfach, wie eine Radio-Select-Option, wo es ist wie Sie in wählen Sie eine oder die andere mit kleinen Boxen . In diesem Video werde
ich Ihnen zeigen, wie man das macht. Wir werden unseren Block öffnen. Stop I. Und im letzten Video, das wir erstellt haben, Bildausrichtung ist gleich Block startet Auswahlblock. Wir werden das tatsächlich durch mehr
Radio-Auswahlblock ersetzen . Also schreibe ich zuerst den Code. Dann werden wir ein paar Importe machen und dann werden wir das ersetzen. Also lassen Sie uns voran gehen und schreiben Klasse Radio-Auswahlblock. Ich denke, es ist nicht wirklich ein Auswähler wie ein Seitenwähler oder ich bin in Schuhen. Oder lassen Sie uns das vielleicht nicht nennen. Lassen Sie uns es ein Radio-Select-Block-Blöcke Punkt Auswahlblock nennen und Sie können feststellen, dass dies
das gleiche ist , und jetzt sind wir tatsächlich erben dies direkt. Wenn wir das wollten,könnten
wir diesen Quellcode weiter sezieren. Wenn wir das wollten, Wir könnten mit der rechten Maustaste klicken und gehen, um zur Definition zu springen. Oder Sie können den Quellcode auf Get Hub bei get hub dot com wie wag tail slash wag tail und hier sind wir gegangen. Die Wahl ist hier drin ein bisschen Ach, ein Haufen Zeug, das vor sich geht. Erhalten Sie schuldhafte Entscheidungen und Sie könnten wenig Zeit hier verbringen. Ich gehe einfach durch den Quellcode ist eigentlich nicht so lang, wenn Sie
alle Dock-Strings und die Kommentare loswerden . Aber wenn du es wolltest, könntest
du das immer erkunden. Ich ermutige Sie immer, sich den Quellcode anzusehen, auch wenn es zunächst keinen Sinn ergibt. Es ist gut, einfach darüber zu lesen, denn hin und wieder klickt etwas. Lasst uns definitiv tun. Wir haben diese Funktion gesehen. Also lasst uns in den Künsten und den Quarks vorbeigehen. Lassen Sie uns super darauf laufen, so dass es bereits aus dem Choice-Block läuft. Und lassen Sie uns auch in jeder Art von unseren Eiern und Chören, die
dort weitergegeben werden , sind im Schlepptau. Das hier. Ah, und dann lassen Sie uns ein Feld-Widget setzen, wenn ich mich richtig erinnere. Es ist Selbstpunktfeld, das Widget ist gleich Formularen. Das ist also eine Jangle-Form, die das in nur einer Sekunde importieren wollte. Ich glaube, es ist eine Funkauswahl. Und dann können wir sagen, die Entscheidungen werden sein, was auch immer das selbst erledigte Feld, dieses Widget, das Entscheidungen sind. Wenn du uns nicht alle verstehst, weil du vielleicht neu in Django bist, oder vielleicht
weißt du gar nicht alles. Dann haben
Sie das Gefühl, dass Sie das alles lernen müssen. Und wenn Sie diese Funktion mögen, vergessen Sie
nicht, dass Sie es einfach stehlen können, genau für meinen Quellcode, es steht Ihnen zur Verfügung. Nun, was wir tun werden, ist, das zu importieren. Ich werde auch einige meiner Typen reparieren, die da waren. Du hast nichts gesehen. Es gab keine Tippfehler. Moment werde ich den ganzen Weg bis zu meiner Seite scrollen und ich werde von
Django-Importformulare tun und ich werde wieder nach unten gehen, bis die Formulare sind. Und wo sind Weg anstelle von Blöcken? Auswahlblock starten. Alles, was ich tun werde, ist es durch diesen Text hier zu ersetzen. Radio Select Block Lassen Sie uns voran und ändern Sie das in einen Radio-Select-Block. Es ist, in seinem Kern, ein Auswahlblock. Alles, was wir sagten, wurde ein anderes Feld-Widget verwendet und so alles andere, was wir
Standard anwenden , Hilfe, Text und Entscheidungen. Sie werden alle schon angewendet. immer, sind das Schlüsselwort sind Eier, die in sie übergeben wurden, die super läuft, die gehen wird super auf Block Stock Choice Block laufen. Also kommt alles noch stromaufwärts vorbei. Gehen wir weiter und speichern Sie das. Quarks ist nicht definiert. Ja, denn es sind keine Chöre, seine Kernauftritte, die gesünder aussehen. Lassen Sie uns voran und aktualisieren Sie unsere Seite. Und würden Sie sich das Bild der Bildausrichtung ansehen, das linke Bild auf das rechte Bild links Bild nach rechts, und nichts wird sich in Ihrer Vorlage ändern. Alles, was wir taten, war die Widgets auszutauschen, die warten, bis sie für eine Radio-Auswahl verwendet wurde. Also statt eines Drop-Down,sagten
wir, sagten
wir, verwenden Sie ein Funk-Select-Programm. Wenn Sie diese Art von Sache mögen, fühlen Sie sich
auf jeden Fall frei, es zu benutzen. Wenn Sie denken, dass dies nur völlig nutzlos ist in einer Art Verschwendung Ihrer Zeit als Entwickler, ignorieren Sie es und gehen wir zur nächsten Lektion
25. Aufruf zu den Block: Lassen Sie uns auf die Schaffung eines anderen neuen Stream-Feld, einen Aufruf zu Aktion Stream Feld. Sagen wir mal, jemand ist auf unserer Seite und wir versuchen, sie bei unseren
Raketen-Wartungsdiensten zu verkaufen , und wir wollen, dass sie uns kontaktieren. Nun, momentan scrollen
wir die Seite runter. Es gibt keinen wirklichen Weg für sie, uns zu kontaktieren. Schließlich können
wir einen Kontaktpatienten erstellen. werden wir. Wir werden auf jeden Fall dorthin kommen. Aber zu diesem Zeitpunkt möchten
wir nur eine Art Aufruf von Action Block erstellen. Nun, das wird nur ein sehr einfacher Titel und Link sein und buchstäblich nichts anderes. Gehen wir also weiter und fügen Sie diesen Block hinzu. Jetzt werde ich all das Zeug schließen und so tun, als würde ich von vorne anfangen . Lasst uns weitermachen. Offene Blöcke Schrägstrich. Nein. Das ist falsch. Lassen Sie uns voran und öffnen Ströme Schrägstrich Block. Stop I Und ganz unten auf meiner Seite werde
ich Klasse hinzufügen. Call to Action
Block, blockieren Start geschlagen Block und ich mache nur etwas Platz, um dort zu arbeiten. Okay, also sagte ich, es wird einen Titel geben, der etwas und eine Verbindung sein wird, und das wird etwas sein. Nun, wir wissen, dass der Link bereits gesetzt ist, also cool, das ist erledigt. Und der Titel wird einfach ein Char-Block sein, und wir werden uns eine maximale Länge von vielleicht 200 geben, damit er ziemlich lang sein kann. Wenn wir wollten, dass es sein und Texas helfen, max Länge von 200 Zeichen zu sagen, lassen Sie uns voran und fügen Sie unsere Meta-Klassenvorlage wird Streams Schrägstrich sein Nun, lassen Sie uns dies ein wenig anders machen. Es wird nach einem Aufruf zur Aktion suchen blockiert html. Und in der Tat, lassen Sie uns sehen, wonach es suchen wird. Nur als Beweis. wir ihm keine Vorlage. Ich werde es
jedoch wie ein Symbol geben, jedoch wie ein Symbol geben, und dann werde ich ihm ein Label namens Call to Action geben. Eigentlich, jetzt ist das großartig. Das tut
aber nichts, aber nichts, weil wir auf unsere Homepage gehen müssen und dies aktivieren müssen Also in ihrem Körper, wir müssen nur tippen. Ich weiß es nicht. C t ein Block-Startaufruf an Action Block. Und denken Sie daran, dass Texas tatsächlich nicht von uns benutzt wird, es gibt eine Möglichkeit, jedes einzelne Stream-Feld durchzulaufen und zu erkennen
, welcher Stream es ist , aber wir werden das nicht tun. Schauen wir uns das Terminal Terminal an, dass es keine Probleme gibt. Das sind gute Neuigkeiten. Gehen wir weiter und bearbeiten Sie unsere Homepage und wir sollten hier einen Aufruf zur Aktion blockieren sehen. Aber Babu, da heißt es Action, und die Aktion wird einfach etwas in den langen Schlangen der besten Dang Raketen je verursachen. Ich weiß es nicht. Ich schätze, wir machen jetzt Raketen. Wahrscheinlich nicht. Ich werde mich umziehen. Ich begnüge mich ein wenig später. Uh, lass uns das Glänzen machen. Nein, lass uns nicht glänzen. Lasst uns putzen. Und lasst uns von den besten Raketen aller Zeiten zu etwas ändern, das hier etwas
anwendbarer ist. War er kürzlich eine Rakete im Weltraum? Bringen Sie es sauber. Reinigen Sie Ihre Rakete jetzt kann sich vorstellen, dass sie ziemlich schmutzig werden, mit all dem Treibstoff, der verwendet wird ,
und ,
äh , wissen
Sie die Atmosphäre
betreten und verlassen und all das. Alles klar, das ist gerettet. Lassen Sie uns Ihre Seite aktualisieren. Und würdest du dir das ansehen? Es sagt eigentlich nicht, dass die Vorlage nicht existiert. Es rendert es nur direkt auf die Seite. Nein, das ist cool und so. Aber das wollen wir nicht. Wir wollen, dass dies tatsächlich ein richtiges Stream-Feld hat. Wir werden sagen, dass es bei Action leben muss. HTML gesperrt. Und wenn ich diese Seite jetzt aktualisiere, werden
wir sehen, dass es einfach nicht gibt. Area Wir haben das gesehen. Oh, meine Güte. 100 Mal, lassen Sie uns fortfahren und das existieren lassen. Rocket Man Vorlagen, Streams und neue Datei Aufruf zur Aktion Block dot html. Ordnung, InOrdnung,
also habe ich gerade meinen Aufruf zur Aktion Block hinzugefügt, und Sie können sehen, was ich getan habe. Es gibt also einen Titel und es wird einen Link geben. Eigentlich glaube ich nicht, dass Link ganz richtig ist. Eigentlich sollte
das Klasse sein. Das sieht besser aus. Okay, jetzt müssen wir nur noch unseren Titel hinzufügen. Das kommt von einem Stream-Feld. So ein Stream-Feld schwächen Sie sich Punkttitel oder Wert Punkttitel. Lassen Sie uns voran und tun Selbstpunkt-Titel nicht mit einem Seitentitel verwechselt werden. Und weil dieser ein Link ist, der von aufgerufen Aktion kommt, So selbst Punkt Link Link wird uns Link-Text geben,
interne Seite, interne Seite, externen Link und durch Zoll Stream Feld Logik Sie sind l so in hier können wir dio Selbst Punkt Link. Bist du das nicht? Nein, das ist das Falsche. Text verknüpfen. Und für das Mädchen, das ist, wo wir selbst dot Link gemacht haben, dass du Huzzah bist! War deine Rakete und dein Weltraum kürzlich? Bringen Sie es sauber. Reinigen Sie Ihre Rakete jetzt und es bringt uns zu unserer Rakete Reinigungsservice Seite Schönheit. Nun, das hat Spaß gemacht, aber, uh, ich denke, es ist Zeit, in ein paar verschiedene Arten von Stream-Feldern zu bekommen und auch mit Dingen wie einem Snippet-Auswahlblock zu
spielen, wo wir tatsächlich Wählen Sie ein Zeugnis .
26. Testimonials und Snippets: Es war einmal, vielen, vor
vielen,
vielen Videos, haben wir diesen Testimonial Abschnitt erstellt. Wir hatten es Zitate von Yoda und Chewbacca, und dann haben wir auch registriert sind Zeugnis als Snippet, und diese Aussage war eigentlich ein Wackelmodell. Es hat nichts mit Wag Tail zu tun, außer der Tatsache, dass wir es in der Wag Tell Edmon registriert und registriert es als schnüffeln es. Jetzt sind Snippets nett, weil sie Teile von Daten wie diese sind, die wir mit
einer gooey grafischen Benutzeroberfläche auswählen können . Und in diesem Video wir genau das tun. Wir werden den Leuten erlauben, ein Zeugnis auszuwählen und ein Testimonial Stream Feld zu erstellen. Aber anstatt das Stream-Feld immer und immer wieder schreiben zu müssen, weil vielleicht
das gleiche ,wird das gleiche Zeugnis auf vier verschiedenen Seiten verwendet werden. , Wir werden einfach sagen, Wählen Sie eine dieser, und wenn wir es auf einer Seite ändern, es wird es auf jeder Seite ändern. Und lasst uns einfach direkt auf unsere Homepage Home-Models gehen, die Kuchen. Und hier drin werden wir direkt auf ein neues Stream-Feld gehen, und dieses wird als Zeugnis bezeichnet werden, weil wir ein
Stream-Feld verwenden werden, das nur ein bestimmter Typ ist. Zum Beispiel haben
wir dieses Schriftfeld. Es ist ein geschlagener Block und es hat nur das eine Feld. Warum verwenden wir Blöcke, die Block geschlagen haben, wenn Sie wissen, dass wir stattdessen Blöcke Dot
Char-Block verwenden könnten ? Nun, wenn wir mehr als ein Feld haben, wie in der Karte oder unserem Bild und Textblock, sogar in unserem Aufruf zur Aktion Block? Sicher, es macht Sinn, einen geschlagenen Block zu verwenden, aber wenn Sie nur das eine Feld haben, ist
es manchmal einfacher, einfach nicht einen geschlagenen Block zu verwenden und zu verwenden, was Wait till
uns aus der Box gibt . Also, was wir hier tun werden, ist, dass wir sagen, dass unser nächstes Traumfeld
Testimonial heißt , und wir werden einen Snippet-Auswahlblock verwenden
, der nicht aus unserer Blocks-Datei und oben auf unserer Seite hier kommt. Wir wollen von Wag Tail Punkt Snippets Punktblöcke tun, importieren Snippet, Benutzerblock. Und wenn wir uns unser Terminal ansehen, können
Sie deutlich sehen, dass es sich beschwert. Wir haben ein positionales Argument. Fehlendes Zielmodell. Es weiß nicht, welches Snippet ausgewählt werden soll. Nun, obwohl unsere Website wirklich nur die hier drin hat, müssen
wir immer noch sagen, welches Modell zu wählen ist. Nun, das ist wirklich wirklich einfach zu spezifizieren. Hier können wir einfach sagen, direkt innerhalb des Blocks, übergeben Sie es direkt. Wir können sagen, Target-Modell wird sein. Welches Modell wollen wir verwenden? Nun, in einer Schnur, also laden wir diese Zeugenaale irgendwie faul auf. Kann ich Array-Zeugnisse buchstabieren? Testen Sie Moughniyah Will nicht. Ich habe keine Ahnung, ob ich das richtig buchstabiere. Mein Terminal wird es wissen, aber das sieht gut aus. Lassen Sie uns voran und das ist Editor Homepage Homepage auf Seite Homepage, die bis
ganz unten scrollen wir haben eine neue hier in Testimonial genannt gibt uns automatisch den Namen und dieser Name kommt einfach von hier. Lass uns das nur ein bisschen kleiner machen. Dieser Name kommt von hier, also wird er an dieser Stelle tatsächlich verwendet, weil wir ihm keine zusätzliche
Beschriftung geben . Das Symbol ist das Snippet-Symbol, nur ein paar Blätter, die Standard kommt und jetzt wird es uns sagen, ein
Zeugnis zu wählen , und an diesem Punkt, wählen
wir klassische Chewbacca. Lassen Sie uns weitergehen und veröffentlichen, und wenn wir unsere Seite laden, wird
es nicht ganz sein, was wir erwarten. Wir werden hier runter scrollen und abkühlen. Wir sehen das Zeugnis, aber wir können es an dieser Stelle nicht wirklich zu viel nutzen. Also lassen Sie uns voran und übergeben Sie uns auch eine benutzerdefinierte Vorlage. Und an diesem Punkt denke
ich, es ist einfacher, wenn wir das auf getrennte Zeilen setzen. Der erste Parameter, das erste Schlüsselwortargument des Positionsparameters, ist
also eher das Zielmodell. Die 2. 1, die wir geben werden, ist eine Vorlage, und das, an dieser Stelle ist nicht anders. Dann übergeben Sie eine Vorlage in der Klasse Meta. Also werden wir einfach sagen, dass diese temporäre muss in Streams Slash ja leben, Imo nial Block dot html Und jetzt, wenn wir unsere Seite aktualisieren, werden
wir sehen, wann es geladen wird. Übrigens, wenn Ihre Seite jemals so langsam lädt und Sie ungeduldig damit sind, ist
es dieses Ding hier, Sie Django-Debug-Toolbar. Dies ist ein Profilerstellungstool, also wird es alle Abfragen,
alle statischen Dateien,
alles darin protokollieren alle statischen Dateien, . Wenn das zu lange dauert, können
Sie einfach in Ihre geschickten hohen Einstellungen gehen und sie deaktivieren. Also sehen wir die gefürchtete Vorlage existiert nicht Fehler. Er hat eigentlich nicht gefürchtet. Wir wissen genau, was es tut. Versucht, an allen möglichen Orten nach einem Zeugenblock zu suchen. Lass es uns existieren lassen. Also
lassen Sie uns in unseren Streams voran und fügen Sie einen Testimonial Block dot html hinzu. Und an diesem Punkt ist
es irgendwie schwierig zu verstehen, was wir Zugang haben, weil innere c t einen Block Wir hatten einen Titel, also war es Selbstzweifel Titel oder in unserem Textblock. Ich glaube, es war nur Text. Ja, so innen in unserer Vorlage, hätten
wir gerade gesagt Selbstpunkttext oder Wert Punkttext. Aber was machen wir in einem Testimonial Block oder einem Snippet Chooser Block? Wenn wir nicht wissen, was gegeben wird, also können wir anfangen zu experimentieren. Das erste, was wir tun können, ist einfach in sich selbst zu gehen. Mal sehen, was das zurückgibt. Sie können sehen, dass es Ordnung von Chewbacca sagt. Nun, das ist nicht das Zeugnis. Das Zeugnis ist G R R R R R und die Zuordnung ist Chewbacca. Wenn wir also Testimonials öffnen, die Models-Datei, werden
wir tatsächlich sehen, dass wir hier ein Zitat und die Namensnennung haben. Wir haben auch Unterstrich Unterstrich str Unterstrich Unterstrich. Also dunder unter und das ist, was es zurückgibt, gibt die
String-Repräsentation von sich selbst zurück . Das wollen wir nicht. Das Schöne daran ist, wenn Sie ein Objekt sehen, das die String-Repräsentation
von sich selbst zurückgibt , weil es
das gesamte Objekt ist, das zurückgegeben wird. Es weiß einfach nicht, ob Sie das Zitat oder die Namensnennung Fielder sehen möchten oder was
möchten Sie sehen? Es steht also nur:
Okay, Okay, nun, ich gebe dir den Namen, den du ihm gegeben hast, und deshalb. Und das ist genau der Grund, warum wir das früher eingestellt haben, äh, um zu helfen, aber es sieht auch ein wenig schöner aus. Also lassen Sie uns voran und versuchen sich DOT Zitat. Und wenn wir Ihre Seite aktualisieren, da ist sie. Es gibt Zitat und Namensnennung, und noch einmal, ich werde Ihre Seite aktualisieren und es wird Chewbacca genau so sagen. In Ordnung, also wollte ich nicht, dass du auf mich aufpasst, oder? All dieses langweilige HTML testet die Tatsache, dass ich ein paar Tippfehler gemacht habe, mein CSS, das beim ersten Mal nicht richtig funktioniert hat. Also bin ich ausgeblendet, verblasst, und wir werden die zusammen füllen. Lassen Sie uns also einen Blick darauf werfen, wie das jetzt aussieht, mit nur dem zu tun-Text dort drin. Wir haben ein Angebot, das wir ausfüllen müssen und Namensnennung, die wir ausfüllen müssen. Also, jetzt, wo wir wissen, wie man auf diese Schwächung zugreifen kann, tun Sie
einfach Selbstpunkt-Zitat und hier unten können wir Selbstpunkt-Zuordnung machen und wieder, ich bekomme diese direkt aus dem Snippet selbst, weil wir hier ein Zeugnis haben. Es ist ein Model. Es ist ein Jangle-Modell, aber es ist als Snippet registriert und wir haben keinen geschlagenen Block benutzt. Wir sagten: Wählen Sie
einfach das Stück Inhalt aus. Wählen Sie das Zeugnis aus. Nur dieses rohe Zeugnis. Dieses Testimonial Modell wird jetzt Zitat unzitiert Selbst oder der Wert. Also lassen Sie uns das überprüfen. Oh, ja, das sieht ziemlich gut aus. Okay, wir haben noch eine Sache hier, weil ich das wirklich will. Was ist bei einem Bindestrich? Starten Sie den langen. Ich glaube, das ist ein langer. Ja, das ist es. Das ist ein kleiner Hauch da. Und jetzt haben wir einen Snippet-Auswahlblock, und zu jedem Zeitpunkt können
wir Testimonials ändern. Lassen Sie uns hier zwei Beispiele machen. Gehen wir und bearbeiten dieses Zeugnis. Was soll Bacchus noch sagen? Ah, er schießt eine Waffe, also steht, P p p p u du bist du erfrischen. Beachten Sie, dass ich die Seite nicht geändert habe. Ich habe die Daten des Zeugnisses geändert. Ich habe die Seite überhaupt nicht geändert. Und wenn ich zurück auf die Seite hier gehe, nun, das ist die alte, weil ich die Seiten ungefähr zur gleichen Zeit geladen habe. Wenn ich ein anderes Zeugnis wähle, schau dir das an. Ich kann wählen, geben Menschen Hoffnung, dass Sie von Ibaka oder tun oder nicht. Es gibt keinen Versuch Biota. Also, ich meine, es ist wie diese Veröffentlichung. Aktualisieren Sie die Seite und dies ändert sich auch. Huzzah! Jetzt haben wir zwei verschiedene Möglichkeiten, um Daten auf unserer Website zu ändern. Das Schöne daran ist, wenn Sie möchten, könnten
Sie diesen Snippet-Auswahlblock zu Ihrer Flex-Seite zu Ihrer Serviceseite zu einer zukünftigen
gebloggten Seite von Ihnen hinzufügen . Und wenn du es würdest, weiß
ich nicht, versehentlich einen Tippfehler hier drin zu machen. Du müsstest nicht auf vier verschiedenen Seiten wechseln. Du könntest hier buchstäblich reingehen. Ändern Sie es einmal, und es wird es auf Ihrer gesamten Website für Sie ändern. Und da haben wir es. Wir verwenden jetzt ein Wag Tail Stream-Feld, um Jangle Modelldaten auszuwählen. Das ist ziemlich cooles Zeug.
27. Table: Werfen wir einen Blick auf tabellenbasierte Stream-Felder. Jetzt. Wenn Sie von einer Front-End-Art Entwicklerrolle kommen, werden
Sie denken, warum sollten wir jemals Tabellen verwenden? Tische sind veraltet. Tische sind das Schlimmste, was je erfunden wurde. Es gibt buchstäblich nichts Schlimmeres als einen Tisch, wenn es um das Internet geht. Und während die meiste Zeit würde ich Ihnen zustimmen, gibt es einige Fälle, in denen Sie die Tabelle verwenden müssen. Manchmal will man nur einen Tisch. Ich weiß es nicht. Es gibt Gründe dafür. Und ah, wir werden das in diesem Kurs abdecken. Also zuerst müssen wir diese aktivieren, und ich werde eigentlich nur auf die Docks verweisen, weil ich das nicht zu oft mache. Also erinnere ich mich nicht an den Kopf,
was auch großartig ist, weil es Ihnen zeigen kann, dass sogar Leute im Kernteam
die Docks referenzieren . Also habe ich das eigentlich schon oben. Ah, hier ist die Tischsperre und wird so etwas schaffen. Wir werden in ein bisschen darauf eingehen. Ah, das größte, was wir tun müssen,
ist
, , nehmen Sie die Wartezeit bis Vertrag Tabelle unterstrichen Block App und aktivieren Sie es. Also lasst uns unsere Basis für Basis öffnen, basierend auf Kuchen und werfen das da rein. Und ich habe das mit den anderen Verträgen zusammengefasst. Und dann können wir das jetzt schließen, um dieses etwas vorzeigbar aussehen zu lassen, damit der Code nicht nur wie ein riesiges Chaos aussieht. Ich werde irgendwie einen Tabellenblock in einem Kreisverkehr hinzufügen. Aber die Abkürzung, die wir im letzten Video genommen haben, können Sie absolut auch verwenden. Und wenn Sie sich nicht erinnern, was die Verknüpfung war, jeden Fall das Video auf dem Snippet Testimonial Block, weil wir ein Snippet hinzugefügt haben ohne etwas in unserem Block zu tun. Hör auf, ich Also, was ich hier tun werde, ist, dass ich einen Import machen muss. Eigentlich, die 1. 1 hier von der Wartezeit bis zur Vertragstabelle, Block Punktblöcke importieren Tabellenblock. Okay, das ist, werfen Sie das oben auf unserer Seite und gehen Sie den ganzen Weg zurück nach unten. Ich werde einen Kurs nehmen. Wie wollen wir das nennen? Ein Preisblock, Vielleicht ein Preis-Tabellenblock, nehme
ich an. Nehmen wir an, es gibt einen Tabellenblock hier, in dem ich weiß nicht,
Preis-Tabellenblock promoviert wird. Ich weiß nicht, ob Sie einen Preis-Tabellenblock verwenden oder nicht. Aber
hey, hey, weißt
du was? Lassen Sie uns sowieso eins hinzufügen. Das ist bei einer Klasse Meta-Vorlage ist gleich. Also wissen wir, welche Vorlage für Sie Preis-Tabelle Block dot html Und ich werde das eigentlich nur für den Moment
deaktivieren. Das Label wird
wohl eine Preistabelle sein , denn so nennen wir es. Icahn wird eine Tabelle Tabelle sein und Hilfetext wird sein. Sie waren Preistabellen sollten immer vier Spalten oder andere Ratschläge wie diese haben. Also nein, wir können das packen. Gehen Sie zu unseren Hausmodellen, die Kuchen, indem Sie diese Ursache, die Sie nicht sehen können, dass. Ich zeige mit meinen Augen, aber Preis-Tabellenblock und wir werden es zu unserer
Startseite Preistabelle hinzufügen . Sicher, und lassen Sie uns Block Start Preis-Tabelle Block hinzufügen und das ist es Checker Terminal. Es gibt keine Beschwerden. Das ist eine gute Nachricht, und das ist Editor-Homepage Jetzt wollen wir wahrscheinlich nicht Preisblock auf unserer Startseite Preis-Tabelle, aber sollten wir jemals wollten, könnten
wir es dort setzen. Wir könnten es auch auf jede andere Seite setzen, was wir in einem späteren Video machen werden. Also habe ich gerade unsere Tabelle ausgewählt, und standardmäßig sind wir noch der Roa-Header ist die Spaltenüberschrift. Also, wie, sollten diese mutig sein? Und sollten diese mutig sein? Und die Tabellenbeschriftung ist vor allem für Bildschirmlesegeräte. Es hilft Screenreader mit Barrierefreiheit, so dass Menschen, die es schwer haben, zu sehen was auf Ihrer Website ist, verstehen, worum es in der Tabelle geht. Es gibt diesen Geräten nur ein wenig mehr Kontext. Es ist wirklich hilfreich. Also lassen Sie uns sagen, Rakete Paket Preistabelle. So werden wir das nennen. Und ich möchte, dass die erste Reihe hier ein Header ist. Das sollte es also. Hoffentlich werden
die Leute, die Leute, wenn es nicht ist, es mutig machen. Und wir werden ein Standard-Standardpaket, ein
Standardpaket und ein Premium-Paket haben . Wir haben Raketen Reinigung Standardpaket wird ein Kontrollkästchen haben. Lassen Sie uns voran und fügen Sie ein Kontrollkästchen hinzu. Der Kerl da und kommt auch mit Premium. Aber was sonst? Rakete Reinigung Rakete Glänzende ist nur ein Premium-Paket. Oh, nein, ich bin draußen erstanden. Okay, klicken Sie mit der
rechten Maustaste Zeile unter Raketenbetankung einfügen. Wenn Sie unser Premium-Paket gut bekommen, tanken Sie
sogar Ihre Rakete für Sie. Ah, antworte. Eine weitere Reihe unter Raketenmalerei. Wir werden Ihre Rakete neu streichen, falls sie beim Eintritt in die Atmosphäre etwas Farbe verloren hat . Das ist gut genug für den Moment. Lassen Sie uns voran und veröffentlichen diese Klick-Ansicht Leben geht den ganzen Weg nach unten und wir können sehen, dass dies eine Tabelle von Arten ist. Und sicher genug, im Quellcode, ist
es in der Tat, eine Tabelle. Nun, was wir tun müssen, ist, dass wir zurückgehen müssen, aktivieren Sie unsere Vorlage. , Das Problem dabei ist,dass wir nicht wissen, woher wir diesen Quellcode bekommen sollen. Also, was werden wir vielleicht in dieser Vorlage einfügen? Nun, wir haben wirklich nur einen Weg, dies zu tun. Wir müssen aus dem Quellcode zu diesem Code gelangen. Also werde ich mit der rechten Maustaste auf meine Tabelle blockieren, gehen Sie zur Definition. Und ich werde hier reinhauen, wo ist die Vorlage? Es muss irgendwo hier drin sein. Da ist es. Ganz unten. Es setzt bereits einen Template-Tabellenblock, Blöcke Tabelle Punkt html. Nun, kann ich das hier öffnen. Ich kann das hier nicht öffnen, weil ich nicht so einen schnellen kleinen Sprung habe. Also hier ist, was ich werde dio Hub dot com Schrägstrich Weg sagen Schrägstrich wag Schwanz und ich werde für Tabelle Block Blöcke Tabelle dot html suchen. Also geht es einfach hier tabo dot html Wenn Sie dieses Repository durchsuchen und das sieht richtig aus, warten Sie bis Con Trib Tabellenblock. Wir haben diese Vorlagen importiert. Tabellenblock, Blöcke Tabelle Punkt HTM eigenen. Da ist es. Und hier ist der Quellcode, den wir verwenden können. Also, was ich tun werde, ist, diese ganze Sache in meine neue Vorlage zu kopieren. Wir können dieses in meine neuen Vorlagen namens Pricing Table Block schließen. Ich habe das
jedoch noch nicht erstellt , also lassen Sie uns das im Streams-Ordner erstellen. Lassen Sie uns loben Tabellenblock dot html und werfen Sie das dort hinein. Wir könnten sogar einen falschen kleinen Titel haben. Nur wir wissen, dass dies benutzerdefinierte Auffrischungsseite ist. Sicher genug, das ist Brauch. Nun, zu diesem Zeitpunkt können
Sie das durchgehen und Sie können sagen, dass der Tischkopf tatsächlich sollte, habe ich kein Minimum mit 300 Pixeln oder so etwas wissen. Sie können auch die Tabellenklasse angeben. Sie sind die Tabellenelemente, eine Tabellenklasse, reaktionsschnell. Spielen Sie einfach Block-Dinge wie diese und Sie können dies anpassen, um genau das zu sein, was Sie brauchen,
um es zu sein. Jetzt werde ich nur kopieren, was ich für diesen gemacht habe. Es gibt nicht wirklich eine Menge Anpassungen in diesem. Um ehrlich zu sein, ich habe das mit Bootstrap-Klassen wirklich ein wenig schöner aussehen lassen, so dass Sie sehen können, dass Ah, meine Codes ein bisschen anders. Ich habe tatsächlich mindestens mit 300 Pixeln für die erste Spalte getan und für jeden Aufruf für jede andere Spalte gibt es eine Mindestbreite von 170 Pixeln. jetzt Lassen Sie unsjetztfortfahren und diese Seite aktualisieren und sehen, was wir bekommen. Wir können hier unten sehen. Ah, ich habe hier wirklich etwas Interessantes gemacht, wo ich eigentlich die Preisgestaltung unten will, aber das ist vielleicht nicht das, was du willst. Also werde ich danach suchen. Und ich weiß nur zufällig, dass ich das hier hinzugefügt habe, ist Footer. Das will ich nicht. Lasst uns es loswerden. Das versucht nur, diese Spalte in dieser Spalte ganz unten fett zu machen. Das wollen wir nicht. Das sieht besser aus. Und jetzt können wir hier tatsächlich in den Responsive-Modus gehen. Wo ist das, was ich da habe? Es ist Responsive-Modus aufgrund zu tun, das zu tun. Eine Karte. Wir haben hier einen Tisch, der den ganzen Weg hindurchgeht. Schauen Sie sich die reaktionsschnelle Tabelle an. Nun, das nächste, was zu beachten ist, ist, dass wir benutzerdefinierte Einstellungen hinzufügen können. Also haben wir eine Standardkonfiguration, aber wir können einige zusätzliche Sachen hinzufügen. Wir können den Standardwert hier ändern, wenn wir Teoh wollten. Also minimaler Ersatz. Rose, wie vielen Reihen fängst du an? Wie viele Spalten beginnen Sie? Mit solchen Dingen. Ich werde nicht unbedingt etwas Brauch anwenden, aber ich werde Ihnen zeigen, wie das geht. Ich hole das alles von den Docks. Und wo bin ich? Auf der Startseite. Ich werde den Tisch übergeben wollen. Optionen sind jetzt gleich neuen Tabellenoptionen. Neue Tabellenoptionen sind noch nicht vorhanden. Wir werden diese Variable in einem Moment existieren lassen. Etwas, um hier nach oben zu blättern, erstellen Sie eine neue namens Neue Tabellenoptionen ist gleich, und es ist wirklich nur ein Wörterbuch. Die minimale Ersatz-Rosa Null. Ich weiß es nicht. Rose zu starten, werden vier Startspalten sein, die vorher gehen, also anstelle von drei mal drei, wird ah,
vier mal vier Spaltenüberschriften haben . Ja, wir haben Spaltenüberschriften, Zeilenüberschriften. Eigentlich ist
es auch. Spaltenüberschriften. False, aber Zeilenüberschriften, True Kontextmenü. Wir können einen Haufen von diesem Zeug auch hier ändern. Editor-Text. Das ist das, was wir wollen. Ich werde Angst vor der Sprache haben. Die Höhe, Renderer. Hier sind allerlei Sachen drin. Wir würden tatsächlich eine ganze Weile in diesem Video zusammen sein, wenn wir alle
verschiedenen Optionen durchlaufen würden. Aber auf jeden Fall überprüfen Sie die Docks und auch sehen Sie sich die ich denke, es heißt Hansen Table . Ja, Hansen Tisch 6.2. Hier gibt es verschiedene Einstellungen, die Sie auch in der Dokumentation auschecken können, aber lassen Sie uns weiter gehen und sehen, wie meine neuen Einstellungen aussehen, also werden wir hier nicht sehen, da diese Tabelle bereits festgelegt ist. Aber lassen Sie uns voran und fügen Sie eine neue Preistabelle hinzu. Sieh dir das an. Wir haben ein vier mal vier Gitter in einem drei mal drei Gitter. Es gibt also an diesem Wochenende einige Anpassungsfähigkeiten. Dio schwächen. Wirklich schön daran ist, wenn Sie einen Kunden haben, wer einfach Dinge in einem Tisch
anzeigen möchte wer einfach Dinge in einem Tisch
anzeigen möchte. Aber es ist bereits in einer Tabellenkalkulation, die Sie einfach kopieren können. Wie von Google Sheets, glaube
ich. Funktioniert ziemlich gut. Sie könnten einfach alle Zellen kopieren und buchstäblich einfach dort einfügen. Und sie funktionieren einfach wirklich nett. Aber ich werde das löschen, und ich werde die Seite speichern und wir werden mit benutzerdefinierten Tabellen fertig sein. So machen wir Tabellen und arbeiten mit der Änderung der Standardtabellen-Optionen.
28. RichText StreamField: Fügen wir nun unser erstes Stream-Feld zu unserer Flex-Seite hinzu. Schließlich haben
wir all diese Stream-Felder zu ihrer Homepage hinzugefügt, und wir machen es sehr flexibel, was schön ist. Aber es ist nicht wirklich der Zweck der Homepage Zweck der Flex Pages, super
flexibel zu sein . Also lassen Sie uns einfach voran,
schließen Sie unseren Code hier und gehen Sie zu Flex-Modellen dot pie und wir können sehen Yeah, es gibt nichts hier, kein einzelnes benutzerdefiniertes Feld. Nun, wenn ich meinen Bildschirm hier und hier drüben aufteile, gehe ich zu Hause Models Dot Pie, wir können sehen, oh, Suche nach Sachen. Lassen Sie uns das loswerden. Und wir wollen im Grunde von unserer Homepage, diesen ganzen Körperteil, damit wir das buchstäblich einfach kopieren können. Oder wenn Sie die Praxis wollen, können
Sie es von Hand schreiben. Das ist total cool. Es ist wahrscheinlich ein besserer Weg, es zu tun. Und so jetzt sind wir Flex Page hat dieser Körper ist gleich Stream felded, haben Titelkarten, Bild und Text genannt die Aktion, ein Testimonial Snippet, Auswahlblock und eine Preistabelle. Nun, das ist großartig, aber die Leiche wird überhaupt nicht auftauchen. Wir brauchen eigentlich die Paneele. Die Paneele sind wichtig. Diese Content-Panels ermöglichen es uns tatsächlich, das Körperfeld freizulegen. Denn wieder, Wag Tail und Django, machen
sie keine Annahmen darüber, welche Art von Daten wir tatsächlich für unseren oder zwei
Kunden zugänglich haben wollen . Die Personen des Inhaltseintrags. Also lassen Sie uns Content-Panels tun ist gleich Content-Panels. Plus, und dann wollen wir ein Stream-Feld-Panel und an ihrem Körper hinzufügen. Nun, wenn wir diese Seite speichern und wir Yep, sicher genug, überprüfen
wir unser Terminal. Es wird sagen, dass Stream Field nicht definiert ist. Grundsätzlich sagt
diese Datei: Was ist ein Stream-Feld? Also gehen wir hier hoch und wir tun von Rightto-Punktkernpunktfeldern importieren ein Streamfeld, und das ist auch von Quito Dot Admin Dot Edit-Handlern ein Stream-Feldfeld importieren. Lass uns voran gehen und das speichern. Blöcke sind nicht definiert. Nun, das ergibt Sinn. Wir haben hier alle Arten von Blöcken. Wir benutzen unseren eigenen Brauch. Blöcke verwendeten auch einen Snippet-Auswahlblock, daher müssen wir diese auch importieren. Das ist Import unseres Blocks, also ist es aus Streams, Import Blöcke und Lassen Sie uns auch das dumme Auswahlfeld aus Art und Weise Tail Dot Snippets
Punktblöcke importieren Import Snippet, Auswahlblock importieren. Was fehlt uns sonst noch? Neue Tabellenoptionen sind nicht definiert, da sich neue Tabellenoptionen auf der Homepage befinden. Wir könnten das auch importieren, wenn wir es wollten. Wir könnten von home dot mottoes neue Tabellenoptionen importieren. Und da gehen wir. Nun, wenn wir tatsächlich hineingehen, bearbeitet eine dieser Seiten. Sicher genug. Ja, wir haben die Luft gesehen. Wir werden es wieder sehen, wie erwartet. Wait Till sucht jetzt unser Körperfeld, all diese Stream-Felder und existiert nicht. Jetzt werde ich meinen Server abbrechen und Migrationen vornehmen. Aber ich werde es nur auf einer bestimmten Anwendung ausführen. Also werde ich Python erledigen. Ich mache Migrationen. Und es ist die Flex-App, an der ich arbeite. Hadfield Körper Flex Seite Das sieht gut aus. Python hat einen Tortenlaufserver wieder verwaltet und wenn wir aktualisieren, wird
das verschwinden. Äh, nein. Wir haben Titel Standardkarten, Bild und Steuer genannt Aktion Preis-Tabelle. Und all diese funktionieren genau so, wie wir es auf der Homepage eingerichtet haben. So sind
wir in nur wenigen Minuten in der Lage, unsere Flex-Seite vollständig anzupassen, und es wird einfach funktionieren. Wir haben die Arbeit einmal auf unserem Hause Schrägmodelle a que unsere Homepage hier haben wir die Arbeit
einmal gemacht . Warum sollten wir es immer wieder tun wollen? Und das ist genau das, was wir hier tun, ist, dass wir dazu neigen, zu arbeiten, sobald wir diese Arbeit wieder
nutzen werden. Nun, das ist cool, aber wir wollen Rich Text hinzufügen. Lassen Sie uns also voran gehen und fügen Sie hier einige benutzerdefinierte Rich-Text hinzu. Wir könnten das loswerden und ich werde wieder größer machen. An dieser Stelle kann
Rich-Text auf zwei verschiedene Arten importiert werden, und ich zeige Ihnen beide Möglichkeiten. Der erste Weg ist ein sehr, sehr einfacher Weg. Wenn Sie nur Rich Text verwenden und Sie nicht wie,
ein spezielles Titelfeld oder wie Textausrichtungsoptionen oder etwas Custom benötigen und Sie nur wirklich einen Whiz e Perücke Editor
wollen, ist
dieser erste Weg definitiv der Weg zu gehen. Also werden wir von Wag Tail Dot Core Importblöcke tun, Aber wir haben auch Block, also möchten Sie einen von diesen umbenennen. Es spielt keine Rolle, welche wir umbenennen, solange wir ihn konsequent umbenennen. Also, wie wenn wir unsere Blöcke umbenennen, müssen
wir diesen und den einen und den einen und den einen oder einen einfacheren Weg umbenennen, weil es weniger von diesen schwächen die gewackelte l ein umbenennen. Also wag Tail Blocks ist das, was ich das nennen werde. Importieren Sie also auch Blöcke. Sagen Sie Blöcke, wir können das auch auf separate Zeilen setzen, um das,weißt
du,
ein wenig schöner zu machen weißt
du, . Schauen wir uns an und fügen Sie Rich Steuer hinzu. Nur ein Standard-Rich-Text-Feld. Wir machen ein neues Stream-Feld. Es ist der erste Wert wird Rich Text wieder sein. Es muss kein Rich-Text sein. Genau das werde ich es nennen. Und jetzt werde ich diesem einen Rich-Text-Block geben. Speichern Sie das und lassen Sie uns voran und aktualisieren Sie diese Seite und wir werden sehen, dass ich jetzt eine
Option für eine komplette mit der Perücke haben . Sieh dir das an. Es kommt mit fett kursiv. H zwei h drei h vier geordnete Liste eine Nord A-Liste horizontale Regeln. Sie können sogar Videos einbetten, die Sie so ziemlich alles verknüpfen können, einen internen Link, externen Link, einen E-Mail-Link, Telefonlink oder einen Anker. Länger Ankerlink ist neu zu 2.7 Dokumenten, und Sie können sogar ein Bild hinzufügen. Wenn du es wolltest, würde
ich sagen, das hier wird nach links ausgerichtet sein. Nun, jetzt, das ist wirklich, wirklich cool, weil ich sagen kann, dass dies ein H drei in eine H drei setzen horizontale Regel hier hinein und ich kann das sagen, aber keines ihrer Stream-Felder wird auftauchen. Und wieder, das heißt, ich habe das vergessen. Es ist schon eine Weile her, seit wir daran gearbeitet haben. Also öffnet es unsere Homepage und erinnert sich an dieses Ding. Ja, wir brauchen nur diesen eso, den ich buchstäblich kopieren werde. Öffne meine Flex-Seite, komm her und füge sie ein. Und so alles, was wir sagen, ist in der basierend auf Tht Mail, es gibt einen Block namens Inhalt. Was immer da drin ist, überschreiben
wir es. Lassen Sie uns jetzt unsere Stream-Felder in das injizieren. Dies wird funktionieren,
nicht so, wie Sie es erwarten würden, weil Include-Block nicht existiert. Also müssen wir Wag Tail Core-Tags laden. Lassen Sie uns unsere Seite aktualisieren. Blockinhalte werden mehr als einmal angezeigt. Ja, denn das ist kein Banner. Aus irgendeinem Grund dachte
ich, das wäre ein Banner. Lasst uns das loswerden. Lassen Sie uns das loswerden. Wir können nur einen Blockinhalt pro Seite haben. Wie sind Sieh dir das an. Wir haben hier einen reichen Texaner. Dies wird als und h drei angezeigt. Sicher genug, da ist es. Dies ist ein regelmäßiger Absatz. Sicher genug, da ist es. Aber was, wenn wir dies in eine eigene Vorlage einfügen wollten? Denn im Moment passt
das nicht wirklich zu dem Rest von dem, was wir bauen. Also lasst uns weitermachen. Und lassen Sie uns sagen, dass seine eigene Template-Vorlage zu verwenden ist gleich Streams. Und nennen wir dies einen einfachen, Rich-Text-Block. Und es wird einfach genannt werden, denn schließlich werden wir tatsächlich begrenzen, welche Funktionen Sie hier hinzufügen können. Also werden wir die Titel loswerden, weil es bereits einen Titel gibt. Wir werden ein paar andere Sachen damit machen, jetzt, wo die Vorlage nicht existiert. Lassen Sie uns es so einfach existieren. Rich-Text-Block dot html und das wird in diesen Streams-Ordner gehen. Und so habe ich hier gerade etwas HTML geschrieben. Und wenn wir diese Seite reichen Detektoren überprüfen, wird
der Rich-Text hier gehen. Aber was machen wir hier? Nun, gehen
wir voran und setzen uns selbst. Sicher genug, wir könnten das tun. Wir haben es schon früher getan, das ist ziemlich großartig. Gehen wir weiter und bearbeiten Sie das noch einmal und lassen Sie uns einen Link da rein, nur um dieses Haus wirklich zu fahren. Lasst uns einfach einen Link schnappen und Teoh verknüpfen. Die Über uns Seite spielt mir keine Rolle. Es ist nur Beispielinhalte und wir wollen nur, dass dieser Link angezeigt wird. Und sicher genug, unser Link erscheint wie erwartet. , Was ist,wenn ich während ich das bearbeite,
was ist, wenn ich keine Bilder hier drin haben möchte? Was ist, wenn ich nicht möchte, dass Leute mit Dokumenten verlinken und ich nicht will, dass h 23 oder vier da drin sind? Nun, mit einem Rich-Text-Block haben
wir dieses coole kleine Keyword-Argument namens Features, und wir können sagen, welche Funktionen wir wollen. Also haben wir fett kursiv, also lasst uns fett metallic Oh eingeben, und ich dachte nur an einen guten Witz, den ich total hier reinstelle. Meine Lieblingsschriftart als Schauspieler. Kursiv kühner Sieg. Ha! Ok. Ah, wir wollen keine 23 oder vier, aber wir wollen beide Listen. Also lasst uns weitermachen und die Liste hier reinlegen. Sogar geordnete Liste. Sogar eine Nordenliste. Ich will die horizontale Regel nicht. Werde das los. Ich will nichts anderes als Links. Also gehen wir weiter und setzen Link und lassen Sie uns Ihre Seite aktualisieren und lassen Sie uns sehen, dass sich diese Optionen hier oben
ändern. Und würden Sie sich diese mutige, kursiv geordnete Liste auf geordneter Liste und einen Link ansehen? Undweißt
du, weißt
du, der Zeilenumbruch, der immer mit einer geschäftigen Woche einhergeht, kann das nicht wirklich loswerden. Rückgängig machen und wiederholen. Und wenn es irgendwann irgendwann
denkst du, denkst du, Hey, Caleb, ich meine, das ist cool, dass du Features einschränken kannst, aber woher hast du die? Woher weißt du, fett oder kursiv zu setzen oder oh al oder du l oder Link oder so etwas
da drin ? Die Docks. Das ist meine „Das ist meine absolut nicht tolle Antwort. Ich war nur die Docks. Eso, wenn Sie in die Docks gehen und Sie nur auf die Anpassung der Wo sind wir? Hören Sie erweiterte Themen Customizing Wag Tail Anpassen der Bearbeitungsoberfläche. Sie können tatsächlich sehen, dass die Feature-IDs, die auf einer Standard-Waittil-Isolierung bereitgestellt werden, wie folgt lauten. H 12345 und sechs So können Sie tatsächlich H ein,
45 und sechs aktivieren . Fett kursiv. Oh gut ul horizontale Regel Link ein Dokument Link Bild und einbetten. Es gibt auch ein paar zusätzliche Bezeichner. Sie sind standardmäßig nicht aktiviert, aber Sie können sie in Ihrer Liste aktivieren, so dass wir auch Code hochgestellt Sub-Skript Strike und Block Quote einfügen können. Also, das ist Option Nummer eins. Option Nummer zwei ist, wenn Sie Rich Text in einem regulären Stream-Feld mit einer
anderen Option verwenden müssen. Gehen wir weiter und fügen Sie das hinzu, damit wir hier im Wesentlichen eine neue erstellen können. So Rich Text mit ich weiß nicht, dass Titel auf diesem. Geben Sie uns einen Link. Zwei Blöcke gemacht Rich-Text mit Schriftfeld, und dies ist derzeit nicht vorhanden. Aber wenn wir Streams Punktblöcke öffnen, können
wir es in dieser Klasse hinzufügen, was auch immer das genannt wurde, dass sehr lange Namen und Blöcke Punkt geschlagen Block, und wir können einen einfachen Titel hinzufügen, wie wir es zuvor getan haben. Titel ist Eagle zwei Blöcke Tut HR Block maximale Länge von vielleicht 50 oder so etwas. Und dann könnten wir den Text oder das Es heißt nicht Text. Was als Inhalt bezeichnet wird, ist gleich. Haben Blöcke einen Rich-Text-Block Rich-Text-Block, und dann könnten wir ihm auch Funktionen geben. Also lassen Sie uns unsere Seite hier eine kurze kleine Aktualisierung geben, die dieses für uns loswerden wird weil es nicht mehr verfügbar ist. Wir haben Rich-Text mit Titel. Geben Sie ihm einen Titel. Wir haben hier Rich Texan. Wir können diese auch einschränken Features ist gleich Wenn wir keine Funktionen wollen, lassen Sie uns einfach eine leere Liste geben. Schließlich geben
wir ihm eine kurze kleine Vorlage. Ihre Vorlage ist gleich Streams Schrägstrich Ich werde den einfachen Rich-Text-Block dot
html wiederverwenden , und ich werde das mit einem Titel fühlen. Alles hier drin, weil ich einen Titel brauche, die Hände durch ein warmes ipsum da drin und ich muss einen Entwurf
retten. So kann ich eine frischere Version dieser Seite bekommen. Wir können jetzt sehen, dass all dies deaktiviert wurde. Es sind buchstäblich nur Absätze an dieser Stelle. Absatz, Absatz, Absatz, Absatz veröffentlichen und lassen Sie uns die Seite aktualisieren. Jetzt werden wir etwas sehen, auf das wir noch nicht wirklich gestoßen sind. Wir sehen das Selbst als Wert mit all dem anderen Zeug darin. Jetzt ist der Grund, warum dies angezeigt wird, weil
wir in unserer Vorlage einfach sagen, dass selbst das gesamte Stream-Feld selbst zurückgeben würde, wenn wir stattdessen vielleicht einen Titel wollen. Also Selbstpunkt-Titel und wir wollen den Inhalt, Selbstzweifel, Inhalt und ich habe es nicht genannt Inhalt. Ich nannte es Kontext, weil das ein Tippfehler war. Aber ich nenne es hier nur Kontext, du weißt schon, geh mit. Also haben wir jetzt einen Kontext da drin. Nun, wenn Sie zu irgendeinem Zeitpunkt jemals Ihre Seite sehen, die HTML oder Sachen zeigt, die wie HTML aussieht, würden
Sie den Rich-Text-Filter darauf verwenden müssen, so dass Sie wayto core-Tags laden und Sie einfach dio pipe Rich-Text. Jetzt ist das schon entkommen und sieht total gut aus oder unentkommen eher. Aber manchmal, wenn Sie es auf diese Weise tun, können Sie tatsächlich sehen, wie, einen Link hier drin den tatsächlichen HTML-Link oder etwas, das ihm sehr ähnlich aussieht. Und Sie möchten, dass das HTML ist. Sie passen also an, um den Rich-Text-Filter zu verwenden, und das wird Ihr Problem lösen. Nein, ich werde nichts von diesem Zeug im Quellcode behalten. Ich werde das rückgängig machen. Schließen Sie es, und ich werde das loswerden. Und ich werde das loswerden, weil ich bei der ursprünglichen Art bleiben werde, wie wir es
gemacht haben. Und das sind zwei verschiedene Möglichkeiten, wie wir einen Rich-Text-Block zu unseren
Flex-Seiten-Stream-Feldern hinzufügen können .
29. Image: genau wie unsere letzte Lektion. Wir werden ein brandneues Stream-Feld direkt aus einer Wag-Tail-Komponente erstellen, ohne unseren eigenen Schlagblock zu
schreiben. Was ich damit meine, ist, wenn wir Flex-Modelle DuPuy aus den letzten paar Lektionen für
ungefähr die letzten paar Lektionen öffnen , haben wir einen Snippet-Auswahlblock direkt von der Wartezeit bis ohne unseren
Stream-Slash-Block-Stopp verwendet , Ich Datei in der letzten Lektion, wir haben unseren eigenen Rich-Text hinzugefügt. Wir haben ihm eine Vorlage gegeben und die Funktionen eingeschränkt und wir haben die Block-Stop-I-Datei
überhaupt nicht verwendet . Nun, wir haben einmal gemacht, und dann habe ich all diese Arbeit rückgängig gemacht, weil wir das nicht in diesem
Video behalten wollten . In dieser Lektion auf unserer Flex-Seite bin
ich hier auf unserer Flex-Seite. Wir werden eine einfache Bildauswahl hinzufügen, und dies wird ein größeres Bild sein. Also lassen Sie uns dieses große Bild nennen und wir werden einfach von Wag Tail Blocks sagen. Und wenn Sie nur Tuning sind und jetzt warten, bis Blöcke von gewickelten Elle Dekor
Importblöcke kommen und dann habe ich es umbenannt, um zu warten Tell Blöcke warten, ,
Bildauswahl, Block und hier werde ich dies ein geben wenig Hilfetexte, genau wie wir es normalerweise in einem regulären Stream-Feld tun würden. Gehen zu sagen, dieses Bild wird irgendwo um 1200 durch 7 75 beschädigt sein Und lassen Sie uns auch eine bestimmte Vorlage
angeben. Unsere Vorlage. Also lassen Sie uns dies in Streams große Bildblock dot html setzen. Jetzt, wenn ich zurück zu unserer über US Seite, Ich brach etwas hat keine Attribute, Bild, Schuhe oder Block. Und das war, weil ich ehrlich gesagt etwas zu schneller ging. Es ist nicht von Wag-Schwanzblöcken. Was habe ich mit dem gedacht? Bilder sind seine eigene Bestie in Wag Tail. Es kommt nicht von warten bis Blöcke Es kommt von wag tail dot Bilder di Blöcke importieren Bild Auswahlblock ziemlich genau die gleiche Sache, die Snippet Auswahlblock tut. Aber dieser ist ein abgebildeter Auswahlblock. Also lasst uns weitermachen. Speichern Sie, dass unser Terminal jetzt sehr zufrieden ist mit dem, was ich geschrieben habe Refresher Pidge und ich
habe einen großen Bildblock hier drin, so dass ich jedes Bild hier hinzufügen kann. Ich werde nur hinzufügen, dass eine veröffentlicht und sicher genug, Wenn ich eine Vorschau dieser Seite, erhalten
wir eine Vorlage. Besteht nicht. Fehler. Ich werde nicht mal nachsehen. Ich weiß, dass das passieren wird. Ich werde eine neue Datei in den Streams erstellen. Vorlagen. -Unterverzeichnis. Also rocketman Vorlagen, Streams. Neue Datei in hier genannt Large Image Blocked out. Html. Jetzt kann ich hier meine eigene benutzerdefinierte Formatvariante machen. Ich muss nicht zulassen, dass der Wag Schwanz alles kontrolliert. Ich kann an dieser Stelle tun, was ich will, aber das erste, was ich tun möchte, ist, dass ich die Wag Tail Images Tags laden möchte, weil ich in der Lage sein
möchte , das Bildvorlagen-Tag zu verwenden. Und das Bild selbst ist dieses ganze Objekt. Alles, was in den Kontext dieser Vorlage übergeben wird, ist das Stream-Feld selbst. Also zuvor haben wir Selbstpunktbild in einem gestoßenen Block gemacht, aber dieses Mal gibt es keinen gestoßenen Block. Es ist nur ein Bild, das wir machen werden. Bild Phil 1200 von 775 bei seinem Bild. Und dann kann ich einfach sagen, ich bin Gee, dass du Ah bist, ich bin g dot lt und ja, da. Ist das da? Ja, es sind Leute, die das Gefühl haben, dass falsch warten, bis das Bild plural ist. Da gehen wir. Und sieh dir das an. Es ist Ah, ziemlich großes Bild, nicht
wahr? Nun, das ist nicht ganz mit dem Rest unserer Website. Sieht so aus, als ob etwas ein bisschen da ist, also werde ich hier ein wenig Template hinzufügen. Und dann machen Caleb die schnelle Vorwärts-Sache wieder. In Ordnung? Also habe ich gerade hinzugefügt, dass da drin und zu tun, zu tun, zu tun. Da gehen wir. Das sieht ein bisschen besser aus. Das fühlt sich an, als würden die Dinge anstehen, oder? Oh, ja, das ist besser. Nun lassen Sie uns diese Seite tatsächlich wie eine Sache aussehen, wie eine tatsächlich bezahlte, wissen
Sie, Lasst uns einen Text haben. Also haben wir hier Rich-Text. Lass uns weiter gehen und etwas tiefer,
äh,
klassisch oder um über dem klassischen Lauren unten hinzufügen äh, , und das sieht nur ein wenig quirlig mit dem Bild aus. Lassen Sie uns voran und fügen Sie Marge für den Y-Zugang hinzu. Da gehen wir. Das sieht ziemlich gut aus. Also, wissen
Sie, grundlegende über uns Seite, und das ist, wie wir ein großes Bild Stream Feld direkt verwenden. Nun, wenn Sie aus dem vorherigen Video kommen und Sie sich fragen, wie wir es anders machen. Nun, wir haben tatsächlich schon einige Beispiele dafür. In unseren Blöcken oben ist ich Bildwähler irgendwo hier drin. Bild in Text, Blockbilder gleich Bild Auswahlblock, so können wir nur auf das Bild und Textblock Punkt HTML-Vorlage als Referenz für, wie es auf diese Weise zu tun. Andernfalls können
wir einfach die Bildschuhe verwenden oder direkt blockieren, und wir müssen uns keine Sorgen darüber machen, dass wir einen gestürzten Block kosten, um einen
Bildauswahlblock zu erhalten . Wir können es einfach direkt benutzen, was wirklich,
wirklich nett ist . Sie können auch dasselbe tun, mit dem wir das schon mal gesehen haben. Art von Blöcken Punkt hr Block. Sie können es mit Blöcken Punkt Textblock oder Block Stuff Seite Auswahlblock tun, und ich möchte Sie tatsächlich ermutigen, das auszuprobieren, ein Stream-Feld zu
erstellen und ich weiß nicht, nennen Sie es benutzerdefinierte Seite. Vielleicht nenn es nicht Seite selbst. Das ist ein Wort, das bereits im Vorlagenkontext verwendet wird. Sie könnten auf ein Problem damit stoßen, aber benutzerdefinierte Seite wäre kein Problem, und dann könnten Sie Blöcke verwenden, die ich denke, wäre Weg Zehenblock, Stunt-Seite, Auswahlblock. Und du könntest dich dann von dort aus weiterarbeiten. Also vielleicht geh weiter, gib dem eine Chance,
sieh mal, wie sich das herausstellt. Und das wird Ihnen eine ziemlich gute Vorstellung davon geben, wie Sie mit einem
geschlagenen Block ganz umgehen können , wenn Sie Ihre Streamfelder schön und einfach halten.
30. Benutzerdefinierte StreamField: Lassen Sie uns eine benutzerdefinierte Stream-Feldvalidierung hinzufügen, wenn es um unseren Link-Block geht, und ich werde das tatsächlich einfach hochziehen, wenn es um unseren Link-Block geht, den wir hier haben. Wir haben eine interne Seite und einen externen Link, und wir haben hier oben einen markanten Wert hinzugefügt. Der markierte Wert, um herauszufinden, welcher zuerst kommen soll und uns die UL-Eigenschaft
innerhalb unserer Vorlage geben soll. Also haben
wir im Grunde eine zusätzliche Logik auf unseren Link-Block angewendet. Da diese beiden Felder jedoch nicht erforderlich sind, können
sie beide leer sein und beide ausgewählt werden. Und so, für Ihre Inhalte Eintrag Menschen. Wenn ihnen zwei Optionen gegeben
werden, können sie eine interne Wartelseite mit einem Seitenauswahlblock auswählen. Oder sie können einen externen Link eingeben
, der wirklich jeder Link zu irgendwo anders im Internet ist. Sie wissen nicht wirklich, wer die ganze Zeit zuerst kommt. Sie können ihnen Hilfetext in beiden Feldern geben, und ja, das ist sehr hilfreich. Aber es ist noch hilfreicher, wenn Sie Congar ich sie programmatisch würde. Nun, was ich damit meine, ist, wenn wir unsere Homepage hinzufügen, sollte
es irgendwo einen Link geben. Sicher genug, es ist unser 1. 1 Wir haben einen Lincoln hier mit Link-Text Reinigen Sie Ihre Rakete jetzt interne Seite. Und es gibt keinen externen Link. Aber ich kann, wenn ich einen externen Link zur Verfügung stellen wollte. Warte bis Dot Io und das erlaubt mir, das zu retten. Es gibt jetzt keine Probleme damit. Das an sich ist das Problem, es gibt keine Fehler, denn wenn ich zurückkomme und tatsächlich Vorschau der Seite, reinigen Sie Ihre Rakete Jetzt können Sie unten links sehen, dass immer noch bringt mich auf die Reinigungsdienste Seite. Allerdings habe ich auch den Weg till dot io link dort hinzugefügt. Und wenn Sie mit Ihren Kunden arbeiten, möchten
Sie Inhaltseingabe die einfachste Sache für sie machen ehrlich, Aufrechterhaltung einer Website mit guten Inhalten kann ziemlich schwierig sein und so ist ein guter Weg, dieses Problem einfach
zu lösen indem wir ihnen eine Form von Fehlern geben und so werden wir ihnen Validierung geben. Nun, das erste, was wir tun wollen und ich werde versuchen, dies etwas zu tun, alles in einer Ansicht hier, Also werde ich von Django Dot Core Dot Ausnahmen Import Validierung Luft und ich
werde auch von Django Dot Core tun Nein, nicht DOC oder das war Gewohnheit Punktformen Punkt Sie Kills Import jemals Liste. Und wann immer dieser Link gespeichert wird, können
wir eine bestimmte Methode ausführen, die hier Clean genannt wird. Also können wir sagen, Death Clean wird sich selbst und einen Wert nehmen. Und sagen wir, es gibt derzeit keine Fehler. Dies wird ein Wörterbuch von Fehlern sein, aber derzeit gibt es keine. Und dann können wir etwas nach dem Vorbild sagen, wenn du weißt, was auch immer scheitert, wir wissen nicht, was auch immer ist. Wir werden das in einem Moment ändern. Wir können sehen, Fehler ist gleich, was auch immer der Feldname ist gleich Fehlerliste und dann Ihr Fehlertext hier. Und dann können wir sagen,
ob es tatsächlich Fehler im Wörterbuch gibt. Also, wenn es Elemente in Ihrem Wörterbuch gibt, können
wir eine Validierungsfehlervalidierung jemals in Ihrem Link auslösen und lassen Sie uns
einige Parameter übergeben . Der Param zehr wird die Fehler sein. Andernfalls, wenn es keine anderen Erben gibt, wird
das nicht ausgeführt und schwächt einfach super diesen sauberen Wert jetzt laufen, um schnell zu
übergehen , dass nur eine schnelle Zusammenfassung, wenn dies gespeichert wird, wenn ein Link gespeichert und dies könnte mehrmals passieren. Wenn Sie mehrere Streams haben,
Felder, die mehrere Links verwenden, wird
diese Clean-Funktion ausgeführt. Und dann sagen wir für diese spezielle Reinigung,
ein Zeichen Fehler, um ein leeres Wörterbuch zu sein. Und dann, wenn unsere Validierung bestanden oder fehlschlägt, je nachdem, was wir versuchen zu überprüfen, können
wir Fehler sagen. Was auch immer dieser Feldname ist, ist jetzt Teil einer Fehlerliste. Wir haben Luftliste und Validierung hier oben importiert. Dann sagen wir, Hey, wenn es Fehler gibt, weil wir hier mehrere if-Anweisungen tun können, wenn es Fehler gibt, Validierungsfehler ausgelöst werden oder ausgelöst werden, dann werden wir sagen, Wenn es Fehler gibt, erhöhen Sie eine Validierungsluft mit irgendeiner Art Text darin, und die Parameter würden sein, was auch immer dieses Fehlerwörterbuch sein wird. Andernfalls, wenn es keine Erben gibt, machen Sie
einfach Ihre normale Sache. Das ist es, was das bedeutet. Halten Sie einfach weiter, also lassen Sie uns voran und geben diesem ein kurzes kleines Beispiel? Wir können sagen, wenn wahr, der Feldname wird, sagen
wir, externer Link sein und der Fehlertext oder die jemals Liste wird kein wirklich Fehler sein, aber es erscheint trotzdem. Lass uns das retten. Und es gibt keinen Modulnamen Jango, der Form und das ist tatsächlich richtig. Es ist Django-Punkt bildet Plural. Das sieht besser aus. Okay, also sind wir auf unserer Seite. Wir haben einen externen Link und eine interne Inc Wir wissen, dass, egal was passiert, dies läuft. Und wir sagen, wenn es wahr ist, nun, wahr ist immer wahr. Das wird also ausgeführt. Wir werden dann externe Fehler zu unserem Wörterbuch hinzufügen. Es ist ein Airless. Dies wird dann auch wahr sein, und es wird eine Validierungsluft erhöhen. Also lasst uns weitermachen und unseren Entwurf speichern. Und sicher genug, diese Seite konnte aufgrund von Validierungsfehlern nicht gespeichert werden und überprüfen Sie dies. Keine echte Luft, aber es taucht sowieso auf. Aber Lincolns verwenden auch mehrere Orte dort. Es ist auch, und da ist es wieder und noch ein. Da ist es wieder, und ich weiß, dass es vier Validierungsfehler gibt, weil hier oben ein wenig vier sind. Das ist eigentlich kein sehr gutes Beispiel, weil Sie nicht jedes Mal eine Validierungsluft ausführen oder erhöhen möchten, wenn jemand eine Seite speichert, weil sie dann nie in der Lage sein werden, ihre Seite zu speichern. Lassen Sie uns also voran gehen und einige der Werte aus diesem ganzen Block erhalten, der gespeichert wird, damit wir sagen
können, dass die interne Seite der internen Seite Wert sein wird. Interne Seite nicht erhalten, und der externe Link wird der externe Link sein. Und so haben
wir an dieser Stelle zwei Variablen, die wir verwenden können. Wir können sagen, wenn Interne Seite und externen Link lassen Sie uns voran gehen und zwei Fehler, eine für interne Seite eins für externen Link. Und sagen wir, beide Felder können ihn nicht gefüllt werden. Bitte wählen oder geben Sie nur eine Option ein. So etwas. In Ordnung, ich werde das speichern und gehen wir weiter, einen Entwurf
retten. Wir könnten ebenso einfach eine Seite veröffentlichen, und diesmal haben wir nur zwei Validierungslüften. Dies ist derjenige, der hauptsächlich mit gearbeitet hat, weil es am oberen Rand der Seite am bequemsten ist zu betrachten, aber wir können sehen, dass beide Felder nicht ausgefüllt werden können. Bitte wählen oder geben Sie nur eine Option ein, und es steht für beide. Jetzt ist das fantastisch. Machen wir das Gegenteil. Lassen Sie uns Elliff tun, nicht interne Seite und nicht externen Link. Wir wollen anders. Es gibt und wir wollen, dass dieser Fehler etwas in Richtung von Ihnen sagt, genau wie mindestens einer von diesen. Also bitte wählen Sie eine Seite oder geben Sie eine Sie Earl für eine dieser Optionen. Das ist Checker Terminal. Leben sieht gut aus und ich werde das loswerden, und ich werde das loswerden, und wir werden dieses Mal eine andere Ära sehen. Also nur eine zeigen Sie, dass wir es veröffentlichen können, anstatt nur einen Entwurf zu speichern
Validierungsfehler zu erhalten . Sicher genug, hier ist es. Polizei. Wählen Sie eine Seite aus oder geben Sie eine AL ein. Für eine dieser Optionen werde
ich die über die US-Seite auswählen. Nein, ich weiß, dass hier noch eine ist, also schmeißt es mir noch eine Validierungsluft. Allerdings
ist dieser, vorbei an der über die USA, völlig vergangen. Das ist kein Problem. Wo suchen wir sonst? Wir haben auch einen hier drin gesagt. Es muss immer eine Verbindung geben. Wir werden das als leuchtende zu tun setzen. Wo ist die andere Validierungsluft? Ist es das? Nein. Aber weil es zwei gibt. Klicken wir auf „Veröffentlichen“. Unsere Seite wurde veröffentlicht. Sieh dir das an. Sie sind Seite hinter unseren eigenen Validierungen. Jetzt wissen wir, dass dies immer ein interner Link oder ein externer Link sein wird. Darüber hinaus haben
wir hier bereits zusätzliche Logik für unseren Link-Wert und
sagen, dass, wenn es eine interne Seite gibt, diese
verwenden oder wenn es einen externen Link gibt, diesen verwenden und es wird immer nur eine von diese. Es wird entweder das eine oder das andere geben, aber nie beides. Und schließlich
ein bisschen Aufräumung. Hier, Lassen Sie uns an den Anfang der Seite gehen. Kühle Bohnen. Stellen Sie die da oben. Das Leben sieht gut aus, und das ist, wie wir benutzerdefinierte Stream-Feldvalidierung hinzufügen
31. Seitenblätter: bis zu diesem Punkt haben
wir eine Reihe von verschiedenen Seiten erstellt, und wir haben tatsächlich ein bestimmtes Problem, das wir noch nicht wirklich angesprochen haben. unsere Website wächst, kann
sie wirklich beginnen, außer Kontrolle zu bekommen. Zum Beispiel können
wir eine untergeordnete Seite zu unserer Homepage namens Home hinzufügen. Warum sollten wir Homepages auf unserer Website? Wir haben eine spezielle Seite nur für die Homepage. Wahrscheinlich brauchen wir keine zweite Homepage. Es gibt einige Fälle, in denen Sie das wahrscheinlich wollen, aber in diesem Fall wir nicht auf unserer Homepage. Wir haben bereits eine Service-Angebotsseite, und wir können eine weitere Service-Angebotsseite erstellen. Wir wollen nur eins von denen, also ist das ein Problem unter unserer Route. Wenn Sie auf das kleine Symbol dort oben klicken, dass Globus und Sie sagen Untergeordnete Seite hinzufügen, können
wir jetzt sagen, dass jeder andere Seitentyp außer der Homepage, weil es bereits verfügbar ist . Aber wir können sagen, dass Service-Listing Seite, die Service-Seite oder die Flex verschiedene Seite kann auch ah, Homepage Seitentyp sein. Wir wollen das nicht, also müssen wir sie einschränken. Zum Glück gibt uns Wag Tail die Möglichkeit, das sehr leicht zu tun. Also lassen Sie uns voran gehen und beginnen, indem Sie die Route einschränken. Welche untergeordneten Seiten können Route jetzt haben? Wir haben keinen Zugriff auf die Stammseite selbst Das ist im Weg Tail-Paket. Aber wenn ich Home-Modelle dot pie öffne und ich die scheinbaren Seitentypen angebe, kann
ich dieser eine Liste von AP-Namen mit dem Modellnamen APP namens dot model, name, model name. Da gehen wir. Third Time ist ein Charme, und das wird sagen, dass die Homepage immer ein Elternteil von dem
App-Punkt-Modellnamen haben muss . Dies existiert nicht, aber wag Tail core dot Page existiert. Dies ist unsere Routenseite, so können wir diese speichern und lassen Sie uns hier unter unserer Homepage zurückgehen wenn wir klicken. Startseite „Untergeordnete Seite hinzufügen“ ist nicht mehr verfügbar. Kann Onley jemals unter unserer Routenseite leben? Es ist also immer noch hier, darf aber nirgendwo anders leben. Also, jetzt beschränken wir, wie unsere Websites erstellt wurden, so dass jede Website beginnt mit einer Stammseite. Dann haben wir eine Homepage und wir sagen, dass es keine andere Homepage geben kann oder Wenn wir auf unsere Seite
gehen , können
wir keine Homepage unter unserer über die USA Seite auflisten. Diese Option existierte früher. es nicht mehr, was wirklich schön ist. Also fangen wir an, etwas davon zu begrenzen. Gehen wir zurück zu einer Stammseite und lassen Sie uns diese anderen Optionen loswerden. Lassen Sie uns Flex Page Service loswerden, indem wir Page und die Service-Seite
auflisten, so dass keiner von ihnen unter der Routenseite leben kann. Jetzt. Wie würden wir dies tun, ist, wenn wir uns öffnen sind Flex-Modelle dot pie. Wir können die scheinbaren Seitentypen hier angeben, so lässt eine übergeordnete Seitentypen gleich sind, und dies ist nur eine Liste, so dass die Flex-Seite immer unter unserer Homepage leben kann. Das ist okay. haben wir schon aufgebaut. Das ist, wo unsere über Page derzeit lebt. Aber wir wollen auch Flex-Seiten Nesta vel unter anderen Flex-Seiten, so dass Sie erstellen und über uns und dann vielleicht eine Team-Seite und dann vielleicht eine spezielle Seite für jede Person in Ihrem Unternehmen. Also werden wir sagen, der APP-Name ist Flex. Das ist die aktuelle, in der wir sind wir jetzt und Flex-Seite. Also sagen wir wirklich nur übergeordnete Seitentypen. Du darfst deine eigenen Eltern sein. Klingt ein wenig seltsam, und die Homepage darf dein Elternteil sein. Sagen wir das, und ich gehe hier nur eine Seite zurück. Sicher genug, dies wird mir erlauben, hier eine Flex-Seite zu erstellen. Das ist in Ordnung. Ich werde zur Wurzel gehen. Ich darf keine Flex-Seite mehr erstellen. Das ist also perfekt. Und stellen Sie sicher, dass das funktioniert. Lassen Sie uns gehen und schauen Sie sich unsere Flex-Seite hier an. Lassen Sie uns eine untergeordnete Seite hinzufügen, und sicher, sie immer noch da sein darf. Wir wollen schließlich die anderen beiden loswerden, und es gibt eine zweite Seiteneigenschaft, die wir zuweisen können, um das loszuwerden oder die anderen beiden loszuwerden. Jetzt haben wir noch zwei weitere auf einer Route, die wir nicht wollen. Wir haben nicht die Service-Listing-Seite oder die Service-Seite, also lassen Sie uns gehen und öffnen Service-Modelle hoch und ihre Service-Listing-Seite. Das ist, was der übergeordnete Seitentyp dieser nur darunter leben kann. Die Startseite des Startpunkts wieder. Das ist der APP-Name, und das ist der Modellname. Und wenn wir hier nach unten zu unserer Service-Seite scrollen, könnten
wir dasselbe tun Elternseitentyp. Aber dieses Mal möchten wir, dass der übergeordnete Seitentyp immer die Angebotsseite ist. So müssen Serviceseiten
immer, immer, immer,
immer, immer unter unserer Service-Listing-Seite hier leben. Also sagen wir Dienste Punkt Service Listing Seite Und wieder, das ist nur die App, die wir gerade darin sind und das Modell, das ist nur dieses hier oben. Und ich habe tatsächlich ein bisschen eine Art von hier gemacht. Es ist kein übergeordneter Seitentyp. Es handelt sich um übergeordnete Seitentypen, da es sich um eine Liste handelt, die mehrere sein kann. Also, wenn du auf deinem Bildschirm schreien und sagst:
Hey, Hey, Caleb, hast du einen Tippfehler gemacht. Ich habe dort definitiv einen Tippfehler gemacht, also gehe ich einfach zurück zur Route auf einer Kinderseite, und es sagt automatisch:
Hey, Hey, ich habe nur einen Seitentyp, der unter der Route leben darf. Es ist eine Homepage, also bringt es mich automatisch hierher. Ordnung, also gibt es einen anderen Weg, das zu tun. Wir haben tatsächlich alle unsere Probleme mit dieser einen Methode gelöst. Die andere Methode ist die Unterseitentypen. Wenn wir also auf untergeordnete Seite zu unserer Service-Seite hinzufügen klicken, gehen
wir zurück zu unserer Service-Listing-Seite hier. Und lasst uns das einfach aussagen und ich werde nur zurückschlagen, weil ich all
diese verschiedenen Optionen sehen will . Also bin ich auf meiner Homepage. Ich gehe hier, ich habe eine Service-Listing-Seite, die der Seitentyp hier ist, und ich kann eine untergeordnete Seite hinzufügen, und ich kann eine Service-Listing-Seite oder eine Service-Seite hinzufügen. Jetzt lösen wir dieses Problem, indem wir übergeordnete Seitentyp hinzufügen, ist die Homepage, Aber wir haben das auskommentiert. Also jetzt sagen wir, dass die Service-Listing-Seite auch unter Service leben kann. Listening Pitch kann auch unter einer Service-Listing-Seite leben. Das wollen wir überhaupt nicht. Die andere Methode, die wir hier tun können, ist, dass wir sagen können, dass Unterseitentypen gleich sind, und wir sagen, welche Seitentypen wir festlegen können? Und wir sagen, welche Seitentypen, welche untergeordneten Seiten dürfen unter unserer Service-Listing-Seite leben, und dafür werden wir nur Dienste dot-Service-Seite sagen, und dies wird jede andere Option außer der, die wir hier angeben. Dies ist auch eine Liste. Wenn wir wollten, dass dies irgendwo anders lebt oder anderswo eine untergeordnete Seite haben, könnten
wir das auch festlegen. Solange es nicht mit den übergeordneten Seitentypen in Konflikt steht, die jetzt festgelegt sind, ist dies in unserer aktuellen Situation nicht anwendbar. Also werde ich das einfach retten. Und wenn ich diese Seite aktualisiere, wird
Service Listing Page nicht da sein. Und es wird automatisch davon ausgehen, dass ich versuche, eine Service-Seite einfach so zu erstellen und schauen wir uns unseren Baum an. Wir haben hier eine Service-Seite und wir können eine weitere Service-Seite hinzufügen. Oh, würdest du dir das ansehen? Eigentlich können
wir eine Service-Listing-Seite zu unserer Service-Seite hinzufügen. Wir können Route Startseite Service Listing Service,
Detail, Service, Auflistung, Service , Service, Detail, Service-Auflistung, Service-Detail gehen. Das wollen wir auch nicht. Also lasst uns zuerst,
wir Kanonen kommentieren das, was dieses Problem lösen wird. Aber in ihrem Service-Seitenmodell können
wir auch sagen, dass einige Seitentypen gleich sind, und sagen wir, wir wollen überhaupt keine Unterseitentypen. Wir werden hier nur eine leere Liste zur Verfügung stellen. Das war's. Gehen Sie weiter und speichern Sie das. Gehen Sie eine Seite zurück. Und jetzt können wir nicht einmal eine untergeordnete Seite unter unseren Serviceseiten erstellen. Das ist perfekt. Das ist, wo ich mich zurückziehe, wird enden. Also haben wir eine Homepage. Das ist das hier. Wir haben eine Angebotsseite. Das ist eine, die wir gerade hören. Alle Kinderseiten auf der Erde, Kinderseiten und dann haben wir die Kinderseiten selbst. Das ist die Service-Detailseite der Service-Seite, und sie kann nicht weiter gehen. Also haben wir effektiv gesagt, das ist so weit, wie dies diesen Weg gehen kann. So haben wir jetzt eine richtige Struktur eingerichtet, wo unsere Seiten leben können. Welche Seiten können ihre Eltern sein? Welche Seiten können ihre Kinder sein? Aber wir haben ein anderes Problem. Nehmen wir an, unsere Website auf Lee sollte jemals eine Service-Listing-Seite haben und wir sagen und
Kinderseite zu unserer Homepage. Wir können so viele Flex-Seiten haben, wie wir wollen. Das ist es, was wir wollen. Wir möchten so viele wie der Kunde des Kunden oder der Inhaltseingabe Personen erstellen möchten, aber wir wollen keine Listing-Seiten bedienen. Das ist verwirrend für die Inhaltseingabe. Also lasst uns versuchen, diesen loszuwerden. Jetzt. Wir tun dies auf etwas andere Weise, da wir bereits die übergeordneten Seitentypen angegeben haben. Wir haben bereits die Seitentypen angegeben, die die untergeordneten Seiten sein können. Wir werden einfach sagen, Max Count ist eins. Es kann immer nur eine Service-Listing-Seite auf dieser Website geben. Also, jetzt werde ich auf eine untergeordnete Seite zurückgehen, und dies setzt automatisch voraus, dass ich eine Flexor Sonstiges Seite erstellen werde weil es keine anderen Optionen gibt, die ich nicht mehr für Service-Listing-Seiten erstellen kann. Es gibt noch eine Sache, die wir hier auf unserer Route tun müssen. Wir können eine weitere Homepage erstellen, wenn wir wollten. Ich denke, wir sollten das einschränken, weil dies keine Multi-Site-Installation von Wag Tail ist. Dies ist ein einzelner Standort Isolierung von gewackelt, auch mit Wag Schwanz. In Django haben
Sie mehrere Websites, die von einer Installation von Django laufen oder warten, bis ,
aber in diesem Fall möchte
ich nur immer eine Homepage unter der Route erstellen können. Also lassen Sie uns voran gehen und öffnen Heimmodelle dot pie, und wir werden sagen, Max Count ist Adler Toe eins, und das wird es beschränken, immer nur eine Homepage auf der gesamten Website zu haben. Wir können auch, zur gleichen Zeit, tun einige Seitentypen ist gleich, und wir wissen, dass die Homepage wird immer nur zwei verschiedene Seitentypen haben. Jetzt ist dies bereits aufgrund der übergeordneten Seitentypen, die wir festgelegt haben, erledigt. Aber wir können dies noch weiter einschränken, indem wir sagen, dass die Unterseitentypen immer nur eine
Flex-Seite sein können , die bereits eine akzeptierte Regel und Dienste Punkt Service Listing Seite ist. Und nur zur Erinnerung, das ist der Name unserer App, und das ist der Name unseres Modells. Das wird also gerettet. Und wenn ich gehe, um eine weitere Seite zu root hinzuzufügen, gibt
es uns überhaupt keine Optionen. Und so gehen wir dazu, unsere Seiten zu begrenzen. Jetzt denkst du vielleicht, das ist nutzlos. Ich will das nicht tun, und du wirst der beste Richter für deine Website sein. Ob das gut für Sie ist, Ihren Kunden, Ihre Inhalte, Eintrittsleute, das ist eine Urteilsberufung, die Sie machen müssen. Aber ich persönlich mag es, dies so zu setzen, dass, wenn meine Kunden auf eine Website wie diese kommen und sie eine andere Seite hier erstellen wollen, eine andere Listing-Seite, Nun, sie können nicht. Das wird einige der Logik brechen, die wir bereits in dieser Website integriert haben. Oder anstatt in der Lage zu sein, eine andere Service-Seite unter einer Service-Seite zu erstellen und einfach für immer
weiterzumachen, können
sie immer nur Service-Seiten unter der Listing-Seite erstellen und wieder, die können
sie immer nur Service-Seiten unter der Listing-Seite erstellen und wieder, dieunsere Logik als Entwickler in den Code. Also denke ich, das ist Ah, wirklich leistungsstarke Satz von Funktionen oder ein Trio von Funktionen. Wenn Sie dies nicht für nützlich halten, müssen
Sie dies nicht implementieren. Dies ist alles optional. Andernfalls, wenn Sie es mögen, fühlen Sie sich frei, es zu benutzen. Es kommt eingebacken mit Wag Tail
32. Navigationsmenüs: Unsere Website kommt ganz schön zusammen, aber es gibt immer noch keine echte Navigation. Wir haben gefälschte Verbindungen hier oben, die nirgendwo hingehen. Navigation ist absolut wichtig für eine Website. Wir haben es nur noch nicht gebaut. Also beginnen wir mit der Erstellung einer neuen App namens Menüs mit den Standard-Python verwalteten hohen
Startmenüs. Öffnen Sie also Ihr Terminal und lassen Sie uns Python ausführen, die hohe Startmenüs verwaltet werden, und ich werde nur meinen Server dort erneut ausführen. Und als ich meinen Redakteur öffnete, werde
ich sehen, um das Zeug zu schließen. Ich werde hier einen neuen Ordner namens Menus haben. Wir werden keine Ansichten brauchen,
also werde ich das loswerden. Wir werden keine Ansichten brauchen, Wir brauchen keine Tests, also werde ich das loswerden. Wir werden keinen Admin brauchen. Das werden wir loswerden. Also habe ich nur Migrationen drin. APS und Modelle, nicht Kuchen. Jetzt, in unseren Modellen hoch Datei, werden
wir am Ende einen Menüpunkt in der Menüklasse erstellen. Okay, zuerst müssen
wir ein neues Menü erstellen,
ein Cholesterin-Modell. Wir haben noch nicht mit Cholesterin-Modellen gearbeitet, aber dies ermöglicht es uns im Wesentlichen, mehrere
Elemente gleichzeitig zu speichern , ohne dass andere Objekte erstellt werden oder vorher erstellt werden müssen, so dass sie irgendwie alle gleichzeitig sparen können. Der Grund dafür ist, dass ein Menü, wenn es wahrscheinlich nur ein Menü gibt, aber es wird einen Menüpunkt, einen
anderen Menüpunkt und einen anderen Menüpunkt haben , und wir wollen, dass alle diese im Grunde zur gleichen Zeit speichern. Wir wollen auch, dass diese ein ble neu bestellen,
also werden wir eine Sache verwenden, die eine Ordnung Ackerbau genannt wird. Also werde ich das aufräumen, und das erste, was ich hinzufügen werde, ist eine Klasse namens Menu, und das wird ein Cluster-Kräutermodell sein, und wir haben ein importiertes Cholesterin-Modell. Dies kommt aus dem Paket namens Model Cluster. Lassen Sie uns von Modellcluster-Punkt-Modelle importieren Cluster Ackermodell tun, und jetzt können wir es verwenden. Als Nächstes. Wir wollen, dass unser Menü eine Art von Titeln hat, die wir identifizieren können, und wir wollten auch eine Art Schnecke haben, damit wir es leicht in unserer
Vorlage identifizieren können , so dass, wenn wir versucht haben, auf dieses Menü zuzugreifen, sagen
wir, ein Template-Tag, könnten
wir einfach eine bestimmte Slug übergeben. Grundsätzlich ist
es ein textbasiertes I D, und wir werden es ziemlich leicht finden können. Also lasst uns voran gehen und tun. Titel ist gleich Modellen Punktchar Feld Max Learning Sache. Lassen Sie uns einfach eine maximale Länge von 100 Zeichen geben, und die Schnecke wird etwas als Auto Slugs genannt. Felder. Lassen Sie uns ein Auto Slug Feld machen, und wir haben das noch nicht benutzt, aber wir werden in nur einer Sekunde darauf eingehen. Nehmen wir also an, dieses Auto Slug Field muss aus dem Titel gefüllt werden. Und was das sagt, ist, wenn es keine Schnecke gibt, schnappen Sie sich den Titel Slug Wenn ich es und benutze das, werden
wir auch sagen, dass das jetzt essbar ist. Auto Slug Field kommt von einem anderen Paket, ein
anderes, und Sie müssen kein Auto Slug Feld verwenden, wenn Sie nicht möchten. Sie können einfach Modelle dodged char-Feld verwenden, wenn Sie möchten. Ich verwende gerne das Auto Slug Feld, weil es mir erlaubt, ein wenig faul zu sein, wenn ich
Inhaltseingabe mache , und ich könnte einfach den Titel eingeben drücken, das Modell
speichern oder das Menü speichern, und es wird eine für mich erstellen, wenn Ich wollte es. Eso lassen Sie uns voran und verwenden Sie das Auto Slug Feld. Dies wird von Django-Erweiterungen kommen, die ich glaube nicht, dass wir jetzt tatsächlich installiert haben. Django-Erweiterungen dot tv dot Felder Import Auto, Slug Feld und mal sehen, was ein Terminal sagen. Es sagt absolut nichts, und das liegt daran, dass dies eine brandneue Anwendung ist. Wir müssen es zu unserem neuen APS hinzufügen. Also in unserem basiert auf Kuchen, werden
wir Menüs hinzufügen. Das ist nur der Ordnername. Das nenne ich es im Grunde, die ganzen Ausfälle, die Menüs genannt werden. Also wird es mit der Nähe übereinstimmen, die wir unser Terminal aktualisieren lassen. Da gehen wir. Das sieht gesünder aus. Kein Modell namens Jango Extensions. Also wollen wir diese Do Pip installieren Django-Erweiterungen abbrechen, Cool Beans. Lassen Sie uns unseren Server erneut ausführen. Es beschwert sich nicht mehr, und lassen Sie uns weiter hier. Also werden wir unsere Migrationen noch nicht ausführen. Wir werden hier ein kleines zusätzliches Zeug hinzufügen, also weil wir das am Ende mit Wag Schwänzen registrieren, modellieren, Mann, wir müssen diese Platten geben, wenn wir ihm Platten geben. Das bedeutet, dass die Felder, die es uns erzählt haben, freigelegt werden, damit wir sagen können, Hey, gib ihm ein Panel für einen Titel und gib ihm eine Tafel für die Schnecke und diese werden existieren. Sie werden bearbeiten Herbal. Sie können den Titel tatsächlich ändern oder den Titel hinzufügen und eine Schnecke ändern oder hinzufügen. Es ist also auf einem Feldfeld hier. Dieser wird Titel sein, und lassen Sie uns ein weiteres Feld Panel hinzufügen, und dieses wird Slug Feld Panels auch nicht importiert genannt werden. Also lasst uns das machen. Also werden wir von meinem Tail Dot Admin Dot Edit-Handler Importfeld Panel Checks Terminal, das ich keine Art von habe, ist vermutlich, und wir sind fast fertig mit diesem Teil. Also als nächstes, wenn wir schließlich eine Migration dafür erstellen, wird es eine Klasse namens Menu in
der Datenbank effektiv erstellen . Und wann immer wir dies verwenden, hat
es keinen Namen, um sich selbst zu nennen, also wird es wahrscheinlich den Namen des Speichers geben, der zugewiesen ist. Also, wie manchmal in Python-Code, werden
Sie etwas sehen, das wie, Ah, wissen
Sie, so
etwas wie diese Art von sieht etwas in dieser Richtung aus. Wenn Sie so etwas gesehen haben, ist
das ein wenig Speicher, der in Ihrem Computer zugewiesen ist. Anstatt das zu sagen,
das ist der Name davon, werden
wir sagen, dass wir dies mit einer Strings überschreiben werden,
einem zurückkehrenden Selbsttitel. Und jetzt sagen wir Jedes Mal, wenn wir auf ein Menü zugreifen, Objekt wird aufgerufen werden Was auch immer der Titel ist jetzt, dieser Punkt, lassen Sie uns unseren Server abbrechen und lassen Sie uns Python verwalten dot pie. Machen Sie Migrationen kühl. Ich habe einige Migrationen aus dem letzten Video, das wir mit einigen Flex-Page-Sachen gemacht haben, und ich habe ein neues Modell für das Menü erstellt, das Ihr Python hoch migrieren verwaltet. Alles wurde in Ordnung angewendet, die drei Läufer Server, und wir werden noch nichts in unserem Advent sehen. Wir haben hier nichts registriert, also werden wir nichts sehen, was einen Schritt darüber hinausgeht. Wir haben auch nur ein Menü. Wir haben keine Menüpunkte, also lassen Sie uns voran und fügt ein Menü Elemente Jetzt. Nun, hier wird es ein wenig schwierig, an diesem Punkt zu verstehen, das ist,
Sie können sich das nur als ein normales Modell vorstellen und da ein Titel eine Schnecke hat, und schließlich werden wir einige Menüpunkte erstellen und wir werden es wieder zu beziehen dieses Menü. Also werde ich eine Klasse namens Menüpunkt erstellen und das wird eine Bestellung sein. Eine Schüssel. Jetzt haben wir noch keine Bestellung Bols importiert. Also lassen Sie uns von Wegzu tun Dekor, die Modelle importieren oder langlebig. Nun, welche Art von Funktionen wollen wir unser Menü toe Haben wir wollen, dass diese Zehe eine Art
Link-Titel haben ? Wir mussten eine Art Link haben, wo ich und sagen wir, das wird ein
externer Link sein . Ah, wir werden eine Link-Seite erstellen. Dies wird ein interner Link und vielleicht eine offene Option in einer neuen Registerkarte sein, und das wird ein boolescher Wert sein. Also im Wesentlichen, was wir tun werden, ist für jedes Linkelement hier drin, es wird etwas Text haben. Es wird eine interne und externe Seite und die Option, in einem neuen Tab geöffnet werden oder nicht. Das ist also ein bisschen Pseudocodierung. Lassen Sie uns voran und fügen Sie diese hier hinzu. Also lassen Sie uns Modelle hinzufügen. Zeichen Feld Leer ist gleich true. Nein ist gleich wahr. Eigentlich müssen
wir nicht hinzufügen, nein ist gleich wahr, weil Blank gleich true ist. Außerdem ist
es ein Char-Feld, aber lassen Sie uns Adam maximale Länge von 50. Die Verbindung, die Sie gut wird ein externes ing sein, also wird dies typischerweise,würden
wir sagen,
ein ul Feld sein würden
wir sagen, . Aber das könnte auch ein Ei-Ankerlink irgendwo auf der Seite sein. Es könnte also nur ein Link sein, der viel wie dieser unten oder Kontakt aussieht und Sie werden Sie auf der Seite nach unten scrollen . Vielleicht wollen wir das. Also lassen wir das mit HR Field offen. Geben Sie das auf maximale Länge von 500, weil externe Links ziemlich lang sein, und es kann auch leer mit unserer internen Seite sein. Lassen Sie uns voran und erstellen Sie einen Fremdschlüssel für jede Wag Tail Seite auf unserer Website, also werden wir sagen, Modelle aus Fremdschlüssel. Warten Sie, bis die Kernpunktseite sie sagten. Wie auch immer, sagen Sie Paige und jede einzelne unserer Seiten erbt diese reguläre Seite. Wenn wir also sagen, dass wir zu Hause auschecken, wird
unsere Homepage diese Seite tatsächlich importieren. Und wenn wir hier nach oben kommen, werden
wir sehen, dass kommt von Warten bis Kernmodelle Seite rechts Don't core dot Modelle Seite machen Dekor Als AP-Seite ist das Modell nein gleich wahr. Ja, es wird kein Leerzeichen geben, das wahr ist. Ja, das könnte leer sein. Das ist optional. Wir werden uns auch einen verwandten Namen geben, aber wir werden ihm keinen besonderen verwandten Namen geben. werden wir nicht benutzen. Also werden wir im Grunde nur das Related verwerfen, benannt mit einem Pluszeichen und dann löschen, was passiert, wenn wir löschen, welche Seiten verlinkt
werden. Teoh. Wenn wir also auf eine Kontaktseite verlinkt haben und die Kontaktseite löschen, was passiert mit diesem Menüpunkt? Wir werden sagen, dass dieser Menüpunkt durch Kaskadierung zerstört wird und dann schließlich haben
wir in neuer Registerkarte geöffnet und dies ist einfach ein boolesches Feld, so dass ein boolesches Feld ein true oder false Standard ist gleich false und leer ist gleich wahr so es könnte optional sein, muss nicht überprüft werden. Und weil
wir das wieder auf unsere Art zeigen werden. Telemann. Irgendwann werden
wir es in der Wag registrieren und den Männern das Modell sagen, wir müssen sagen, Hey, gewehrt Oh, wir wollen, dass du das alles zeigst. Lassen Sie uns also voran und erstellen Sie ein Feld für den Link Titel. Wir werden ein weiteres Feld-Panel erstellen, das dort ein wenig tief wird. Wir werden ein weiteres Feld Panel für den Link erstellen. Sie sind l, dass externe Link Sie sind. Ich nenne wahrscheinlich diesen externen Link Sie Nun, wenn wir Teoh wollten, werden
wir ein Seitenauswahlfeld für die Link-Seite erstellen. Das ist unsere interne Seite. Wenn es ausgewählt ist und wir werden ein weiteres Feld Panel für unser boolesches Feld mit dem
Namen Öffnen in einer neuen Registerkarte erstellen , haben
wir unser Seitenauswahlfeld noch nicht importiert, also gehen wir weiter und importieren Sie unser Seitenauswahlfeld. Nun, das ist alles gut und gut. Aber Menüpunkt und Menü, außer in derselben Datei zu sein, haben keinerlei Beziehung zueinander. Wir müssen eine Art Beziehung aufbauen. Nun, was ich zu dio werde, ist, dass ich Migrationen wieder ausführen und sie laufen Server migrieren werde . Und das wird gerade diesen Menüpunkt für mich erstellen. Jetzt möchte ich diesen Menüpunkt mit dem Menü selbst verknüpfen, und wir werden sehen, dass mit einer Sache getan werden könnte, die ein elterlicher Schlüssel genannt wird. Und es wird auf die Menüklasse verlinken, und es wird einen verwandten Namen haben, den wir tatsächlich verwenden werden. Dieser verwandte Name wird als Menüpunkte bezeichnet. Jetzt gehen wir weiter und importieren elterliche Schlüssel, und ich kann mich nie erinnern, woher dieser kommt. Eso Sie könnten sehen, wie ich hier Fehler mache. Ich denke, für ein Modell Cluster Punktfelder Import perent. Äh ha. Das ist wahrscheinlich das erste Mal, dass ich das beim ersten Versuch bekommen habe. Der elterliche Schlüssel. Also, jetzt, dass sagen Hey diese Seite oder muss nicht aufgerufen werden Seite, es könnte buchstäblich alles genannt werden. Es muss nur eine Art Verbindung zu unserem Menü hier haben, also lassen Sie uns das speichern. Lassen Sie uns Migrationen noch einmal ausführen, und es ist kein Modellclusterfeld. Ich wusste, dass ich das falsch verstehen würde? Ich denke, es ist Modell näher Felder. Fragezeichen. Da ist es. Okay, gehen wir weiter. Führen Sie Migrationen durch. Und jetzt fragt das Hey, Sie versuchen, ein nicht leichtgläubiges Feld namens Seite zum Menüelement ohne Standardeinstellung hinzuzufügen, können
wir das tun. Die Datenbank muss mit etwas gefüllt werden. Lassen Sie uns voran gehen und wählen Sie Option Nummer eins, und ich werde einfach keine eingeben. Gehen Sie vor und migrieren Sie, dass sie ihren Server erneut ausführen. Okay, die
Dinge sehen ein wenig besser aus, wenn sie sowieso nicht schlecht aussahen, aber die Dinge sahen so aus, als würden sie sich jetzt irgendwie formen. Das ist Ah, lasst uns vorgehen und das bei Wag Tail registrieren, damit wir
hier drin tatsächlich darauf zugreifen können . Jetzt gibt es zwei Möglichkeiten, das zu tun. Wir können dies als Snippet registrieren oder wir könnten dies einfach im Menü des Abschnitts hier registrieren. Ich mag es, es im Menübereich zu registrieren. Es fühlt sich einfach ein bisschen besser an. Also neben Modellen, nicht Kuchen, werde
ich eine Marke erstellen Sie hier namens Wag Tail Haken Dot Pie und es
muss unbedingt aufgerufen werden. Warten Sie, bis Unterstrich Haken Punkt Kuchen. Also hier drin. Wir werden zwei verschiedene Dinge tun. Wir werden in das Modell Edmund importieren auch die Decorator Deco Rate. Oder und dann werden wir auch eine neue Klasse erstellen. Wir werden es Männer nennen, geben
Sie zu, und es wird ein Model Inman sein, und wir werden das registrieren. Also lassen Sie uns mit dem 1. gehen 1 und nur den Import von Wait till dot con Trib Motto Edmon dot Optionen Import Modell Littmann. Wir werden auch Modell-Admin-Register importieren. Wir werden dann erstellen, dass Klasse erben Modell Litman the White Tail Modell Lydman Wir werden sagen, was? Aus welchem Modell stammt das? Was geben wir eigentlich hier zu? Wir werden sagen, registrieren Sie diesen Menüpunkt jetzt Wir müssen das auch importieren. Von Punktmodellen stammen
wichtige Menüpunktmodelle aus dem exakt gleichen Ordner, so
dass wir einfach Punktmodelle verwenden können , die gerade hier rüber gehen. Importieren Sie die Menüklasse, die Menübeschriftung, die Menüs hat. Das Menü-Symbol wird eine Liste sein Sie l sieht auch irgendwie aus wie ein Menü braucht ein Komma dort. Die Menüreihenfolge. Hier wird es in der Speisekarte hier bestellt werden. Also werde ich sagen, 200 erinnern sich eigentlich nicht genau, wohin wir Hunderte hinlegen wollen. Wir werden es bei den Einstellungen herausfinden. Menü ist gleich false. Und das heißt, wir wollen nicht, dass es hier erscheint und vom Explorer ausgeschlossen wird, ist gleich falsch. Okay, ich werde Django hier nur für ein gutes Maß manchmal neu starten. SNC Wenn es von selbst neu gestartet hätte, hätten
wir nicht gesehen, dass hintere Ruhe ohne umgebende Klammern nicht erlaubt hat. Und das liegt daran, dass ich geschlagen habe. Enter sollte nur auf einer Zeile gewesen sein. Es war auf das letzte, was wir brauchen, um dieses Modell Admin-Register registrieren, und wir sagen nur, Nehmen Sie diese ganze Klasse Modell Inman und registriert mit Wag Tails Menu System. Also lasst uns weitermachen. Lasst es uns überprüfen. Warten Sie, bis wir das aktualisieren und warten, bis es hier auftaucht. Komm schon, da ist es. Nummer zwei Menüs. Gehen wir weiter und fügen Sie ein Menü hinzu. Wir rufen diese Menü-Kopfzeile an. Sie können sehen, dass es automatisch füllt, während ich tippe. Das ist dank dem Auto Slug Feld. Ich rufe diesen einen Header an und du wirst bemerken, dass wir hier ein Menü haben. Aber wir haben eigentlich keine Menü-Links. müssen wir hinzufügen. Also gehen wir zurück zu unserem Modell Stop high. Und obwohl wir hier einen elterlichen Schlüssel zu unserem Menü mit einem verwandten Namen von Menüpunkten haben, wird
er nicht tatsächlich in der Datenbank verwendet, in der es verwendet wird. Aber wir haben einfach nichts tatsächlich, in weg Gefängnis Begriffe werden jetzt ausgesetzt, weil es mehrere Elemente,
mehrere Menüpunkte und weil wir gehen, um eine Bestellung Kräuter,
die es uns erlaubt, einen Menüpunkt nach oben zu bewegen oder nach unten. Wir wollen eine Sache verwenden, die ein In-Line-Panel genannt wird, und dies wird den verwandten Namen nehmen. Das sind die Menüpunkte, und das bezieht sich nur auf diesen verwandten Namen hier. Es ist also genau der gleiche Text, und das Label wird ein einziges Menü sein. Element im Zeilenfeld wird nicht importiert, also lassen Sie uns das Terminal importieren und beschwert sich nicht. Das sind gute Neuigkeiten. Lassen Sie uns voran, aktualisieren Sie diese Seite und jetzt können wir einen Menüpunkt und einen anderen Menüpunkt und einen anderen
Menüpunkt hinzufügen , und wir können diese in der Reihenfolge mischen und anpassen, die wir wollen. Lassen Sie uns einen neuen Menüpunkt hinzufügen, und dies wird ein Link zu unseren Diensten sein. Und wir werden sagen, dass dies eine Wag Tail Seite sein wird, wenn wir eine
andere hier über uns erstellen und wir werden auf eine andere Art und Weise Detailseite
über uns aufgerufen zu speichern verlinken . Und genau so haben
wir ein Menüsystem an Ort und Stelle auf der Rückseite, aber auf der Vorderseite wollen Mopp? Es funktioniert immer noch nicht, weil wir noch nichts implementiert haben. Und in der nächsten Lektion werden wir ein Template-Tag erstellen, wo wir tatsächlich gehen und dieses Menü aus unserer Vorlage zu
greifen und durchlaufen alles, was wir brauchen um unser Menü hier oben zu erstellen, wir werden auch Erstellen Sie den Fuß oder das Menü. Hier unten wird genau das gleiche Menü sein, also werden wir es an zwei verschiedenen Orten verwenden.
33. Navigation: Okay, Dokey. In unserem letzten Video
haben wir ein Menüsystem erstellt, in dem wir tatsächlich weitergehen und ein Menü hinzufügen konnten. Wir haben mehrere Menüs, wenn wir wollten, aber wir haben eine namens Header erstellt. Und wenn wir das bearbeiten, gibt es hier zwei Menüpunkte, die wir nach oben oder unten bewegen können, dank einer Sache, die in Order Aable genannt wird. Aber wir haben hier immer noch keinen Zugang dazu. Jetzt gibt es verschiedene Möglichkeiten, wie wir auf jeder einzelnen Seite auf dieses Menü zugreifen können. Eine dieser Möglichkeiten besteht in einem Template-Tag. Wir werden diese Route nehmen, anstatt ein globales Objekt zu erstellen, das für
jede einzelne Vorlage zugänglich ist . Wir werden nur den Template-Tag verwenden. Wir werden also unser erstes Template-Tag erstellen. Jetzt werde ich gehen, um zu schließen, dass wir einen neuen Ordner namens Template
Tags alle ein Wort erstellen werden, und dann hier werden wir eine andere neue Datei oder die erste neue Datei in dort namens
Menu Tags dot pie erstellen und dieser Name ist wird wichtig sein, und ich werde darauf in ein wenig verweisen. Nun, hier werden wir ein einfaches Django-Template-Tag erstellen. Wenn wir also unseren Header Dot HTML öffnen, haben
wir andere Template-Tags gesehen, also haben wir statisch als Vorlage. Ich kann sehen, dass es hier benutzt wird. Das ist ein Template-Tag. Wenn wir warten bis Bilder verwenden, verwenden
wir das Bildvorlagen-Tag. Wir werden jetzt unser eigenes Template-Tag erstellen, und dieses wird nur ein einfaches Tag sein. Lassen Sie uns voran und sagen, von Django, Importieren Vorlage von Let's Go zu Ordnern nach oben oder ja, ein Ordner aus, Lassen Sie uns einen Ordner nach oben
gehen, Gehen Sie zu Modellen und importieren Sie unser Menü. Wir werden hinzufügen müssen Register ist gleich der Vorlage Punktbibliothek, und das wird uns helfen, dies tatsächlich zu registrieren. Diese Tags, die wir uns in einem Dekorateur Art und Weise verwenden können. Wir werden sagen, taub, Menü. Wir geben ihm eine Schnecke in der Vorlage und dann wird eine Sache zurückgeben. Und damit dies tatsächlich ein richtiges Template-Tag wird. Wir müssen dann sagen registrieren Punkt einfache Tag, und jetzt können wir uns gut verwenden. Und jetzt können wir dies innerhalb unserer Vorlage verwenden, und es ist wirklich so einfach, wie in eine Header-Datei zu gehen und Menü-Tags laden zu sagen. Weißt du noch, als ich sagte, dass ich wieder auf diesen Namen verweisen werde? Menü-Tags ist eine Menü-Tags hoch Datei, die wichtig ist. Diese Namen werden übereinstimmen. Und was das besagt, ist, dass alle Tags, die in dieser Datei verfügbar sind, jetzt innerhalb unserer Vorlage
verwendet werden dürfen . So haben wir nun Zugriff auf ein Template-Tag namens Get Menu. Also, wenn wir voran gehen und uns tatsächlich US nennen, bekomme
ich Menü. Es dauert einen Parameter eine Schnecke. Lassen Sie uns diesen Header aufrufen und woher ich das bekomme, ist der Slug-Header. Deshalb haben wir hier eine Schnecke, damit wir sie auswählen können. Alternativ könnten
Sie die Ideen gut verwenden, aber ich ds sie ändern sich im Laufe der Zeit. Wenn jemand versehentlich diesen Header löschen und einen neuen Header erstellen
würde, den ich d ändern werde und Sie brauchen einen Tauben zu engagieren, ist
das einfach keine Möglichkeit, Ihr Leben zu leben. Also, wenn Sie ah Slug verwenden
, ist dieses Problem eigentlich ziemlich leicht zu beheben. Und jetzt sagen wir dies als eine Variable namens Navigation. Und hier werde ich H eins hinzufügen und ich werde die Navigation ausdrucken, um voran zu gehen und unsere Seite hier zu
aktualisieren. Oh, Menüs. Tags sind noch nicht registriert. Okay, das ist super kommen. Also passiert hier eines von zwei Dingen. Entweder habe ich diese Seite nicht gespeichert oder weil manchmal, wenn Sie mit Template-Tags arbeiten, obwohl Sie eine Änderung vorgenommen haben, bemerkt
Django nicht immer, dass sich Template-Tag-Dateien ändern. Und so wird es sich nicht neu starten. Also werde ich Django einfach ein bisschen einen Kick hier geben und meinen Django Server
drei Frische neu starten . Da ist es. Ah, Ding. Jetzt in der Vorlage sagt
es hier nichts aus. Da steht Navigation. Nun, um dies rückwärts zu verfolgen, haben
wir ein sehr Buch namens Navigation und wir haben eine Funktion namens Get Menu mit einem Parameter von Header. Und dann weisen wir es als sehr Rechnung namens Navigation zu. In unseren Menüs Tags haben
wir eine Funktion namens get menu. Es ist nur Parameter ist eine Slug, und es gibt einfach dies zurück. Jetzt müssen wir tatsächlich gehen und nach diesem Menüpunkt suchen, basierend auf seiner Schnecke. Also lassen Sie uns voran und geben dies einen Versuch wir gehen, Menü zurückkehren starb. Objekte Doug get slug ist gleich, was auch immer die Slug ist. Und wenn du dich fragst, hey, bekommst
du Slug gleich Slug? Wir sagen, Menü Punkt Slug hat ein Feld namens Slug ist gleich dem Parameter Slug genannt. Wir könnten das leicht austauschen, um so etwas wie die Schnecke zu sagen, wenn wir es
etwas weniger verwirrend machen wollten . Das überlasse ich dir. Wenn Sie das tun möchten, lassen Sie uns hier eine Ausnahme ausführen, nur für den Fall, dass dieses Menüobjekt nicht existiert. Machen wir eine Ausnahme. Menü ist nicht vorhanden. Rückgabemenü Punktobjekte Punkt keine, und was dies tun wird, ist, wenn wir kein Menü finden können, das den Header hat, wo hat die Slug von Header? Es wird diese Ausnahme fangen, weil Jenga uns eine Ausnahme werfen wird und uns einen schnellen Reset mit nichts zurück
geben wird. So gibt es uns immer noch eine ehrenvolle, so dass, wenn wir schließlich Luke insgesamt über Menüpunkte in unserer Vorlage gehen, es wird uns keine Art von Problemen geben. Also sage ich, dass ich das immer noch ein bisschen einen Kick geben werde, obwohl es so aussieht es es damals selbst getan hat. Und wenn ich hier aktualisiere, heißt
es einfach Header. Nun ist der Grund, dass dies Header mit einem Großalter sagt, weil der Titel
Header genannt wird . Sagen wir, Header mit, Ah, anderen Namen und lassen Sie uns voran und ändern Sie das auch. Header speichern und ich werde meine Vorlage erneut aktualisieren. Header mit einem anderen Namen. Wenn Sie sich fragen, worum es in unserem Menü selbst geht, denken Sie daran, wir setzen Dunder Stringed unter und es ist nur wieder gut, diesen Titel. Das ist es, was wir hier gemacht haben. auch Das haben wirauchhier gesetzt. Das Titelfeld ist also Header mit einem anderen Namen. Titelfeld ist Header mit einem anderen Namen und die Zeichenfolge die Zeichenfolgendarstellung. Der String-Name dieses bestimmten Objekts wird aufgerufen, was auch immer der Titel ist, also das ist, wo wir das bekommen. Wenn Sie also sehen, dass die Chancen bestehen, erhalten Sie nur das Menüobjekt selbst und Sie müssen es
durchlaufen. Also gehen wir weiter und durchlaufen das jetzt und ich werde das loswerden. Und wo sind unsere hier? Es ist vier i in 123 Also das wird nur drei Links für uns zu erstellen, und wir wollen nur sagen, statt vier ich für Element in Navigationspunkt-Menüpunkte Punkt alles jetzt wird dies wieder ein wenig verwirrend zu bekommen. Also sagen wir für die Navigation, die die gesamte Menüklasse ist, das gesamte Menüobjekt diese gesamte Seite im Wesentlichen punktet Menüpunkte in unserem Code. Wir haben ein In-Line-Panel mit einem verwandten Namen, das Menüpunkte verwendet, also greift es all diese Menüpunkte alle, so dass es alle von ihnen bekommt und wir gehen Zehenschleife durch jeden einzelnen, okay? Und lassen Sie uns einfach einen kurzen kleinen Test hier machen und drucken Sie den Menü-Link-Text aus. Also gehen wir zurück. Und was wird das sein? Der Link Titel ist, was es heißt Menü Punkt Link Titel oder Element Liebling Titel. Vielmehr. Also für jeden Menüpunkt, den
wir haben, werden wir es Element nennen, und dann werden wir den Link Titel bekommen. Lassen Sie uns voran Refresher Seite gehen, und hier können wir Dienstleistungen und über uns sehen, so dass es tatsächlich funktioniert. Jetzt müssen wir diesen Link hier austauschen, und wir werden dies in einer if-Anweisung tun und dann werden wir diese
if-Anweisung zusammenbrechen , um ein bisschen mehr Sinn zu machen. Also haben wir eines von zwei Dingen, mit denen wir früher gearbeitet haben. Wir haben eine von zwei Eigenschaften, die wir verwenden können. Link. Sie sind L. Was wird nur normaler Text oder eine Link-Seite sein. Lassen Sie uns also immer überprüfen, ob es zuerst eine Link-Seite geben wird. So können wir sagen, wenn Artikel Punkt Link Seite, wir können Artikel Punkt Link Seite drucken, die Sie l sind und wir tun den Punkt Sie, Earl, denn das wird ein Weg Detailseite sein. können wir auch tun. LF item dot Wie haben wir diesen Link genannt? Du bist l Dieser hier ist nur ein normaler Text. Also schwächen Dio-Artikel verlinken Sie nicht gut und lassen Sie uns sonst hier einen leeren Link im Grunde setzen, und so wird es aussehen. Also, wenn wir das lesen, das wird sagen, wenn es eine Wag HelPage eine Link-Seite drucken Oh, dass Sie Earl, wenn es nicht eine, aber es gibt einen Link. Sie gut, ein externer Link. Drucken Sie den Text aus, was auch immer das endet. Und wenn es keines von denen gibt, zeig uns
einfach ein normales Nummernzeichen als Link, und dieser Link wird nirgendwo hingehen. Also lasst uns das alles zusammen zusammenbrechen. Also alles, was ich tue, ist, das auf eine Zeile zu setzen, eine Rial-Bruttolinie. Ich schneide das ab, und ich werde es hier reinbringen. Sagen wir das und aktualisieren Sie unsere Seite. Und wenn ich auf diese Dienste über uns klicke Oh, schau dir das an. Wir haben ein Navigationssystem, okay? Aber wir haben noch eine Sache, die wir hier hinzugefügt haben, dass wir das Öffnen
in neuer Registerkarte nicht implementiert haben . Also in unserem Link hier wollen
wir auch okay sagen, wenn das Element in einer neuen Registerkarte geöffnet sein soll, geben
wir diesem ein Ziel von Blank. Und wenn nein, habe ich keinen dieser Links so eingestellt, dass er in einem neuen Tab geöffnet wird, damit Sie das
selbst testen können. Aber ich werde das einfach so lassen, weil ich jetzt ziemlich zufrieden bin. Wir haben auch mit If-Anweisungen wie diesen gearbeitet, und wir haben uns tatsächlich in die Mawr Python Logik verschoben, so dass wir nicht zu viel
Template-Logik haben . Und diese Seite hat eine angemessene Menge an Vorlagenlogik. Was wir hier tun können, ist, dass wir einfach Punkt Punkt Link sagen können, aber wir müssen dies zuerst erstellen. Gehen wir zurück zu unseren Models, dem Kuchen. Und in unserem Menüpunkt, lassen Sie uns eine jangle Eigenschaft hier mit einem Dekorateur im Eigentum Deaf Link selbst hinzufügen. Und das wird der Punkt Link in der Vorlage sein, die wir können Sie. Also, jetzt können wir Element nicht verknüpfen, was auch immer dies zurückgibt, Das ist, was Element nicht Link wird sein. Und wir können sagen, wenn Selbstzweifeln Link-Seite dann können wir Selbstpunkt-Link-Seite zurückgeben, nicht wahr, Earl? Und das ist wirklich genau die gleiche Logik, die wir gerade in unsere Vorlage einfügen. Wir tun es nur in Python-Haus sind Vorlagen können schön und sauber bleiben. Jetzt werden wir sagen, LF Self Dot Link Sie sind l und wieder bekomme ich nur diese Felder von erscheinen Ich denke, Seite verlinken Sie gut, zurück Self Dot Link URL sonst immer einen einfachen, leeren Link, und das ist nur immer die Zeichenfolge zurückgeben. Die andere Sache, die wir gesagt haben, war, dass der Link-Titel leer sein kann, daher existiert der Link-Titel technisch nicht. Gehen wir voran und sagen: Wenn es leer ist,
lassen Sie uns es etwas anderes zuweisen. Wenn es leer ist, Also wieder hier unten, werden
wir eine neue Eigenschaft erstellen und wir können diese innere Vorlage auch verwenden. Eigenschaft taub Titel Selbst. Nun, was wir sagen werden, ist, wenn es eine Link-Seite gibt und es keinen
Selbstpunkt-Link-Titel gibt, so dass im Grunde der Link-Titel ignoriert wurde, aber es gibt eine Wag Tail Seite ausgewählt wurde. Wir werden zurückkehren, dass Warten Sie, bis Seitentitel selbst Punkt Link Seite Punkt Titel ist, was wir zurückkehren werden. LF gibt es einen Selbstpunkt-Link-Titel gibt den Selbstpunkt-Link-Titel zurück und schließlich, wenn es keinen Link-Titel gibt und wir einen externen Link zu einer anderen Seite verwenden, können
wir einfach sagen, fehlenden Titel Jetzt, in unserer Vorlage, wir kann Punkt-Link- und Punkttitel verwenden. Lassen Sie uns voran und tauschen Sie diese aus für den Titel und das wird schön und sauber mit Punkt Punkt Link und das ist es. Gehen Sie weiter und aktualisieren Sie diese Seite. Und sicher genug, es sieht so aus, als hätte sich nichts geändert, aber wir haben es geschafft, unsere Vorlage zu vereinfachen. Eine letzte Sache ist, dass wir das jetzt zu unserer Fußzeile hinzufügen wollen. Das ist also sehr, sehr einfach. Es ist buchstäblich das gleiche wie ein Header. Wir werden die ganze Zeile hier kopieren,
also tun, um ihre Kopie zu machen, dass wir dasselbe tun werden wie wir hier getan haben. Wir werden genau das gleiche hier tun, und im Grunde wird genau das gleiche Menü, das in der Kopfzeile verwendet wird, auch
in ihrer Fußzeile verwendet werden . Also werden wir es an zwei verschiedenen Orten verwenden. Also ist es unsere Fußzeile dot html öffnen. Wir müssen in Menüs Tags laden, die zu unseren Menüs passen, nimmt, ich Datei fügen Sie den Kerl dort ein. Also werden wir die get Manu Funktion ausführen. Der einzige Parameter für die Slug ist Header. Wir weisen dies als Navigation zu und statt vier I und 123 können wir vier Punkt im
Navigationspunkt sagen . Was habe ich das nochmal genannt? Menüpunkte? Nicht alle. Und hier drin. Lassen Sie uns einfach ein einfaches Testelement Punkt Titel und Menüs Tags nicht registriert. Oh, interessant, interessant. Okay, es ist, weil ich es Menü-Tags genannt habe und das Scrollen nach unten. Und da gehen wir. Wir haben zu Links Dienste und über uns. Und wenn wir jemals die Reihenfolge ändern wollten, könnten
wir buchstäblich einfach die Taste nach unten drücken oder die Aufwärts-Taste auf diesem einen Hit speichern. Und wenn ich die Seite aktualisiere, geht
es um uns und dann um Dienstleistungen und dann um uns und Dienstleistungen, über US-Dienste und Bestätigung über uns und Dienstleistungen. Da kommt also die Bestellrechnung ins Spiel. Das letzte, was wir hier tun müssen, ist, wo ist das für Loop? Wir müssen diesen Link Punkt Punkt Link hinzufügen, und ich dachte, das würde letzte sein,
aber ich habe vergessen, dass wir Wenn Element Punkt in New Tab geöffnet haben, wollen
wir, dass dies Ziel Blank, und das ist Auffrischungsseiten. Stellen Sie sicher, dass die Dinge wie erwartet funktionieren. Gehen wir zur Services-Seite. Ja, geh auf die „Über“ -Seite Yep. Und wir haben ein funktionierendes Navigationssystem. Jetzt gibt es ein nicht Ackerpaket, das hier genannt Wag Tail Menus. Wenn das alles einfach zu viel ist und Sie nicht mit dem ganzen Kopf über
unser K H umgehen wollen , kann
ich das nicht sagen, sondern seine Kult-Art. Del Menüs es ist auf. Hobbits auf Tortenkuchen und Sie können hier durch die Docks lesen. Wir werden dies in diesem Kurs nicht behandeln, aber es schafft ein wirklich schönes Menüsystem für die Verwendung von Wag Tail, und Sie können in, wie, einige Menüs und Dinge wie,
die wir derzeit nicht verwenden. Wenn Sie also ein erweitertes Menü benötigen, könnte
dies der richtige Weg sein. Dies ist ein wirklich gutes Paket, es scheint die Dinge schön und einfach zu halten, und Sie müssen nicht Ihr eigenes Menüsystem verwalten, was wirklich,
wirklich schön ist . Also wieder, wenn diese letzten beiden Videos ein wenig zu viel für Sie waren,
zögern Sie nicht, das Wag Tail Menus Paket
34. Kontaktformulare Teil 1: so ziemlich jede Website braucht heutzutage ein Kontaktformular. Nicht alle von ihnen, aber die meisten von ihnen tun es. Es ist eine einfache Möglichkeit für Ihre Zuschauer, Ihre Leser, Ihre Käufer, den Besitzer oder Artikel Autoren oder Website-Betreuer zu kontaktieren. So etwas. Wag Tail gibt uns die schöne Möglichkeit, spezielle Kontaktformularseiten zu erstellen. Das erste, was wir tun werden, ist, dass wir unser Terminal öffnen. Lassen Sie uns das abbrechen und lassen Sie uns Python verwaltet ausführen. Ich fange AP an. Dieser wird Kontakt genannt werden,
und es hilft, wenn Sie den Start richtig nehmen. Lassen Sie uns ihren Server erneut ausführen. Verstecken Sie das und in unserem Code, lassen Sie uns basierend auf Kuchen öffnen und wir wollen Kontakt hier haben. Kein Kontakt ist der Name der App, die wir gerade erstellt haben. Wenn Sie also Ihre Kontaktseite angerufen haben, würden
Sie dies in Kontaktseite ändern, und Ihr Ordner würde auch als Kontaktseite bezeichnet werden. Ihr APS würde auch die Kontaktseite hier sagen. Also lassen Sie uns das schließen und lassen Sie uns einige Dateien loswerden, weil dies eine Wag
Tail Seite sein wird. Wir brauchen unsere Ansichten nicht. Viele Tests wurden bereits geschrieben, und wir brauchen keine Art von Admin-Zeug. Wir werden unsere Modelle APS darin und Migrationen
halten . Nun, um eine Kontaktseite zu erstellen, müssen
wir ein paar Dinge tun. Wir müssen zuerst eine Klassenkontaktseite erstellen, und Sie würden denken, dass dies von Page kommen würde. Aber es wird nicht von Page kommen wird von dieser Sache kommen, die ein abstraktes
E-Mail-Formular genannt wird . Und der Import dafür ist, wenn ich das richtig erinnern kann, es ist rektal dot con Trib dot Formen dot Modelle importieren abstrakte E-Mail-Form hatte er das sieht richtig zu mir. Nein, vergiss es nicht zu irgendeinem Zeitpunkt, wenn du dich nicht an deine Importe erinnerst, ist
das okay. Sie können immer überprüfen Sie die Docks, diese Luft alle verfügbar auf den Docks als auch. Dieser Code und zu jedem Zeitpunkt, wenn Sie jemals mögen oh, möchte
ich ein anderes Arbeitsbeispiel für so ziemlich alles, was in diesem Kurs ist. Sie können den Quellcode für diesen Kurs auschecken, oder Sie können auch zu http gehen. Holen Sie sich Herb dot com Schrägstrich Codierung für alle gelernt Schrägstrich. Warte, bis das der ursprünglich gelernte Wag ist. Sagen Sie natürlich den gesamten Quellcode für die ursprünglich erlernten Wag Tail Kurse dort. Ich denke, es gibt so etwas wie 50 Videos, also gibt es eine Reihe von Commits wahrscheinlich wie 60 ish-Commits, und alles ist in verschiedene Commits aufgeteilt. Also, wenn Sie einfach dorthin gehen, können
Sie den gesamten Quellcode auschecken, und Sie können ihn basierend auf Commit basierend auf Video teilen. Also zögern Sie nicht, das zu überprüfen, wenn Sie daran interessiert sind, ein anderes Beispiel zu sehen, wie viel von diesem Zeug verwendet wird. Okay, also in unserer Kontaktseite hier, werden
wir eine Vorlage angeben, weil ich das gerne mache, obwohl dies standardmäßig bereits Kontakte letzte Kontaktseite sein würde. Aber auf unserer Kontaktseite erhalten
wir auch eine weitere. Wir erhalten eine Landingpage Vorlage, und wir können diese angeben. Nun, wenn wir diese nicht angeben,
ich glaube, was Wag Tail automatisch tun wird, ist nur ein pan fügen Sie das Wort Unterstrich Landung an Ihre Kontaktseite. Jetzt gehen wir zu Ihnen angeben, dass sowieso, so kontaktieren Sie Schrägstrich Kontaktseite, Landungspunkt html, und ich mache das einen Schritt kleiner dort. Unsere Kontaktseite sollte beliebige Unterseitentypen haben. Einige Seitentypen sind gleich keiner. Wir wollen keine Kinderseiten hier unten und in ein bisschen, was wir tun werden, ist in unseren Heimmodellen dieser Kuchen. Wir werden Kontaktpunktkontaktseite als Unterseitentyp angeben. Es ist erlaubt, unter der Homepage zu leben. Jetzt. Ich werde diese Datei noch nicht speichern, weil gemäß unserem Code noch
nichts davon existiert. Ich habe diese Datei noch nicht gespeichert. Wie viele Kontaktformulare können wir haben? Ich werde sagen, es kann immer nur einen wie einen Textmarker geben. Es kann immer nur einen geben. Und welche Felder wollen wir auf dieser Kontaktseite? Ich möchte ein Intro, das eine Art Rich-Text-Feld sein wird, mit
dem wir noch nicht wirklich gearbeitet haben. Das wird also,
ah,
gute Möglichkeit sein,Ihnen zu ah,
gute Möglichkeit sein, zeigen, wie man den Rich-Text mit dem Perücken-Editor namens Draft
Tail innerhalb einer tatsächlichen Seite verwendet . Wir werden,
ah, ah, ein paar Dankeschön Text
erstellen denken Sie Text. Dies wird auch ein Rich-Text-Feld sein, nur wegen des Designs,
mit dem wir arbeiten . Ich weiß, dass es ein Kartenbild geben wird, und das wird ein Fremdschlüssel für ein Wag Tail Bild und möglicherweise eine Karte sein. Du bist l Wenn jemand uns kontaktieren will und das wird sein, du bist alle auf dem Feld. Also mache ich hier nur etwas Pseudocodierung, schreibe
nicht wirklich eines dieser Felder aus? Noch nicht. Jedenfalls. Wir haben diese Felder und wir wollen, dass Wag Tail diese Felder für uns offenlegt. Wir werden sagen, Content-Panels ist gleich, und was wir immer getan haben, war Content-Panels ist gleich Seitenpunkt-Inhalts-Panels, und dann fügen wir eine Liste an sie. Aber wir haben hier noch keine Seite. Wir haben abstrakte E-Mail-Formular, und dann können wir unsere Feld-Panels und Zeug hier hinzufügen. Fügen wir also ein Feldfeld für unser Introfeld hinzu, das derzeit nicht existiert. Lassen Sie uns ein Bildauswahlfeld für unser Kartenbild hinzufügen. Das ist in einem regulären Feld für unsere Karte. Du Earl Karte, du bist l. Jetzt kommt das besondere Zeug ins Spiel. Wir brauchen ein In-Line-Panel zu unseren Formularfeldern, die wir noch nicht erstellt haben, also wird dieses ein bisschen speziell sein. Wir werden das hier nennen. Geben Sie uns ein spezielles Etikett namens Formularfelder. Darauf kommen wir in einer Sekunde zurück. Wir mappen gerade gerade unsere Content-Panels ab, basierend auf Feldern, die nicht einmal existieren. Also haben wir einen Pseudo-Code, wir werden das ausfüllen, wir füllen diese aus, dann fügen wir unser Formularfeld hinzu. Wir sind also überall dort, weil wir mehrere verschiedene Dinge haben,
an denen wir arbeiten müssen , um das zum Laufen zu bringen. Ich möchte hier auch ein Feld-Panel für den Dankeschö-Text einfügen. Danke SMS. Das wird ein Rich-Text-Feld-Panel sein. Und wir haben auch ein Feld Panel für eine von Adresse. Und wir haben noch einen für die Adresse, die wir nicht gesetzt haben. Aber das tut in der Tat, kommen Sie mit unserem abstrakten E-Mail-Formular. Also, wenn ich hier eine Definition sprang, ist
das der Quellcode. Wir haben eine zu adressieren eine von Adresse und ein Thema, das wir noch nicht hinzugefügt haben, so lassen Sie uns gehen und fügen Sie ein Feld Panel für das Thema. Nun, diesem
Zeitpunkt, zudiesem
Zeitpunkt,
wenn Sie diese Datei speichern, Ihre Terminals ausflippen, wird
es sagen, dass viele Dinge nicht importiert werden und wir werden dorthin kommen. Wir werden alle Importe ungefähr auf einmal machen. Lasst uns jetzt ein paar unserer Felder reparieren. Also wird dieses Intro tatsächlich eine Sache sein, die ein Rich-Text-Feld genannt wird. Ein richtiges Rich-Text-Feld. Darf das leer sein? Ja. Und welche Funktionen wollen wir aktivieren? Nun, das ist sehr ähnlich wie der Rich-Text-Block, den wir für unsere Stream-Felder hinzugefügt haben. Nur dieser befindet sich auf einem Seitenfeld. Wir werden fett ich nicht kursiv Link geordnete Liste und eine auf geordnete Liste aktivieren. Und unser Dankeschön Text wird auch sehr ähnlich sein. Also werden wir sagen, leer ist gleich wahr und die Funktionen werden Board Link bestellt Liste und eine Nord fehlerhafte Liste sein. Unser Kartenbild wird ein Fremdschlüssel sein, also machen wir Modelle Punkt-Fremdschlüssel und das ist, wie wir am Ende eine Wag Tail Bild auswählen. Warten Sie. Tell Bild ist eigentlich Pluralbilder Punktbild. Wir werden sagen, das kann absolut nein sein, wenn wir es wollten. Aber wenn Sie diese Seite erstellen, wenn Sie diese Seite bearbeiten, kann
dies nicht Nein sein. Also werden wir sagen, Blank ist falsch beim Löschen was passiert, wenn Sie dieses Bild löschen? Wir werden sagen, Modelle Punkt-Set Nr. Es wird also nicht diese Seite löschen. Es wird nur dieses Feld einstellen, um Hilfetext zu kennen. Nehmen wir an, das Bild wird korrupt Teoh ass etwas wie, Ich weiß nicht, 5 80 Pixel von 355 Pixel Gericht. Und der verwandte Name wird plus sein, weil wir diese verwandten Namen nicht brauchen. Also ist es in gewissem Sinne, wirf das weg. Die Karte. Du wirst immer Models sein. Starten Sie sind l Feld leer ist gleich wahr. Und lassen Sie uns etwas Hilfetext hinzufügen und sagen wir, dies ist optional. Wenn Sie hier einen Link angeben, wird
das Kartenbild zu einem Link. Das ist sowieso die Idee, und so haben wir jetzt alle möglichen Dinge, die wir importieren müssen. Ah, aber noch bevor wir das tun, haben
wir diese Formularfelder. Wir haben hier einige Formularfelder, die wir tatsächlich setzen müssen. Also kommen wir wieder hierher und lassen Sie uns eine neue Klasse für unsere Formularfelder erstellen. Nun, wir haben irgendwie schon mit einigen davon gearbeitet, also wird das etwas vertraut aussehen, aber es könnte sich auch ein wenig magisch anfühlen. Dieses Formularfeld wird also das abstrakte Formularfeld erben. Und hier drin wird
das ziemlich bizarr aussehen, aber es wird Page ist gleich elterlicher Schlüssel. Dies wird auf die Kontaktseite gehen, die der Klasse entspricht. Name beim Löschen ist gleich Modellen dot Cascade. Also werden wir jedes dieser Formularfelder löschen, wenn die Kontaktseiten gelöscht und verwandten Namen. Dies sind die wichtigen Formularfelder. Und der Grund, warum es wichtig ist, ist, dass dieser verwandte Name mit dem In-Line-Panel übereinstimmt. Ordnung, wenn wir uns ein Terminal ansehen, werden
wir uns hier mit vielen verschiedenen Importen auseinandersetzen müssen. Also werde ich versuchen, ein paar davon von meinem Kopf runter zu klappern, basierend auf, weißt
du, was wir auf der Seite sehen. Also brauchen wir hier ein abstraktes Formularfeld. Ich glaube, das kommt von der gleichen Stelle, die das abstrakte E-Mail-Formular tut. Lassen Sie uns eine Reihe von unseren Panels importieren. Nun, lassen Sie uns von wag tail dot Admin Dodd tun, dass es importiert. Wir haben ein Feld Panel verwendet. Ah, wir haben nicht in der Linie Panel verwendet werden, und ich denke, wir nur Penhall nicht Schmerzen. Uh, und ich denke, der einzige andere, den wir haben, ist ein Bildauswahlfeld. Aber das kommt von woanders. Wir werden sagen, wie Bilder darauf zeigen. Handler importieren Bildauswahlfeld. Wir brauchen einen elterlichen Schlüssel. Das kommt von Modell-Cluster aus Modell-Cluster-Punkt-Modelle importieren Elternschlüssel. Was haben wir sonst noch? Wir haben Rich-Text-Feld. Es ist ein neues für uns von Warten bis Punkt Kernpunktfelder. Das hier ist wirklich diese Luft, die wirklich beginnt, mein Gedächtnis hier auszudehnen. Ich denke, es ist Felder reich Textfeld? Ja, ich denke, seine Felder und ich denke, das könnte sein, es sieht so aus. Okay, also gehen wir weiter. Abbrechen oder Server. Nun, da das funktioniert Lassen Sie uns Python verwalten dot pie Machen Sie Migrationen, bis wir ein neues Modell für ein Formularfeld und ein neues Modell für unsere Kontaktseite haben. Lassen Sie uns tun, Python verwaltet ich migrieren und wir werden ihren Server auf Port 8000 erneut ausführen. Jetzt gehen wir zu unserer Seite ist hier. Lassen Sie uns versuchen, eine Kontaktseite zu erstellen. Wir haben eine Homepage hier auf einer untergeordneten Seite, und es erlaubt uns immer noch nur, die Flex-Seite zu tun. Das liegt daran, dass es auf ihrer Homepage einen von zwei Seitentypen erlaubt hat. Wir haben diese Ah, ein paar Lektionen vor, aber die Service-Listing-Seite und die Flex-Seite sind die Onley-Unterseite oder untergeordnete Seiten, die unter der Homepage leben dürfen. Es versucht also, eine Flex-Seite zu erstellen, da die Service-Listing-Seite eine maximale Anzahl von
eins hat und sie bereits vorhanden ist. Die einzige andere Option ist also eine Flex-Seite. Wir können Album sagen, Hey, fügen Sie die Kontaktseite hinzu, also gehe ich zurück und dann zu einer Kinderseite, und los geht's. Wir haben eine neue Option, eine neue Kontaktseite, und wir können sehen, dass dies wie eine normale Seite aussieht. Also rufen wir diesen Kontakt mit uns an. Ich möchte diese Schnecke ändern, um nur Schrägkontakt zu sein, weil ich mag, dass ein Intro Hallo sein wird . Willkommen zu meinem Intro-Text oder so. Langweilig mein Kartenbild. Ich habe keins, aber ich werde hier ein normales Bild verwenden. Eine Karte? - Sind Sie wo? L wird nur zu http Maps dot google dot com gehen und jetzt haben wir Feld gebildet, also ist das wirklich cool. Jetzt können wir unser eigenes benutzerdefiniertes Formular erstellen. Nun, eine Sache zu beachten ist, dass dies Django Fields nicht ersetzt. Dies ist ein Kontaktformular. Es ist nicht dazu gedacht, alle möglichen zusätzlichen Logik hinzuzufügen. Wenn also jemand dieses Formular ausfüllt, sollte
es nicht automatisch eine neue Wag Tail Seite erstellen. Das ist mehr oder weniger für das Django-Formularsystem. Nicht für die Wag Schwanzformen. Zumindest nicht für die Kontaktseite. Ah, wir haben einen Etiketten-Hilfe-Text. Ist das Feld erforderlich? Wir haben hier verschiedene Feldtypen. Ein Haufen von ihnen. In der nächsten Lektion lernen wir, wie man diese einschränkt. Ich glaube, Entscheidungen und einen Standardwert. Also lasst uns einfach weitermachen und ein paar von diesen hier hinzufügen. Also lassen Sie uns Ihren vollständigen Namen hinzufügen. Und das wird eine einzelne Textzeile sein und es ist erforderlich. Lassen Sie uns ein weiteres im Jahr hinzufügen. Das hier wird deine E-Mail-Adresse sein. Dies wird ein E-Mail-Feld sein. Es ist auch erforderlich. Und lassen Sie uns eine weitere hinzufügen, die hier heißt Nachricht. Und dieser wird ein mehrzeiliger Text sein. Danke, Texas wird es sein. Danke. Danke. Danke. Danke. Danke. Danke. Die von E-Mail-Adresse. Wer sendet diese E-Mail jetzt? Eine Sache, die Sie beachten sollten, ist, wenn Sie eine Wag Tail Website starten, Ihr weißer Calcit wird nicht standardmäßig E-Mails senden. Sie müssen SMTP einrichten oder einen Dienst wie Poststempel verwenden,
was ich denke, die Website ist Poststempel app dot com oder so etwas wie Send Grid oder ah, aws hat einen Service namens SCS. So etwas. Also 1/3 Party-Service, um E-Mails zu senden, das ist in der Regel der einfachste Weg. Also die von Adresse hier wird Caleb auf lernen Weg sein, sagen Punkt com. Die Adresse wird auch Caleb bei Learn wag tail dot com sein. Das ist, an das wir die E-Mail senden werden. Also wird im Grunde so aussehen, als würde ich mich selbst per E-Mail schicken. Aber manchmal funktionieren Kontaktformulare so. Oder ich könnte eine E-Mail an jemand anderen senden und es sieht so aus, als
ob es von meiner E-Mail-Adresse kommt . Und das Thema wird Kontaktformulareinreichung sein, weil ich mich nicht kreativ
mit diesem Namen fühle . Ah, Sie werden es auch bemerken, bevor wir sparen. Wir können eine Vorschau dieser Seite anzeigen oder eine Vorschau der Zielseite anzeigen. Das kommen wir auch in ein bisschen. Kühle Bohnen. Diese Seite wurde gespeichert. Und wenn wir live sehen, werden
wir sehen, Yeah, natürlich, Vorlage existiert nicht. Wir wussten, dass das kommt. Wir haben keine Kontaktseite erstellt. Wir müssen diese Vorlage jetzt erstellen, so werde ich in Rocketman-Vorlagen gehen und einen neuen Abschnitt in hier namens Kontakt
und Kontakt Seite dot h e mails erstellen . Wie es heißt, wird dies basierend auf HTML erweitern, genau wie alle unsere anderen Seiten, die geladen werden. Was für ein Zeug werden wir brauchen? Nun, wir wissen es noch nicht. Also werde ich das tatsächlich auskommentieren,
tatsächlich, tatsächlich, löschen Sie es
einfach. Bringen wir das zurück. Ach, Block. Lassen Sie uns einen neuen Block für den Inhalt erstellen. Und nur um sicherzustellen, dass dies bald funktioniert H ein Hallo von Kontakt Seite. Ich habe nichts dagegen, dass es eine kleine Art von, wenn ihre Ursache wir werfen es weg hoch von Kontaktseite. Jetzt wissen wir, dass wir hier einen Rich-Text haben, denn wenn wir zu unserem Brunnen gehen, lassen Sie uns die Startseite eins schließen. Aber wenn wir auf unsere Kontaktseite gehen nö, dieser Quellcode, gehen
wir zu unserer Kontaktseite. Wir haben Rich-Text-Feld, also wissen wir, dass wir das anzeigen müssen. Laden wir also Waittil Core-Tags und das Feld wird Intro sein. Also werden wir einfach anzeigen, dass Seite, die Intro tun und den
Rich-Text-Filter darauf werfen wird. Hallo. Willkommen bei Intro-Text. Das ist, was ich auf der Seite. Nun, was ich tun werde, ist, weil es eine Reihe von HTML auf dieser Seite gibt und ich glaube nicht, dass Sie daran interessiert sind, mich nur zu beobachten, wie HTML auf Emmett aus ihrem Arm wie tive, Was auch immer. Ich werde auf meinen Code schreiben. Ich bin in einem Schwarz auf dem Bildschirm und komme zurück, wenn ich fertig bin, und wir füllen alle fehlenden Teile zusammen. In Ordnung, also habe ich gerade einen Haufen HTML geschrieben und wir werden die fehlenden Teile zusammen füllen . Also, was diese Vorlage jetzt aussehen wird, ist es einen Titel, einige Intro-Text, die wir ein Bild benötigen, kann ein Link zu einer Karte sein, Sie ero, und wir brauchen unser Formular tatsächlich zu zeigen und richtig zu rendern und senden. Also der erste Teil ziemlich einfach. Wir haben dies vor dem Seiten-Punkt-Titel und unserem Rich-Text getan. Wir haben das buchstäblich erst vor ein paar Augenblicken getan. Wir könnten Page Dot Intro Pipe Rich-Text tun, und das ist der Rich-Text-Filter, der von Wait till court Tags kommt. Als Nächstes. Wir haben hier ein Bild, und dieses Bild wird 5 80 mal 3 35 Lassen Sie uns voran gehen und das Bild-Tag verwenden. Und wenn dieses Bild-Tag nicht für Sie funktioniert, liegt das daran, dass Sie Wag Tail Images Tags laden müssen. Also werden wir die Seite laden. Wie haben wir das Bild genannt? Wir nannten es Kartenbild. Wir werden sagen,,
Fühlen Sie, dass mit 580 von 3 35 wie ich m G. Lassen Sie uns voran gehen und ersetzen Sie diesen Wert hier in. Ich bin g dot u r l. Wir haben diese Anzahl von Malen bereits gemacht. Fügen Sie immer das Salz hinzu und schauen wir uns an, wie ihre Seite derzeit aussieht. Alles klar, sieh dir das an. Das fängt an, sich jetzt ziemlich schön zusammenzufinden. Wir müssen unser Formular hinzufügen. Es gibt viele verschiedene Möglichkeiten, dies zu tun. Die Art, wie ich dies mache, ist eine Art Schleife durch die gesamte Form. Felder nacheinander identifizieren, was sie sind, und stylen meine Seite je nach dem,
was das Feld ist, anders . Wenn ich
zum Beispielalle meine Formularfelder durchlaufe und einen Textbereich habe,möchte
ich vielleicht etwas anderes im Vergleich zu einem regulären Eingabefeld hinzufügen. zum Beispiel Wenn ich
zum Beispielalle meine Formularfelder durchlaufe und einen Textbereich habe, Aber als Abkürzung für jetzt können
wir Form Punkt tun, wie Sie l Was ich hier habe, ist auch eine Formularmethode gleich ist, um die
Aktion zu posten , wo l Es ist nur diese Seite, die auf sich selbst einreichen wird. Immer, immer, immer. Fügen Sie Ihren CS R F-Token hinzu. Dies ist Ihre standortübergreifende Anfrage. Fälschungszeichen. Das bedeutet im Grunde, dass du bist, wer du bist, und jemand versucht nicht so zu tun, als wäre jemand anderes. Das wird nicht verhindern, dass Hintern dieses Kontaktformulars senden, aber es wird einige böswillige Menschen verhindern. Und dann werden wir sagen, Form Punkt wie Sie. Nun, nur eine Art Drucken Sie das gesamte Formular in Form einer Liste aus, und ich glaube, es wird nicht wirklich eine Liste für uns erstellen. Also müssen wir UL hinzufügen. Okay, gehen
wir weiter und erfrischen uns. Sieh dir das an. Ihr vollständiger Name, Ihre E-Mail und Ihre Nachricht. Das ist es, was wir geschrieben haben. Das haben wir auf ihrer Seite hinzugefügt. Also, wenn wir unsere Kontaktseite bearbeiten, gehen Sie zu ihrem Formular, Felder Ihren vollständigen Namen, wir haben E-Mail in hier und wir haben eine Nachricht, die ein Textfeld ist. Und sicher genug, all diese Show von wie erwartet im nächsten Video werden wir weiter mit diesem. Wir werden dies ein bisschen schöner aussehen lassen, und wenn Sie Ihre Seite einreichen, wird
es eine Landing Page geben, die derzeit nicht existiert,
also werden wir das auch hinzufügen.
35. Kontaktformulare Teil 2: verlassen von der letzten Lektion. Wir haben eine Kontaktseite erstellt, und wir arbeiten daran, dieses Formular ein wenig schöner aussehen zu lassen. Und dann, wenn wir Editor-Seite, wir wollen auch, dass Landing Page Shop, die derzeit nicht. Wir haben ihm eine Vorlage gegeben, die nicht existiert, also müssen wir sicherstellen, dass das auch funktioniert. Ich mag es, alle diese Felder zu durchlaufen und ist eine sehr mühsame Aufgabe. So können Sie das tatsächlich nur mit CSS aufpeppen, was ich denke, das ist der empfohlene Weg, dies zu tun. Aber ich mag auch etwas mehr Gewürze mit einem Tool namens Widget Tweaks. Also werde ich hier zu meinem Server gehen,
drücken, drücken, abbrechen und tun Pip installieren Django Widget. Zaubern Sie es richtig, was es zwickt. Und diese Beleidigung Version 1.4 Punkt fünf. Lasst uns weitermachen. Führen Sie meinen Server erneut aus. Sie können Ihren Server betreiben, auf jeden Fall Ihren Server ausführen und lassen Sie uns weitermachen und dies unseren Anforderungen hinzufügen. Also haben wir hier Django-Erweiterungen, weil wir Django-Erweiterungen in einer früheren
Klasse installieren . Wenn Sie das nicht von der früheren Klasse hinzugefügt haben. Stellen Sie sicher, dass Sie das haben, weil Sie es in diesem Projekt verwenden und wir werden zu Django Widget Tweaks
Version 1.4 Punkt fünf hinzufügen . Und wenn Sie jemals unsicher sind, welche Version Sie verwenden, können
Sie immer Pip Show tun und dann den Paketnamen eingeben. Also Django Widget Tweaks und das wird mir sagen, dass die Person ist, die aus dieser
E-Mail-Adresse gemacht . Das ist der Name der Person und die Version ist 1.4 Punkt fünf. Speichern Sie diese Datei, schließen Sie sie, und lassen Sie uns gehen und Widget Wochen in unserer App installieren. Ich werfe das unten, weil es 1/3 Party ist. Also Widget Tweaks und lassen Sie uns unser Terminal überprüfen. Stellen Sie sicher, dass sich nichts beschwerte. Es gibt keine Beschwerden. Das sieht gut aus. Und jetzt werde ich zu Dio gehen, ist, dass ich diese spezielle Lektion bereits vorgeschrieben habe nur weil es eine Menge daran gibt. Und wenn wir hier zusammen bleiben und darüber reden, jedes einzelne
Formularfeld durchlaufen zu können und all die verschiedenen Werte zu erhalten, die
wir gehen, werden wir für mehrere Stunden in dieser Lektion stecken bleiben, und ich möchte nicht, dass Sie sich langweilen Tod und müssen hier für mehrere Stunden mit mir stecken bleiben. Also, was ich zu Dio gehe, ist Einfügen in meinen Code und wir werden durch ihn Zeile für Zeile gehen. Okay, Also habe ich hier gerade einen Haufen Code eingefügt, bevor wir etwas tun, müssen
wir sicherstellen, dass Widget-Tweaks erlaubt sind, was es ändert, die Datei sein wird, die wir in diese Vorlage laden werden. Und lasst uns voran gehen und dieser Seite einen kurzen kleinen Scheck geben. Sehen Sie, was hier passiert ist, Okay, Fehlende eine Aktualisierung meiner Seite. Und alles, was war, war, dass ich ein Ende vermisste, wenn da drin ist, so dass ich dich nicht dazu gebracht habe, das zu beobachten ,
weil ich ungefähr fünf Minuten dauerte. Eigentlich finden Sie es in diesem Durcheinander von Code s. So ist dies ein guter Kandidat, um Ihren Code in verschiedene Include-Dateien aufzuteilen. Aber was ich hier getan habe, war, dass ich Widgetwochen hinzugefügt habe. Also haben wir pip Widget Wochen installiert, Jenga Widget Wochen und ah, wir müssen jetzt unser Formular hier hinzufügen. Also unser Formular wird für jedes Feld im Formular sagen, eine neue Zeile
erstellen und sie würden sagen, ob dieser Feld-Widget-Typ ein Textbereich ist, zeigen einige Textbereichsmaterial. Also im Textbereich haben wir eine Formulargruppe und wir haben ein Label in Ihrem Also dies tut das Feld Punkt i D für Label und dann das eigentliche Label selbst. Und wir werden sagen, wenn es erforderlich ist, werfen Sie in Klammern das Wort erforderlich. Dann werden wir Widget-Wochen verwenden, rendern Feld Template-Tag gehen, um das bestimmte Feld selbst zu rendern. Welche Klassen es entscheidet, dass
es braucht, es wird es dort hinzufügen. Wir werden auch Formular-Steuerelement und Reihen von sechs hinzufügen, und der Platzhalter wird sein, was auch immer das Feldlabel jetzt ist, Dies ist wieder eine sehr, sehr manuelle Art, dies zu tun. Aber das erlaubt mir, Dinge wie Reihen von sechs oder Klassenformular-Steuerung hinzuzufügen, so dass es
mit Boots Drab übereinstimmt . Sie können all dies auch mit CSS tun, so dass Sie nicht wirklich in die Nitty Gritty kommen müssen. Wenn Sie es einfach auf die CSS-Weise tun und einen Ihrer Stile überschreiben können. Das ist definitiv einfacher, aber das ist der manuelle Weg. Wenn Sie jemals daran interessiert sind, dies zu tun, wenn es irgendwelche Feldfehler für dieses bestimmte Feld gibt, werden
wir einen kleinen Text zeigen und wir werden jeden der
Feldfehler durchlaufen und dann jede Feldluft mit einem Zeilenumbruch anzeigen nach ihm. Und dann, wenn es hier einen Hilfetext gibt. Wir werden auch das Feld Punkt Hilfe Steuer zeigen. Wir werden dafür sorgen, dass es sicher ist, damit du hier kühn oder einen Tallix da drinnen kannst. Dann sagen wir, Wenn der Feldtyp so ziemlich jeder andere Feldtyp ist und die Feldbezeichnung nicht leer ist, werden
wir wirklich nur fast dasselbe tun. Aber wir werden das Feld mit einer Formular-Steuerklasse lesen, die wir vorher gemacht haben, aber diese hat keine sechs Zeilen. Dies hat nur, gut eine Zeile, weil es ein Eingabefeld irgendeiner Vielfalt sein wird und im Grunde dasselbe immer und immer wieder macht . Nun, Der Grund, warum ich nach der Feldbeschriftung suche und um zu sehen,
ob vorhanden oder nicht, ist, weil , wenn
wir jemals Google wieder dazu hinzugefügt haben, wir müssen das irgendwie erkennen, und das ist eine Möglichkeit, es zu erkennen. Also nochmal, ich werde das alles nicht in die Tiefe gehen. Aber das ist der sehr manuelle Weg. Also in der Zukunft, wenn Sie je mögen oh, hey, ich brauche Teoh, schleife durch alle Feldfehler oder schleife durch alle Felder und schlaufe dann durch all diese Lüfte. Ja, zögern Sie nicht, einen Teil dieses Codes hier drin zu stehlen, denn, hey, ich habe die Arbeit bereits erledigt. beide müssen es nicht tun. Also, wenn wir zurück zu einer Seite gehen und uns ein bisschen eine Aktualisierung hier geben, können
wir sehen, dass sagt, Sie sind voller Name. Es ist erforderlich, dass Ihre E-Mail erforderlich ist und Ihre Nachricht erforderlich ist. Nun, wenn ich das fühle, wird
mein vollständiger Name Caleb sein und meine vollständige E-Mail wird wegen Gelernten töten. Warte bis Dot com. Ich habe Alarm. Wenn eine Nachricht hier drin ist, werde
ich das jetzt einreichen. Nun, während dies unterbreitet, wird
es zwei Dinge passieren. Dies war die 1. 1 es wird uns zu unserer Kontakt-Zielseite bringen, aber unsere Sie, wo ich mich nicht geändert hat, es ist nur mit einer anderen Vorlage jetzt. Und die andere Sache ist, wenn wir in unserem Terminal schauen, können
wir tatsächlich sehen, dass versucht, eine E-Mail zu senden, Seiner sagte. Mein vollständiger Name ist Caleb. Die E-Mail-Adresse, die ich in das Formular ausgefüllt habe, war Caleb. Es lernte warten bis dot com und die Nachricht war 50 Worte warm ipsum. Das ist genau das, was ich eingereicht habe. Nun, das ist ziemlich nett. Aber auch, wenn wir zurück zu unserer Wag Tail Anzeige gehen, warten
Männer nur darauf, dass sie geladen wird. Wir haben jetzt einen kleinen Abschnitt in Ihren aufgerufenen Formularen, und was wirklich schön daran ist, dass jedes Mal, wenn jemand Ihr Formular auf der
Kontakt-US-Seite einreicht , Sie das Einreichungsdatum und die verschiedenen Felder hier erhalten. Sie können auch alle diese auswählen. Sie können sie in einem C S V herunterladen, sogar Ihre ausgewählten Nachrichten löschen und sie filtern. Also, jetzt haben Sie einen Platz, um die E-Mail-Einsendungen zu speichern, weil ,
hey, weißt
du was? Manchmal gehen e-Mails manchmal im Internet verloren. Das ist nur eine Tatsache des Lebens. Es passiert von Zeit zu Zeit. Und wenn das jemals passiert, haben
Sie eine Backup-E-Mail, die Sie hier und in Zukunft senden. Wenn Sie jemals ein anderes Kontaktformular hinzugefügt haben, werden
wir nicht für dieses Projekt, da wir eine maximale Anzahl von eins auf dieser Seite haben. Aber wenn Sie jemals einen zweiten Kontakt für angerufen kontaktieren Sie uns über unsere Dienstleistungen hinzugefügt, dieser Titel hier wäre direkt unter hier. Es wäre eine zweite Zeile,
würde sagen, würde sagen, kontaktieren Sie uns Wählerdienste, weil ich der Seitentitel und immer noch eine Kontaktseite sein würde. Und was auch immer Ihre Formularfelder sind
, diese bestimmte Seite würde hier angezeigt. Jetzt haben wir noch eine Sache zu tun. Wir müssen diese Kontaktseite Ausleihe hinzufügen. Also, was ich tun werde, ist es getan Ah, diese Kontaktseite, ich bin wirklich nur gehen, um dies als Kontaktseite zu speichern Landing der Titel muss nicht ändern, aber ich kann eine Menge von diesem Zeug hier loswerden. Und ich glaube nicht, dass ich das wirklich brauche. Und ich brauche das Formular definitiv nicht, weil wir uns im Grunde nur bedanken. Und jetzt diese Seite, anstatt das Intro zu sagen, muss sagen, um Ihnen zu danken. Text auf Seite, die. Danke. Text, der Rich-Text. Wir brauchen unsere Bilder da drin nicht. Wir brauchen keine Widget-Tweets, aber wir brauchen unsere Kern-Tags für den Rich-Text-Filter. Okay, gehen wir weiter. Speichern Sie das. Geben Sie diesem eine Aktualisierung. Nein, das will
ich nicht nochmal senden. Also werde ich nicht auffrischen. Aber was ich tun werde, ist zu dieser Kontaktseite zu gehen und einfach eine Vorschau darauf. Vorschau Landing Page In der realen es sagt, kontaktieren Sie uns. Danke. Danke. Danke. Danke. Danke. Oder, weißt
du, was auch immer. So ein Dankeschön Text, den Sie dort einfügen möchten. Wahrscheinlich etwas passendereres als Danke. Danke. Danke. Danke. Danke. Und das ist der sehr lange Weg. Die lange gewickelte Erklärung, wie man eine Kontaktseite mit meinem Schwanz zu erstellen. Um ehrlich zu sein, schreibe
ich das nicht jedes Mal aus. Um ehrlich zu sein, schreibe Ich habe meinen Quellcode hier und auch auf get hub dot com slash Beschichtung für alle Slash gelernt dash, wag tail. Und Sie können diesen Code buchstäblich kopieren. Ich glaube nicht, dass zu viele Leute tatsächlich alle Kontaktformular-Sachen
manuell ausschreiben . Wenn du es tust. He, Lob. Aber das ist nur ein bisschen zu viel Arbeit für mich. Also gehe ich normalerweise, um Route zu kopieren und einzufügen und ändere einfach alles, was ich hier ändern muss. Also, wenn Sie das haben und laufen,
fühlen Sie sich frei, entweder mit ihm zu experimentieren. Versuchen Sie, es zu brechen, wenn Sie Worst Case-Szenario wollen, löschen
Sie einfach diese App. Führen Sie Migrationen aus, erstellt die App neu, führen Sie Migrationen erneut aus und starten Sie eine neue oder statt zu experimentieren. Wenn Sie völlig müde von Kontaktformularen wie ich sind, gehen
wir zur nächsten Lektion und erfahren Sie mehr über Kontaktformulare, und dann sind wir fertig.
36. Auswahlen für die Kontaktformularen: Alles klar. Es gibt nur eine weitere Lektion über Kontaktformulare hier, und das ist ein ziemlich häufiges Thema. Zumindest bekomme ich diese Frage ziemlich oft und es kommt in vielen Kundenfragen auf, eigentlich, ist
eigentlich,wie begrenzen ich diese jetzt, wenn Sie mit einem professionellen Design arbeiten? Vielleicht hat ein Designer ein Design für Sie gemacht? Wahrscheinlich haben sie nicht darüber nachgedacht, was Ah Datumszeitfeld ein Datum Optionsfelder, mehrere Auswahl-Dropdown-Kontrollkästchen. Jack, du bist L-Nummer, E-Mail. Mehrzeilige und einzelne liegende Texte sollen alle so aussehen, wie die Chancen sind, sagten
sie. Hier ist ein einzeiliger Text, mehrzeiliger Text. Hier ist Ah, Check-Box an, vielleicht ein Drop-down. Und deshalb müssen wir einige davon einschränken, weil wir nicht alle benutzen werden . Aber wie machen wir das jetzt, in Warten, bis es eigentlich nicht so schwer zu tun ist, aber es ist nicht eine super einfache Funktion, um irgendwie herauszufinden, entweder. Also in meinem Code, hier bin ich im Kontaktschrägmodell Stop I. Ich habe ein Formularfeld hier, das als abstraktes Formularfeld bezeichnet wird. Jetzt bin ich tatsächlich Änderungen an benutzerdefinierten im abstrakten Formularfeld, und ich werde eine neue Klasse namens Benutzerdefiniertes abstraktes Formularfeld erstellen. Und dieser hier wird nur ein abstraktes Formularfeld selbst sein. Also wirklich, wir haben die Klasse gerade nach unten verschoben. Wir werden sagen, dass dieser einen Feldtyp von HR-Feld hat und weil Sie in Django kein Auswahlfeld
haben, haben
Sie ein Char-Feld und Sie können es Auswahlmöglichkeiten geben. Wir gehen einfach zu Ihnen sagen, dies ist ein Diagrammfeld mit Auswahlmöglichkeiten. Lassen Sie uns einen ausführlichen Namen für die meisten Namen geben ist gleich Feldtyp. Die maximale Länge wird irgendwo um 16 Zeichen sein, und die Auswahl wird Formularfeldauswahl sein. Und für diesen hier, lasst uns das einfach aufrühren und die Klasse sagen und das auch nach oben bewegen und das größer machen. Die Meta-Klasse wird eine abstrakte Klasse sein. Das ist wahre Sortierreihenfolge. Okay, also fehlt uns noch eine Sache hier drin. Wir vermissen nur die Formularfeld-Auswahl. Ich kann Ihnen die Formularfeld-Auswahlmöglichkeiten geben, oder wir können mit der rechten Maustaste auf Ihre Definition klicken und das ist wirklich nur die Erkundung des Warten bis Quellcodes und wir können hier sehen. Wir haben einen Feldtyp. Sieh dir das an. Das abstrakte Formularfeld. Wir haben einen Feldtyp. Es ist der Einzige, den wir überschreiben. Wir haben hier auch Feldentscheidungen gebildet. Wir haben auch Panels und so. Wenn wir jemals benutzerdefinierte Felder hinzufügen wollten, könnten
wir das völlig tun. Das ist ziemlich nett. werden wir nicht hineinkommen. Wir wollen nur herausfinden, was diese Form, Feldauswahl, was sie sind. Lasst uns zu dieser Definition springen. Und wir haben alle diese Formular-Feld-Entscheidungen. Also werde ich all diese Kopien packen und sie in meine Akte einfügen und damit wir sehen können, dass wir eine einzeilige,
mehrzeilige E-Mail-Nummer haben. und sie in meine Akte einfügen und damit wir sehen können, dass wir eine einzeilige,
mehrzeilige E-Mail-Nummer haben Du bist draußen. Kontrollkästchen Kontrollkästchen Kontrollkästchen,
Dropdown, Dropdown, Multi wählen Radio-Datum tagsüber und ausgeblendet. Nun, lassen Sie uns die loswerden, die wir nicht auf dieser Website verwenden werden. Jetzt. Dies kann auf Ihrer Website anders sein, aber auf dieser speziellen Website, die ich erstellt habe, brauche
ich keine Datumsfelder. Ich brauche kein Funkgerät. Ich brauche kein Multi-Select-Dropdown-Menü. Vielleicht, aber nein. Kontrollkästchen nicht aktivieren. Vielleicht du, Earl. Ah, Zahlenfeld. Ich brauche kein Zahlenfeld. Ich brauche wirklich nur eine Zeile, mehrzeilige E-Mail und Sie sind alle und das ist für die Übersetzung Ihres Textes. Und wenn wir zu dieser regulären Seite zurückkehren, können
wir sehen, dass sie hier importiert wird. Also werde ich den Import nehmen und auch in meine Seite importiert. Also von django dot sagt man, dass Übersetzungsimport, man bekommt Text faul als Unterstrich. Okay, gehen wir weiter und retten das. Und v Bo Name ist keine Sache. Deswegen überprüfen wir ihr Terminal. Es ist ausführlicher Name, um ihren Server erneut auszuführen. Okay, das sieht in Ordnung aus. Gehen wir voran und rennen. Python hat es geschafft. Ich mache Migrationen, weil es immer gut ist zu überprüfen, ob Sie Migrationen haben. Und sicher genug, wir haben den Feldtyp hier geändert. Python hat einen Kuchen verwaltet, migriert und lassen Sie uns ihren Server erneut ausführen. Und jetzt, wenn wir unsere Seite aktualisieren, anstatt all dieser Optionen, werden
wir die regelmäßigen Entscheidungen haben, die wir definiert haben. Wir haben im Grunde alle Entscheidungen getroffen, die uns das Bein geben wird, und wir sagten Nein, lassen Sie uns das auf nur vier verschiedene Arten beschränken. Nichts in ihrem Tempel wird sich ändern, weil wir diese vier schon benutzen. Und wenn Sie hier ein neues Feld hinzufügen, wird
dieser neue Feldtyp auch einzeilige,
mehrzeilige E-Mail oder ein U R L-Feld sein . Und das ist das. diese Weise beschränken wir die Auswahl des Formularfelds.
37. .webp: Wempe ist ein Bildtyp, den Google seit ein paar Jahren vorantreibt. Es ist anscheinend ein verlustfreies Bildformat mit hoher Komprimierung. Nun ist die Sache, es wird nicht von jedem einzelnen Browser der Welt unterstützt, nicht wie die Standard-J. Peg oder eine PNG-Datei, aber ich bin sicher, dass der Sport irgendwann dorthin kommt. Das Schöne daran ist, warten Sie bis 2.7 und vorwärts. Es unterstützt Web P-Bilder out of the box, also lasst uns voran gehen. Lassen Sie uns einen Strom Felder öffnen. Gehen wir zu Flexmodellen. Wir haben ein großes Bild in hier, und wir werden diese Vorlage jetzt bearbeiten, um ein Web P Bild zu erstellen ist super, super einfach. Wirklich. Alles, was Sie tun müssen, ist nach Jahr, Ihre Bildmaße, die Sie zu beschneiden oder füllen möchten, auch. Sie setzen wirklich nur Format Bindestrich Webby. Das war's. Und es wird ein Web P-Bild für Sie erstellen. Es wird es an die Bildvariable signieren, so dass Sie nicht wirklich etwas anderes ändern müssen Now. Das werde ich nicht tun. Ich bin tatsächlich kopieren dies über und zu formatieren, wenn P als Wempe Bild und wir werden uns
diese u R L aussehen So ging das Bild zwielig. Nun, jetzt weiß ich nur zufällig, dass die Über uns Seite bereits ein Bild darauf hat. Also werde ich diese Seite aktualisieren und wir können sehen, dass es ein Web P U R L für uns produziert hat, und ich werde zu lokalen Host 8000 gehen. Und da ist es. Dies ist unser Web P Bild. Es sieht, ehrlich gesagt, genau so aus wie unser reguläres JPEG-Bild. Nun, wenn Sie Ihr Web, das Bild im Allgemeinen, Ich glaube, wir setzen sie in das Bild-Tag und Sie fügen eine Quelle. Also hast du hier eine Quelle. Quellsatz ist gleich, und dann tun Sie Ihr Web P-Bild. Das ist das Falsche mit dem Bild, das du bist. L Band ist gleich Bild Schrägstrich Web P, und das war's. Jetzt haben wir also ein Bild-Tag, das versucht, Web P zu verwenden und fällt auf ein normales Bild zurück. Nun, als Experiment, werde
ich den Quellcode hier ansehen, und ich kann sehen, dass es Web-P-Bild gibt und es auch ein JPEG-Bild gibt. Also werde ich diese Dateien herunterladen. In Ordnung, also habe ich diese Dateien heruntergeladen, und hier können wir tatsächlich sehen. Eine ist das Format Web P, und die andere ist nur ein normaler J-PEG. Das Web P ist um mehr als 50% kleiner als das JPEG. Unsere Web P Bilder nur 32 Kilobyte, und der J peg ist 81 Kilobyte. Beides sind ziemlich kleine Bilder, , aber trotzdem ist es immer noch deutlich kleiner. Es gibt also einige ziemlich große Leistungssteigerungen, vor allem mit schweren bildbasierten Websites. Und als eine kurze Zusammenfassung, Wirklich,
alles, was Sie tun müssen, ist Format dash Web P hinter Ihren Bilddimensionen hinzuzufügen, und das war's. Für den Rest dieses Projekts können
Sie also den ganzen anderen Quellcode durchlaufen und dort auch Web P hinzufügen.
38. Andere Wege zur Learn: Lassen Sie uns über ein paar Tricks sprechen, um Wag Tail wirklich schnell zu lernen. Also hast du diesen ganzen Kurs durchgemacht und tolle Arbeit, diesen ganzen
Kurs durchzustehen , übrigens, denn es gibt eine Menge Inhalt, den du durchmachen musst. Aber es gibt einen schnelleren Weg. Das ist die Art, die ich gelernt habe. Und es ist die Art und Weise, wie viele andere Leute, die ich gehört habe, sie haben es geschafft, Wag,
Schwanz und Jangle sehr,
sehrschnell zu lernen Schwanz und Jangle sehr,
sehr . Erste Dinge zuerst. Sie haben die Docks, die Docks, Sie wissen, dass die Hunde ziemlich gut sind, aber wie jede Dokumentation wird
es Sie wirklich nur so weit bringen. Bis Sie tatsächlich einen Teil des Codes erleben, Sie sich nicht wirklich viel davon auswendig lernen. Und ähnlich wie in diesem Kurs gibt es nur so viele Inhalte, die Menschen wie ich selbst Hilfe generieren können. Du lernst wirklich alles. , Die Art und Weise,wie ich gelernt habe, war, indem ich in den Quellcode eintauche, und das kannst du mit deinem Editor tun. Aber ich habe es gerade von Get Hub heruntergeladen. Ich klone nur das Repo und zum Beispiel ging
ich zu Blöcken, die Kuchen und ich klicke einfach mit der rechten Maustaste, gehe zur Definition oder finde den Code direkt innerhalb des Get-Hub-Repositorys. Und dann würde ich nur sehen, was all diese Luft aus seinem Block zusammengesetzt hat. Also, was ist ein Block? Und dann gehe ich hier rein und dann würde ich den Code lesen. Und wenn ich nicht wüsste, was medizinischer Hintern gleich ist, würde
ich schnell weitermachen. Gib das Ah, kleiner Google. In den meisten Fällen ist
alles sehr,
sehr klein und modular und leicht zu erlernen. Aber wie ein Block hat
jeder Block einen Namen. Jeder Block hat einen Erstellungszähler. Nun, das ist interessant. Es kommt mit einer Standardklasse ohne Label. Das Standardsymbol für jeden Block für jeden markierten Block ist ein Platzhalter hat einen Klassennamen. Wir haben uns noch nicht einmal den Klassennamen angesehen. Wir haben auch nicht einmal in die Gruppe geschaut. sind also zwei Dinge, die Sie zu jedem einzelnen geschlagenen Block hinzufügen können. Nun, das könnte hier etwas übertrieben sein, also gehen wir zu einem einfacheren Beispiel. Gehen wir zur Startseite und ich werde nur auf die Seite selbst schauen. Die Seite Klasse, das ist in meiner Rakete, Mann. ven von Live-Python 3.7. Wie Pakete Wag Tail Core-Modelle dot Pie und die Seitenklasse, kann
ich sehen, dass die Seitenklasse besteht aus einem abstrakten Seitenindex Punkt-Index und einem
Cluster-Kräutermodell . Ich kann auch sehen, dass jede Seite einen Titel hat. Ein Entwurfstitel, ein Slug-Inhaltstyp
, der ein Fremdschlüssel für einen Inhalt ist. Ein Live-Status hat unveröffentlichte Änderungen. Ein UL-Pfad, ein Besitzer CEO-Titel zeigt Menüs Standard zeigt Manu Suchbeschreibung All das Zeug und das geht einfach weiter und weiter. Und dann können wir alle Standard-Suchfelder sehen, so dass wir bei unseren eigenen Suchfeldern können, wenn wir wollten. Das ist nicht wirklich eine Sache, die wir in diesem Kurs in Ah
getaucht haben. Aber da sind sie. Suchfeld, damit Sie immer eigene Felder zu dieser Liste von Suchfeldern hinzufügen können. Max. Anzahl Wir haben über die maximale Anzahl gesprochen. Wir haben sehr leicht über Max Count pro Elternteil gesprochen. Hier sind Panels, Inhaltsfenster, Heraufstufen von Panels und Einstellungsfenster standardmäßig. Da ist nichts drin. Dann ist da das drin. Nun, was tut das eigentlich, so ist dies eine wirklich, wirklich gute Art zu lernen, wie Weg sagen funktioniert jetzt. Zugegeben, es gibt eine Menge Mantel. Wag Tail wurde seit mehreren Jahren aktiv entwickelt, so dass es eine Menge Code gibt, um durchzukommen, und das ist nicht für jedermann. Einige andere Leute experimentieren gerne, wie ich selbst. Ich experimentiere gerne. Ich komme gerne in den Code und sehe, was verfügbar ist, anstatt nur den
Quellcode ständig zu betrachten . Sie als Quellcode zu lesen ist hilfreich. Aber wieder, ich werde meine Hände nicht schmutzig machen, und ich kann nicht immer in meinem Kopf sehen, was die Dinge tun. Was ich also gerne mache, ist Python, das ich Shell Plus verwaltet habe. Jetzt kommt dies mit einem anderen Paket, so dass dies nicht mit normaler Shell kommt. Also kommt Django immer mit Shell, damit wir hier eine normale Schale sehen
können, und es ist können ziemlich langweilig. Aber Shell plus ist eine andere Sache, die mit einem anderen Paket kommt. Also lasst uns schnell installieren. Diese Stunde wird schnell nachschlagen Django installieren Shell Plus, und das kommt mit Django-Erweiterungen, und alles, was wir tun müssen, ist diesen Befehl Ihren Pip auszuführen, Django-Erweiterungen zu
installieren und dann in meinem Projekt, weil es jangle basiert. Wir wollen laufen oder eher hinzufügen, Django-Unterstriche Erweiterungen. Öffnen wir unser Terminal. Ich habe das gerade aufgeklärt. Lass uns Shell laufen, plus noch einmal und los geht's. Wir sind jetzt in Shell Plus. Der Unterschied ist, dass Sie alle Bildschirme sehen, die automatisch hier für Sie geladen wird , so dass Sie sich keine Sorgen machen müssen, wie das Importieren von Wag Tail Seiten oder Websites oder Tags oder irgendetwas. Es steht Ihnen nur zur Verfügung. So zum Beispiel jede einzelne Wartezeit bis Seite erhalten, können
wir
zum Beispiel jede einzelne Wartezeit bis Seite erhalten,indem wir Seiten-Punkt-Objekte Punkt alle kleben, und das gibt uns einen Abfragesatz. Wir können sehen. Das ist eine Seitenfalte aus all den verschiedenen Seiten, einschließlich unserer Route. Aber gehen wir weiter und lassen Sie uns unsere Homepage holen. Also Seite Home Variable Startseite ist gleich Startseite Punkt Objekte Punkt zuerst, wir haben nur eine Seite, so dass wir nur gehen, um die 1. 1 zu bekommen und wir haben eine Homepage in Ihrem dann mache ich Homepage Punkt und ich habe Tab je nach Betrieb -System, oder Sie müssen terminell möglicherweise zweimal auf Tab drücken. Aber sieh dir all diese verschiedenen Optionen an, und so habe ich es genossen zu lernen, was alles tut. So gibt es Home-Punkt nicht. Was wir wissen, das kommt von Django Home Dot Körper. Das sind unsere Bachfelder. So können wir jetzt gehen. Wie sehen die Streamfelder aus? Schau dir diesen Heimpunkt-Körperpunkt an. Was würde uns sein Körper sonst noch geben? Count Index Rod Text ist faul Stream Feld, untergeordnete Stream, Block Stream Daten als Block rendern. Wir haben alle möglichen Dinge hier drin. Lassen Sie uns zählen und es ist keine Methode, Ordnung, wir haben Konto gelesen. Kommt das mit Alles andere kommt mit allerlei Sachen. Also, jetzt können wir wirklich anfangen, in das zu kommen. Das war aktiv Art ein schlechtes Beispiel, weil es ein wenig zu komplex war, aber wir können sehen, die Startseite I d ist drei der Home dot live. Es ist wahr. Startseite ist live. Was ist die Startseite Slug? Es ist nur zu Hause und Sie können andere Dinge finden, die wirklich,
wirklich hilfreich sind . Also all die Dinge, die wir im Quellcode gesehen haben, es ist alles hier, die Menüs zeigen Standard-Slug. Wir haben uns das schon angeschaut. Wir können die volle UL bekommen. Wir können den Leittext bekommen. Das ist ein benutzerdefiniertes Feld. Wir können die U R L Der Ural Pfad bekommen, die i D. Wir können jede seiner Methoden ausführen, wie Kontakte erhalten. Wir könnten versuchen, einige dieser Methoden auszuführen, obwohl wir möglicherweise einige zusätzliche Daten darin verspotten müssen, besonders wenn Sie versuchen, einen Test auf einer Seite durchzuführen. Wir können sehen, ob die Seiten gesperrt sind. Wir können versuchen, es zu bewegen. Wir können den Besitzer des Besitzers sehen. Wir können hier alle möglichen Sachen sehen. Also, wenn Sie wirklich daran interessiert sind, was mit Wag Tail aus der Box kommt,
ehrlich gesagt, drehen Sie
einfach Shell, drehen Sie
einfach Shell, plus installieren Sie Django-Erweiterungen, installieren Sie Shell Plus und basteln Sie einfach herum. Wir können auch Dinge tun, wie unsere Menüpunkte zu bekommen. Also lassen Sie uns Menü tun ist gleich Männern. Sie Punktobjekte Punkt alle wissen, dass wir nur ein Menü haben. Lass uns die 1. 1 machen, also haben wir ein Menü. Wir wissen, dass dies unser Unterstrich ist. Unterstriche für Zeichenfolgenunterstriche. Das ist der Titel, den wir jetzt tun können Menüpunkt und wir sehen alle möglichen Sachen hier drin. Aber die eine, die wir hinzugefügt haben, war Menüpunkte mit Ihnen Menüunterstrichen Elemente Punkt alle und es ist ein Abfragesatz. Wir können uns unsere Zeugnisse ansehen. Testimonials wird sein Lassen Sie uns tun t ist gleich Zeugnisse. Und ich habe gerade Tab für Auto komplett gemacht. Wir haben zwei Zeugnisse hier drin. Eine Biota, eine von Chewbacca. T eins ist gleich der 1. 1 Das ist unser erstes Zeugnis. Was haben wir hier drin? Wir haben ein Zitat. Was sind die regulären Anführungszeichen, nur um Text zu zitieren, tun oder nicht? Es gibt keinen Versuch und die Namensnennung stammt von Yoda. So können wir jetzt sehen, was unsere Daten uns tatsächlich präsentieren, und das ist wirklich, wirklich nützlich, wenn Sie Dinge wie in unseren Service-Modellen, unseren Service-Listing-Seiten und
versuchen, all unseren Service zu greifen Seiten und dann ein Zeichen der Variablen und setzen Sie das in unsere Vorlage namens Dienste. Lassen Sie uns also voran gehen und sehen, was das zurückkehrt. Es gibt uns Reinigung und Glanz. Und jetzt wissen wir, ob wir das in ihrer Show testen würden. Das ist, wenn wir Service Pay Shot Objekte dot live dot public eingeben. Mit den aktuellen Seiten, die wir haben, wird
es uns nur die beiden Möglichkeiten geben. Und wenn Sie also tatsächlich unsere Seite besuchen und sehen, dass drei Karten nur eine Karte auftaucht oder ein Dienst auftaucht,
ist
es wahrscheinlich, dass etwas anderes los ist, weil wir wissen, dass es zwei gibt, die so
verdrahtet sind -Dienste, nicht in einer Vorlage angezeigt werden. Und jetzt fangen wir an, in ein paar Debugging und so zu kommen. Schließlich haben
wir das eigentliche Repo selbst, so dass wir alles sehen können, was in den Master geht. Wir können hier reingehen. Schauen wir uns die Version 2.7 an und wir können hier reingehen und wir können alle möglichen Sachen sehen. Also gehen wir in den Wag Tail. Lassen Sie uns in den Kern gehen und schauen wir uns Modelle an und hier können wir sehen, dass dies,
ah,
fair size Seite ist ah, . Wir haben eine Website. Wir haben einen Site-Manager und verschraubt den ganzen Weg nach unten abstrakte Seite und schauen, da ist unsere Seite selbst, und so können wir jetzt den gesamten Quellcode außerhalb unseres Editors in unserem Browser lesen. Und wieder, das ist alles, was mit einem Standard kommt. Warte bis zur Seite. Also, jetzt haben wir eine andere Art und Weise zu lernen, Weg zu lernen, ist ehrlich zu gehen um zu warten, bis dot io slash slack und wir werden sehen, dass diese Seite geladen wird. Schließen Sie sich der slack Workspace an, warum sagen Sie Kommen Sie uns auf slack. Es gibt eine ganze Community, die wir unterstützen müssen Kanal Kommen Sie stellen Sie Ihre Fragen dort
auch . Und so, abgesehen von diesem Kurs,
alles, was ich wirklich sagen kann, ist, öffnen Sie Ihre Schale plus und beginnen Sie einfach mit Dingen herumzuspielen. Ehrlich gesagt, das schlimmste Szenario ist, dass
Sie wissen, dass Sie etwas in Ihrer Datenbank brechen und Sie müssen wieder ein paar Seiten erstellen, denn dies ist eine wirklich, wirklich gute Art zu lernen, wie warten bis funktioniert und was Funktionen, die mitgeliefert werden und was
Sie mit
39. Globale Websiteeinstellungen: -Site-Einstellungen sind
gegebenenfalls Optionen oder Datenpunkte, gegebenenfalls Optionen oder Datenpunkte, die Sie auf Ihrer Website festlegen können und die global verfügbar sind. Im Gegensatz zu einer Seite, wenn wir ein bestimmtes Feld auf einer Seite setzen und wir wirklich nur Zugriff darauf haben , dass auf dieser Seite Vorlage eine Wartezeit bis Website-Einstellung ermöglicht es Ihnen, diese Website-Einstellung
von überall jetzt zugreifen . Ein gutes Beispiel dafür ist eigentlich eine Stunde Fußzeile, wo wir Stunden haben und Zeug tatsächlich wissen, was ich gerade bin, werde ich den Server ausgeben und ich werde Ihnen zeigen, so dass das Beispiel in
ihrem Fuß ist , oder wir haben Kontakt mit uns Stunden und Social Media -Einstellungen. Diese Luft derzeit alle unkontrolliert, auch dieser Abschnitt hier, das Globale Meer heute, mit einem Text und einem Link, der alle derzeit unkontrolliert ist. Das ist hart codiertes Zeug. Es gibt keine Möglichkeit, das zu ändern. Site-Einstellungen ermöglichen es uns, das zu ändern, da es auf jeder einzelnen Seite verfügbar ist. Nun, wir wollen nicht extra Arbeit für jede einzelne Seite zu tun, so können wir eine Website registrieren, die eine benutzerdefinierte Website-Einstellung eingestellt, und es wird nur für uns überall verfügbar sein. Also lassen Sie uns voran und erstellen Sie eine neue App in hier werden wir Python verwaltet zu tun. Ich starte, Wir nennen es Website, unterstreicht Einstellungen und wir laufen unseren Server genau wie wir jedes zweite Mal getan haben. Lass uns wissen, dass es nicht richtig ist, dass sie aufhören. Ich werde zum Basispunktkuchen gehen und hier oben werden wir Zustandseinstellungen hinzufügen. Los, sag das. Schließen Sie es ein. Und in unserem Explorer hier können
wir sehen, dass wir einen neuen Ordner namens Site-Einstellungen haben. Wir machen keine Interviews. Genau da wird das für uns erledigen. Wir brauchen keine Tests. Tests werden meistens für Warten bis bereits geschrieben. Außerdem machen
wir nichts Verrücktes. Wir brauchen keinen Admin, DuPuy. Aber wir werden
es behalten, oder? APS und Modelle jetzt
im Wesentlichen, im Wesentlichen, was wir in unseren Website-Einstellungen Modelle bis ich Datei tun werden, ist, dass wir eine
Art Klasse wie Social Media Einstellungen erstellen . Es wird Toe erben etwas von Wag Tail genannt eine Basiseinstellung. Und dann geben wir ihm Feld, damit wir ihm Facebook geben können. Wir könnten ihm Twitter, YouTube und Instagram geben. Ich glaube, das ist alles, was wir haben, oder? Facebook, Twitter, Instagram und YouTube. Jep. Und jeder von ihnen wird ein Sie sind alle Feld sein, so Modelle, die Sie l Feld und Leer sind gleich. Lasst uns das auf mehrere Zeilen setzen. Leer ist gleich wahr und der Hilfetext wird Geben Sie Ihre leere, leere leer Sie sind L. Jetzt haben wir ein wenig zusätzliche Arbeit hier zu tun, weil dieser wird sagen Facebook. Geben Sie Ihre Facebook, Sie Earl, und dieser wird geben Sie Ihre Twitter Sie sind auf diesem eine wird YouTube sein und wenn Sie es nicht erraten haben, das ist, was wird Instagram sein. Aber nochmal, weil wir das auf der Warte tun, bis wir diese aufdecken wollen. Wir brauchen jetzt ein paar Panels hier drin. Wir werden auf einem Tankfeld für Facebook sagen, und lassen Sie uns das ein paar Mal kopieren. Was haben wir sonst noch da drin? Wir haben Twitter. Wir haben YouTube und wir haben Instagram. Jetzt wir sicherstellen, müssen
wir sicherstellen,dass Modelle importiert werden. Das Feld wird importiert, und die Basiseinstellung wird importiert. Außerdem müssen
wir noch eine Sache tun, um dies tatsächlich als Einstellung zu registrieren, denn im Moment ist
es nur eine Klasse. Und wenn warten bis sich registrieren sollte, ist
jede Klasse eine Einstellung. Wir hätten Hunderte, vielleicht Tausende von verschiedenen Einstellungen innerhalb der Wartezeit. Also lassen Sie uns voran gehen und tun von Django Dot DB Importmodellen. Das sind unsere Standardmodelle. Wir haben eine Basiseinstellung, und hier ist, was ist aufgrund von wag tail dot con Trib dot Einstellungen dot Modelle importieren
Basiseinstellung . Wir werden auch die Registereinstellung Dekorator importieren wollen, und wir können das sofort anwenden. Eine Sache, die ein Auge auf Jahre zu behalten. Wenn Sie Con Trib importieren, Sie sicherstellen, dass dies erneut aktiviert ist. Das war falsch, basierend auf Tortendatei. Also, was wir hier suchen, sind Wag Tail Contra Einstellungen, und wir sehen es nicht wirklich hier drin. Gehen wir also weiter und fügen Sie unsere Einstellungen hinzu. Lassen Sie uns einfach werfen Sie es hier Weg zu Punkt con Trib Punkteinstellungen. In Ordnung, dann kannst du das speichern und schließen, und jetzt haben wir Zugriff auf die Vertragseinstellungen und die Modelldatei, die darin
enthalten ist, zu warten . Schließlich müssen
wir unsere Feld-Panels importieren, weil ohne diese getankt Panels, während diese Datei wird nur beschweren, oder besser gesagt, unsere Terminals über diese Datei beschweren, obwohl das ist es nicht, und das ist ziemlich misstrauisch. Oh, da gehen wir. Hatte gerade einen Treffer. Speichern Sie eine Waffe von Wag Schwanz Punkt bei Männern Punkt an ihm Handler Import Feld Panel Terminal und ist glücklich. Lassen Sie uns in unseren Weg gehen, um Männer zu sagen, und ich werde diese Seite verlassen. Und wenn wir hier in unsere Einstellungen gehen, können
wir tatsächlich sehen, dass wir Social-Media-Einstellungen jetzt haben. Dies wird uns einen erwarteten Fehler geben, weil wir versuchen, Daten in unserer
Datenbank zu speichern , aber wir haben noch keine Migrationen ausgeführt, also gehen wir zurück zu unserem Server hier und lassen Sie uns Python ausführen, der hoch verwaltet wird, machen Migrationen, und das wird unsere Python-Migrationseinstellungen vornehmen, nicht Einstellungen. Anweisungen, die das Wort, das ich suche, nach Python verwaltet hat. Ich migriere, werde diese Anweisungen ausführen und unsere Datenbank ein wenig ändern. Und dann wieder Läufer Server. Lassen Sie uns unsere Seite hier aktualisieren und sehen, was uns das gibt. Also, jetzt, wenn wir in ihre Einstellungen gehen, Social-Media-Einstellungen, es bringt uns auf diese Seite, wo wir ein Facebook,
Twitter,
YouTube und Instagram haben Twitter, . Also habe ich gerade dieses Jahr Els ausgefüllt und ich werde klicken. Sparen Sie cool jetzt in unserer Footer. Wir werden diese Mädchen tatsächlich benutzen müssen, und wir werden ein bisschen überprüfen müssen, um zu sehen, ob die tatsächlich eingestellt sind. Also lassen Sie uns Fußzeilenpunkt HTML öffnen und schließen wir die Seitenleiste und suchen wir hier nach
Social-Media-Zeug . So haben wir einen Link zu Facebook jetzt auf die Website-Einstellung zugreifen ist super einfach. Wir geben nur Einstellungen Punktsichtunterstrichen Einstellungen ein. Das ist der Name unserer App. Also, wenn Sie Ihre App etwas anderes genannt haben, wird
es sein, was Sie Ihre App genannt haben, und dann wird es soziale
Media-Einstellungen bemerkt, dass das Gehäuse hier geändert. Dies ist der Name der Klasse, und dann machen wir Facebook, weil das der Name des Feldes ist. Also lassen Sie uns das speichern und geben uns eine schnelle kleine Auffrischung und den Mauszeiger über Facebook, und wir sehen, dass es nichts getan hat. Nun ist der Grund, warum wir nichts darin sehen, weil wieder,
das ist die falsche basierend auf Tortenreihenfolge, mein Editor tut mir das, obwohl wir aktiviert warten, bis Vertragseinstellungen. Nun, das ist schön, aber wir haben es nur aktiviert. Damit wir tatsächlich die Einstellungen auf jeder einzelnen Seite erhalten können, müssen
wir unseren Kontext-Prozessen etwas hinzufügen. Also mussten wir auf jeder Seite verfügbar sein. Also haben wir einen Kontext-Prozess oder irgendwo hier drin. Also Vorlagen, Optionen, Kontext, Prozessoren und die, die wir hier aktivieren wollen, ist Warten bis Punkt con Trib Punkteinstellungen und dann die Kontextprozessoren nicht Einstellungen. Und ich hoffe, ich habe keine Tippfehler da drin. Das sieht in Ordnung aus. Lassen Sie uns diese Seite aktualisieren. Und jetzt wird dies in einen Link für uns und schauen Sie sich das unten links dort sagt es Facebook dot com, und wenn ich klicke, geht
es zu facebook dot com. So können wir dies jetzt auch mit allen anderen Links tun. Das könnte also Twitter sein. Also wieder, Einstellungen und dann den Namen Ihrer App. Also diese hier nennt man Site-Einstellungen. Der Name der Sozial-Media-Einstellungen der Klasse. So nannten wir ihn. Dieses ist das Twitter-Feld, und dieses ist das Instagram-Feld, und dieses ist das YouTube-Feld YouTube. Und lassen Sie uns aktualisieren, stellen Sie sicher, dass alle diese wie erwartet funktionieren. Das ist also Facebook, Twitter, Insta und YouTube perfekt. Aber was passiert jetzt, wenn einer von ihnen nicht ausgefüllt ist? Wir müssen tatsächlich eine if-Bedingung schreiben. Und wenn die Bedingung hier drin und das jetzt ziemlich hässlich werden könnte, gibt es Möglichkeiten, das zu umgehen, aber ich werde das einfach halten und einfach nur für dieses spezielle Feld überprüfen. Also werde ich sagen, ob und das sieht ziemlich lang so, wenn das in Schulden existiert, dass
und sagen , und ob und ich werde das mit all den anderen auch tun. In Ordnung, also habe ich gerade diese Einstellungen hinzugefügt. Und als Test lassen Sie uns Instagram loswerden. Also haben wir drei Social-Media-Felder, aber Instagram ist leer, so ist es erfrischt und stattdessen sollte weggehen und einfach so, stattdessen geht perfekt weg. Jetzt gehen wir weiter und fügen Sie Stunden und unsere Kontaktieren Sie uns jetzt. Das ist auch super einfach. Es ist ziemlich genau das Gleiche. Ist das also was wir tun werden, ist eine andere Klasse zu erstellen. Es wird Kontakteinstellungen genannt, und dies wird wiederum eine Basiseinstellung sein. Und bevor wir etwas tun, lassen Sie uns das registrieren. Also lassen Sie uns diese Einstellung Register Einstellung registrieren. Dort gehen wir und lassen Sie uns ein Feld in Ihrem Kontakt hinzufügen ist gleich einem Rich-Text-Feld,
und wir möchten, dass die Funktionen auf Lee Link sein, damit die Leute verknüpfen können, aber keine Schüsseln. Kein Titel ist nichts dergleichen. Und lassen Sie uns weiter gehen und auch sagen, dass dies leer sein könnte. Leer ist gleich true. Jetzt stellen wir sicher, dass niemand treu sein kann, schätze
ich. Und genau wie jedes zweite Mal müssen
wir sicherstellen, dass wir Platten und Jahre alt haben. Panels sind gleich Feldfeldkontakt, und jetzt müssen wir ein Rich-Text-Feld aus Witwe dot Kern Punkt Felder importieren
Rich-Text-Feld importieren, und wir werden Migrationen wieder ausführen müssen. So Python verwaltet von machen Migrationen Atem auf verwaltet hoch migrieren Django Admin beginnt vorne, läuft als aktualisieren Sie unsere Einstellungen hier, und wir werden sehen, sobald die Seite aktualisiert und ich öffnete. Dieses Menü hat ah Kontakteinstellungen. Und jetzt können wir hier einige Kontakteinstellungen hinzufügen, damit wir etwas sagen können, wie Kontaktieren Sie mich. Die E-Mail, schätze
ich. Und es wird nur Caleb beim Lernen sein. Warte, sag es Dot com. Lassen Sie uns fortfahren und machen Sie dies in einen E-Mail-Link und speichern Sie jetzt wieder. Das wird nicht wieder in ihrer Fußzeile gegen Django in Wayto und Python erscheinen und keine anderen Programmiersprachen, die wirklich intelligent genug sind, um genau zu wissen, was in
Ihrem Gehirn vor sich geht , damit es keine Annahmen macht. Aber was uns das erlaubt, ist die volle Kontrolle zu haben. Also, wo es heißt, kontaktieren Sie uns, können
wir jetzt sagen Website. Nein, das ist falsch. Einstellungen, die Websiteeinstellungen auf den Feldnamen verweisen. Und weil dies Rich-Text ist, setzen
wir Pipe-Rich-Text, und das kommt von Wag Tail Core-Tags. Lassen Sie uns voran und aktualisieren Sie Ihre Seite und lassen Sie uns sehen, wie das aussieht. Nicht schlecht. Nicht schrecklich. Wahrscheinlich werden Sie das Absatz-Tag dort loswerden,
aber das ist in zwei Zeilen anstelle von zwei Absätzen. Ja, das sieht gut aus. Und das ist ein Link, und schließlich werde
ich eigentlich nur seine ganze über stundenlang kopieren und einfügen,
und anstelle von Kontakteinstellungen wird uns gehören. Einstellungen und statt Kontakt wird Stunden und anstelle von Link,
es hat keine Funktionen, aber es ist erlaubt, neue Absatz zu haben, also das ist, warum wir es dort hineinlegen. Es liebt auch, neue Linien zu haben. Also denke ich, Absätze und Ihre Kredite. Deswegen legen wir es da rein. Sagen wir, wir machen das alles in einer Zeile. Lassen Sie uns Python verwalten. Ich mache Migrationen und ende Python verwaltete einen Kuchen, migrieren und beenden Python, der von Lauf verwaltet wird. Also Fieber auf dem lokalen Host Port 8000 drei Befehle eine Zeile, um sie alle zu beherrschen. Okay, lassen Sie uns erfrischen. Und jetzt haben wir unsere Einstellungen. Weißt du, wir haben ein paar Stunden hier reingebracht, damit wir so etwas wie Montag bis Freitag sagen können. Reiten war eine lustige Art Freitag zu buchstabieren. Ah, 9 Uhr 25 Uhr Und genau wie zuvor, werden
wir das da drin hinzufügen, also Einstellungen Punkt-Site-Einstellungen Punkt-Kontakt-Einstellungen. Nein, das ist nicht richtig. Es heißt unsere Einstellungen, und das Feld wird Stunden Punkt Stunden genannt. Dies ist auch Rich-Text. Okay, das kommt zusammen. Jetzt haben wir einen weiteren Abschnitt hier drin, und ich werde es eigentlich nicht abdecken, weil es sehr,
sehr ähnlich ist, was wir getan haben. Und wir haben bereits viele dieser Themen zu Tode behandelt. Aber wir könnten eine weitere Website-Einstellung für diesen Text hier hinzufügen. Eine andere Website hinzufügen, für diese Steuer hier, eine Sichteinstellung für sie Seite, um zu Ihnen zu verlinken. Also verwenden Sie ein Seitenauswahlfeld, und dann haben Sie gerade geändert, dass Seite zwei in Ihrer Vorlage sein. Es wäre wie Einstellungen Punkt Site-Einstellungen Punkt c t eine Einstellungen Punkt Link Seite oder was auch immer Sie dieses Feld Punkt nennen
möchten u R l Wenn Sie daran interessiert sind, wie das aussieht, können
Sie immer überprüfen Sie den Quellcode. Aber ich werde dich nicht länger auf diesem Video halten, weil es so ziemlich alles ist, was wir bereits behandelt haben.
40. Das Wagtail Admin Logo ändern: ist. Manchmal möchten wir, dass sich unser Website-Administrator ein wenig mehr gebrandmarkt fühlt und standardmäßig, Art und Weise Tell kommt mit seinem eigenen Branding, das ist total cool. Aber eines der größten Dinge schwächen Dio, um mit diesem Branding auszutauschen, ist, einfach
dieses Logo auszutauschen und so können wir das wirklich leicht machen. Also wirklich, wir müssen nur eine neue Template-Datei mit dem Namen Based on HTML erstellen. Aber es wird in einem bestimmten Ordner leben, und dann überschreiben wir einen Block namens Branding Block. Und im Allgemeinen habe ich einfach wie ein SPG oder etwas da drin, und es überschreibt es. Also es ist, lasst uns voran gehen und geben diese Ah, schnelle kleine Demo. Also werde ich das schließen und in meinem Template-Ordner. So rocketman Vorlagen. Ich werde hier eine neue Einreichung erstellen, und der erste Ordner wird tatsächlich Wag sagt Männern genannt werden, und die Datei wird Basispunkt-HTML genannt werden. Jetzt muss dies von einer bestimmten Datei ausgedehnt werden. Anstatt also von unserer Basis auf HTML zu erweitern, wird
es von der Art und Weise Tell and Men Schrägstrich basierend auf HTML erweitern und dann haben wir hier eine Blockierung namens Branding Block. Kein Markenlogo. Ich glaube, es heißt. Ja, wir werden herausfinden, ob ich falsch liege, aber hier ist nichts. Also werden wir im Grunde nur den Vogel loswerden. Und sicher genug, es gibt keinen Vogel mehr. Wir könnten auch statisch laden, und wir könnten überprüfen, um zu sehen, welche Dateien wir in unseren statischen Dateien haben. So ist es gehen statische Bilder und wir haben Logo Punkt PNG. Und ich glaube nicht, dass ich tatsächlich ein Logo Punkt s v g hier in, obwohl Sie nur in der SPG selbst einfügen. Also lassen Sie uns auf ein Bild, und das wird statische Bilder Logo Punkt PNG auf dem Altar wird nur Rocket
Man Logo sein . Und wo ich das Bild von einem statischen Bilder und dann Logo Punkt PNG statische Bilder Logo Punkt PNG. Erfrischen Sie uns und lassen Sie uns sehen, ob das schrecklich aussieht. Ja, das sieht ziemlich schlimm aus. Wahrscheinlich möchten Sie ein anderes Bild verwenden. Ich denke, das würde viel besser aussehen, wenn ich tatsächlich ein weißes Logo hätte, das, weißt
du, halb anständig
aussah. Aber ich benutze nur das Logo von der Seite oder dem Frontend der Website, also benutze ich nur dieses. Aber wenn Sie ein Logo haben oder Ihr Kunde ein Logo hat, das Sie dort einfügen möchten, ist
es so einfach. Nun, was ich tun werde, ist, das auszukommentieren. Ich werde den Code hier drin behalten. Aber ich werde das aussagen. Wenn Sie also jemals eine Referenz im Quellcode benötigen, haben
Sie sofort Zugriff darauf.
41. Caching hinzufügen: Okay, reden
wir über ein wirklich,
wirklich großes Thema, das jetzt eingelöst wird. Cashing ist eine der schnellsten Möglichkeiten, um Ihre Website zu beschleunigen, ohne Teoh zu benötigen. Fügen Sie Ihrem Server zusätzliche Hardware hinzu, ohne dass Teoh wirklich etwas unternimmt, um die
Leistung zu steigern . Jetzt gibt es Tonnen von verschiedenen Arten von Einlösung. Aber um das einfach zu halten und weil ich nicht wirklich weiß, welche Dienste Sie
nutzen werden , vielleicht ist es Meme Bargeld, richtig? Es ist elastisches Bargeld, etcetera, etc. Ich weiß es nicht wirklich. Wir werden jetzt nur bei einem einfachen Template-Fragment einlösen. Mit der Einlösung von Vorlagen können Sie ein Stück Ihrer Vorlage einlösen, sobald es zum
ersten Mal bearbeitet wurde . Also, zum Beispiel, unsere Kopfzeile hier oben könnten wir das Geld einzahlen, und es wäre genau das gleiche auf jeder einzelnen Seite. Wir könnten unser Banner einlösen, aber noch wichtiger ist, wir würden uns die Einlösung von Abschnitten wie diesen ansehen. Es könnte eine Reihe von Abfragen auf hier geben, die reduzieren auf ihrer Seite schwächen, indem wir dies einlösen, und so könnten wir diesen ganzen Abschnitt oder diesen ganzen Abschnitt mit Karten einzahlen, oder wir könnten sie zusammen einlösen. Wir könnten diese ganze Seite auszahlen, wenn wir wollten. Wir könnten alle möglichen Dinge mit Template-Fragment-Einlösung tun. also einen Blick auf ihre Homepage werfen, lassen Sie uns sehen, wie viele Abfragen das hat. Dies hat 36 SQL-Abfrage, so dass es überhaupt nicht schlecht ist. Aber die Sache ist, SQL-Abfragen sind sehr langsam, wenn sie mit allem anderen verglichen werden. Es ist irgendwie,weißt
du, weißt
du, wenn du zur Arbeit fahren musst und dann vielleicht an die Arbeit kommst und du merkst, Oh, nein, ich habe meinen Laptop zu Hause vergessen. Also, jetzt musst du den ganzen Weg nach Hause fahren, deinen Laptop
schnappen, den ganzen Weg zurück zur Arbeit
fahren, und dann merkst du, Oh, ich habe mein Laptop-Ladegerät vergessen. Also fahren Sie den ganzen Weg nach Hause, schnappen sich Ihr Laptop-Ladegerät, kommen den ganzen Weg zurück zur Arbeit. Es ist wirklich, wirklich langsam in dem Sinne, dass es mehrere Reisen wie diese macht, von Ihrer Website zu dieser Datenbank und dann zurück zur Website und hin und her
und hin und her. Wenn wir also schwere Abfragebereiche einlösen können, können
wir unsere Website dramatisch beschleunigen. Und die Idee ist, wenn wir wirklich nur Abfragen von jeder einzelnen Seitenanforderung entfernen und
es mit etwas wie im Speicher einlösen können Das wäre das Beste, aber es ist ziemlich unmöglich, aber wir können dies wirklich dramatisch reduzieren -Nummer. Jetzt wieder, 36 Abfragen sind ziemlich gut. Wenn du 200 hoch bist, siehst du ein wenig unheimlich aus. Wenn Sie über 200 sind, würde ich definitiv „Jetzt optimieren“ dafür sagen, wir werden Vorlageneinlösung verwenden, was bedeutet, dass ein Abschnitt Ihrer Vorlage verarbeitet wird. Also, wie dieser Abschnitt wird verarbeitet werden. Und dann, sobald es verarbeitet ist, wird
das erste Mal es in einer Punkt-D-J-Cache-Datei speichern. Also lasst uns hier reinspringen. Wir schließen das und öffnen uns, Dev Dot Pie. Wir werden unsere Einlösung hier durchführen, also ist es wirklich nur in unserer lokalen Entwicklung gebaut,
und dann, wenn wir damit fertig sind, werden
wir es in unsere Produktions-Dot Pie Datei verschieben. Aber Deb Typ I ist wirklich nur, um sicherzustellen, dass die Dinge so
funktionieren, wie wir es erwarten . Also das erste, was ich tun werde, ist vom Basisimport. All das sollte schon da drin sein. Aber ich werde auch nicht von nur Importen os tun und das an der Spitze setzen. Jetzt habe ich einen geheimen Schlüssel. Loud Coast erlaubt Host-E-Mail wieder in, installiert APS, Middleware interne I P s. Aber eine Sache, die ich hier nicht haben, sind Formen der Einlösung. Und ich frage mich, kommt das in der Produktion dot pie neu. Kommt das rein? Basierend auf Kuchen? Kommt es in der richtigen Basis? Fertig Pi Bargeld setzen? Nein, nicht standardmäßig. Also werden wir unseren ersten Kassierer hinzufügen. Also wird dieser Standard genannt werden. Wir geben ihm ein Back-End von Django-Punkt-Core-Dot Cash Don't Backends. Dies wirdübrigenssehr lange werden, übrigens Punktdatei-basierte Punktdatei-basiertes Bargeld und dann werden wir diesem einen Ort geben, damit der Standort irgendwo sein wird. Wir wissen nicht, wo sich dieser Ort noch befindet, aber im Allgemeinen wird es in irgendeiner Art Punkt-Cache-Ordner sein. jetzt Sagen
wirjetztPunkt Cash und was ich eigentlich tun möchte, ist es in das aktuelle
Arbeitsverzeichnis zu legen . So hat es je geschafft, Augen laufen zu lassen. Ich wollte irgendwie einen Punkt-Cache-Ordner genau dort erstellen, wo das jetzt ist. Ich weiß nicht, wo das auf einem bestimmten Server sein wird, also müssen wir hier ein kleines Ding machen, wo wir einfach einen sehr Ball namens C W D hinzufügen und das existiert noch nicht. Aber C W A. D wird gleich os dot sein und aktuelles Arbeitsverzeichnis bekommen, und dann werden wir nur Dot Cash anhängen. Und was ich hier tun werde, ist nur sicherzustellen, dass ich keine Art von Rücken habe und Django Core Cash Back INS-Dateibasis dateibasiertes Bargeld. Da gehen wir. Das ist sehr anfällig für mich, einen Tippfehler zu machen, der alle gespeicherten Server laufen. Und wenn ich auf meine Homepage klicke, weiß
es noch nicht, was ich einzahlen soll, also wird es nichts tun. Aber wenn ich meinen Editor öffne oder wenn Sie in Ihrem Terminal sind, können
Sie LS oder Aider tun, und Sie können hier sehen, ich habe eine große Datei namens 911502 blah bla, bla,
bla, bla, bla, bla, bla, blah neun F a dot d j Cash und es ist eine Datei, die nicht einmal gelesen werden kann. Aber es ist eine Cache-Datei. Also jetzt gehen wir weiter und fügen Sie ein wenig Einlösung hinzu. Wir werden dies tun, indem wir unsere Homepage öffnen,
Homepage dot html und wo unsere Tags geladen wurden. Fügen wir hier Geld hinzu. Ich meine, schließen Sie die Seitenleiste nach unten. Und jetzt mit diesem Geldschild wird aussehen, als ob wir das Wort Bargeld verwenden, wie lange wir wollen das in Sekunden eingelöst wird und dann einen Namen. Also, wissen
Sie, Seite Cash, so
etwas und dann optionale eindeutige Felder, um es ein wenig einzigartiger zu machen, so dass wir jede Seite Cash für jeden Abschnitt aufrufen
könnten könnte Seite Cash genannt werden. Aber dieser hier könnte eine einzigartige Idee von 123 haben, und so haben wir einen öffnenden Cash-Block und einen End-Block genau so, und so funktioniert es. Also gehen wir weiter und wir werden unsere Streamfelder auf der Homepage einlösen und wir werden hier ein kleines Experiment durchführen, also werden wir das für Ah einlösen, was sind 30 Tage? Etwas wie, wenn ich mich erinnere 259200 Null So viele Sekunden, Irgendwo auf dort werden
wir diese Homepage Stream Felder nennen, und wir werden es eine Seite geben, ich d nur um es ein wenig einzigartiger und tun und Bargeld. Okay, ich habe das gerettet. Und jetzt, als ah, kleines Experiment, werde
ich diese Seite nicht neu laden. Ich werde warten, bis ich meine Homepage bearbeiten. Ich werde einen Text im ersten Abschnitt hier ändern. War deine Rakete kürzlich im Weltraum? Lassen Sie es bereinigen und dies wird der zwischengespeicherte Titel sein. Und dann sieh dir das an. Das wird retten. Aktualisieren Sie die Seite. Dies wird jetzt eine neue Cash-Datei für mich erstellen. Es wird das Geld zum Titel sagen, und ich werde all unsere Streamfelder loswerden, damit nichts mehr auftauchen sollte. Und wenn ich diese Seite aktualisiere, wird immer noch
alles angezeigt, weil es Bargeld als Vorlagenfragment war. Django sagt jetzt:
Oh, Oh, schau nach Bargeld. Stellen Sie sicher, dass es weniger als so viele Sekunden alt ist. Sein Name ist Homepage-Streams, und es hat eine einzigartige Vorstellung von was auch immer die Seite Ideen. Es spielt keine Rolle, dass hier drin nichts mehr ist, heißt
es. Grundsätzlich suche
ich nach einer Datei namens diese und es macht einen seltsamen kleinen Hash daraus. Werfen wir einen Blick auf diesen Hash. Es ist dieser Top hier. Es macht also einen Hash über den Dateinamen und sagt:
Ja, Ja, diese Datei existiert sicherlich, also werde ich nichts rendern, was zwischen dem Bargeld und dem Endgeld-Tag liegt. Ich werde nur rendern, was jemals in dieser Datei war, und so speichert es es in einer anderen Datei, und jetzt gibt es keine zusätzlichen Abfragen. Also lasst uns das öffnen und wir sehen, wir haben 26 Abfragen hier drin. Ich denke eigentlich, es war 36 ursprünglich 36 Abfragen, und jetzt gibt es nur 26 Abfragen. Wir könnten die Anzahl der Abfragen reduzieren, indem wir unsere Kopfzeile und unsere Fußzeile einlösen. Fuß ist wahrscheinlich ziemlich schnell, schwer als auch. Jetzt werde ich das rückgängig machen und wir werden jetzt auf ein Problem stoßen, weil diese Seite
eingelöst wird . Ich werde den Titel hier ändern, um sein und nicht eingelöst Stream-Feld, und ich werde dies in der Vorschau anzeigen. Es zeigt mir immer noch den alten. Der Geldtitel. Dieser sollte jetzt einen nicht eingelösten Titel sagen. Ist es das, was ich geschrieben habe? Ein nicht eingelöstes Stream-Feld? Aber es sagt immer noch, dass das alte Zeug so hübsche Aussicht jetzt wegen Einlösung gebrochen ist. Aber was wir in unserer Vorlage tun können, ist, dass wir erkennen können, ob dies eine Vorschau ist oder nicht. So können wir sagen, wenn nicht Anfrage ist Vorschau und das wird am Leben sein. Andernfalls ist
dies eine Vorschau, und dies wird eine Vorschau sein, und wir können sogar das auch überprüfen. Also lasst uns das machen. H eins. Dies ist live und lassen Sie uns eine andere H machen, die Vorschau sagt. Und lasst uns unsere Seite hier aktualisieren. Nun, das ist außerhalb des Einzahlungsbereichs. Das wird also funktionieren. Das ist live. Und diese, wenn ich die Vorschau aktualisiert, sagt Vorschau. Also, was wir jetzt tun können, ist, dass wir diesen Cash-Bereich nehmen und ihn nur anwenden können, wenn die Seiten tatsächlich leben. Und in der Vorschau möchten
wir keine Einlösung anwenden. Also nehmen wir diesen vier Block oder diese vier Schleife, und wir werden es hier anwenden. Also, wenn dies eine Live-Seite ist, rendern Sie diesen Abschnitt zuerst aus. Und sobald das Rendern fertig ist, werfen Sie es in eine Cache-Datei und machen Sie sich nie wieder Sorgen, bis diese Zeit abgelaufen ist. Andernfalls können
Sie Ihre Vorschau hier sehen, wenn es sich um eine Vorschau handelt . Es gibt keine Einlösung. Und wenn ich erneut auf Vorschau klicke, sagt
das Nein ein nicht eingelöstes Stream-Feld. Und wenn ich auf die Lebensseite zurückgehe und aktualisiere, sagt
das immer noch das alte Zeug. So funktioniert die Vorschau jetzt. Jetzt stoßen wir auf ein weiteres Problem, und das ist ziemlich genau das, was Einlösen auf den Punkt gebracht wird. Geschwindigkeiten Ihrer Website, aber Sie haben einige Probleme hier sind, ich werde dies in einen brandneuen Titel ändern, und äh huh in der Vorschau diejenigen,
Ich werde schließen, dass, wenn ich die Live-Seite hier wieder aktualisiere, hat sich nichts geändert. Das ist, weil warten Sie bis und Django keiner von ihnen weiß, dass dieser Inhalt hier
tatsächlich geändert wird . Alles, was da steht, ist ,
Oh, wenn ich die Vorlage rendere, werde
ich nach dieser Datei suchen, was auch immer der Dateiname ist. Wenn es existiert, wirf es hier rein. Es überprüft nicht, ob sich das geändert hat. Das würde den Zweck der Einlösung besiegen. Gehen wir also voran und entfernen Sie die Einlösung jedes Mal, wenn die Seite gespeichert wird. Also bin ich auf Heimmodellen dot pie und ganz unten hier werde ich eine neue
Methode namens Save erstellen . Jetzt kommt dies mit der Seite bereits, und wir werden sie einfach überschreiben. Kunst und Kokoseier. Und sobald alles erledigt ist, werden wir einfach „Was auch immer“ ausführen. Warte, bis wir rennen wollen. Also sparen Sie und wir werden unsere Hunde und unsere Schnüre vorbeiziehen. Hier
drin müssen wir irgendwie unser Geld loswerden,
die Seite Bargeld,die bereits existiert. Hier
drin müssen wir irgendwie unser Geld loswerden,
die Seite Bargeld, Wir müssen es loswerden. Nein, Django kommt mit einer wirklich netten Funktion, die es uns ermöglicht, den Template-Fragmentschlüssel zu erstellen und ihn
dann zu löschen. Also werden wir diesen Schlüssel mit einer Funktion namens make template fragmentschlüssel machen. Nun, das ist noch nicht importiert, aber wir werden es in einem Moment importieren. Und der erste Parameter wird dieser Titel hier sein. Streams auf der Startseite. Also geben wir das als String, und der zweite Parameter wird sein, was diese Seite jetzt Ideen hat, zu diesem
Zeitpunkt wissen
wir nicht wirklich, was diese Seite Ideen, aber es ist nicht wirklich wichtig, weil wir wissen dass ich d ein Feld auf der Homepage ist, so können wir einfach selbst Punkt i d tun weil dies objektorientierte Programmierung ist. Wir bekommen Selbstzweifel I d. Und ich d kommt von Page selbst tatsächlich von einem Dschungelmodell. Also, jetzt haben wir einen Schlüssel da drin, und alles, was wir tun müssen, ist Bargeld zu laufen, über den Schlüssel zu
löschen, und dann wird es die Seite speichern. Und dann, wenn die Seiten wieder geladen, es wird wieder Geld für uns. Jetzt müssen wir sicherstellen, dass wir Template-Fragmentschlüssel importiert und auch Bargeld gemacht haben. Also gehen wir an den Anfang unserer Seite hier und lassen Sie uns von Django Dot Core Dot Cash Import
Cash tun . Und lassen Sie uns auch von Django Dot Core Dot Cash Dot tun, den Sie Kills importieren, Template-Fragment
machen und lassen Sie uns keine Beschwerden bis jetzt im Terminal sehen. Und lassen Sie uns einfach überprüfen, dass wir dieses Problem immer noch haben. Also haben wir hier einen Abschnitt, der einen brandneuen Titel genannt wird, und wenn ich diese Seite aktualisiere, wird immer noch das Geld angezeigt. Lassen Sie uns voran und veröffentlichen Es sagt, es ist nicht schrecklich. Also habe ich irgendwo ein Problem. Selbstzweifel, i D. Und der Grund, der passiert ist, ist, weil Sie tatsächlich mehrere Parameter an Ihr
Geld übergeben können. Und das soll eine Liste sein, und das ist der Grund, warum wir testen. Also lasst uns die Seite aktualisieren. Fairer Feuerinhalt. Gibt es einen brandneuen Titelklick veröffentlichen? Warten Sie, bis es gerettet ist. Und jetzt, wenn wir diese Seite aktualisieren, wird
dies einen brandneuen Titel ändern. Diese Seite hat 36 Abfragen, da sie alle Abfragen in allen unseren verschiedenen
Stream-Feldern ausführt . Aber wenn wir aktualisieren, gibt es jetzt nur 26 Abfragen, können wir im Grunde genau dasselbe mit unserer Kopfzeile und
einer Fußzeile und allen möglichen Dingen tun , aber ich denke, wir werden das für die nächste Lektion speichern, weil es nicht ganz dasselbe ist sehr, sehr ähnlich. Aber es ist nicht ganz dasselbe. Wir müssen die Speichermethode zu unserem Menü und Teoh Bündel unserer Website-Einstellungen hinzufügen, also werden wir das in der nächsten Lektion tun.
42. Die Navigation und Footer: Ok, Dokey. In unserem letzten Video haben wir Template-Einlösung in unser Startseiten-Stream-Feld hinzugefügt, jedes Mal, wenn wir die Seite gespeichert haben, löschte
es das alte Bargeld. Und dann, wenn wir die Seite neu geladen haben, würde
es das Geld neu erstellen. Wir haben auch sichergestellt, dass wir bei jedem Klick auf Vorschau nicht die zwischengespeicherte Version der Seite erhalten. Und das hat unsere Anfragen um Zehntel reduziert. Früher hatten wir 36 Abfragen. Wir haben jetzt 26 Abfragen, aber lassen Sie uns voran gehen und unsere Kopfzeile und unsere Fußzeile einlösen und versuchen, diese Grausamkeiten
noch mehr zu reduzieren . Auch wenn wir einen Blick auf die CPU-Zeit werfen, glaube
ich, dass dies ursprünglich irgendwo um 850 Millisekunden war. Zugegeben, das ist kein dedizierter Computer, und ich nehme auch auf, was nicht so wird es ein wenig länger dauern, aber ich denke, wir könnten diese Nummer dazu bringen, ziemlich gut fallen zu lassen. Erste Dinge zuerst. Lassen Sie uns voran und öffnen Header dot html und wir wollen das Cashing Template Tag
hier hinzufügen . Und was wollen wir auf unsere Kopfzeile einzahlen? Gibt es etwas Dynamisches in Ihrem? Nein, nicht wirklich. Wir verwenden nicht einmal aktive Klassen auf unseren Links. Also, das ist eigentlich in Ordnung. Wir könnten wahrscheinlich diesen ganzen Header einzahlen. Also in ihrer Header-Datei könnten
wir hier einfach Geld hinzufügen, wenn wir wollten. Aber eigentlich mag
ich das nicht wirklich. Und ich will nur dieses kleine Fragment hier einlösen. Nur unsere for-Schleife. Das ist der teure Teil. Also werden wir etwas Geld für 2592000 hinzufügen, denke ich, das ist ungefähr einen Monat in Sekunden. Lassen Sie uns 30 Tage mal 24 Stunden mal 60 mal 60. Doch das tut es. 2592 Dreifach-Null Tod genagelt es. Jetzt werde ich nur diesen einen Site-Header auf der Homepage aufrufen. Wir gaben uns einen zusätzlichen optionalen Parameter, diesen wir werden nicht, weil es nur die Site-Header genannt werden und Lassen Sie uns und Bargeld
und lassen Sie uns Menüs Modelle Dot Pie öffnen. Und wenn wir unsere Speisekarte speichern
, sind Sie da dieser Typ hier? Immer wenn wir in ein Menü gehen und dieses Objekt dieser Klasse speichern, werden
wir dieses Geld kaputt machen. Wir werden die Cache-Datei das Template-Fragment löschen, und wir werden es erlauben, ein neues zu erstellen, wo die nächste Person unsere Website besucht. Also unten, ich werde einfach sagen, dass der Tod sich selbst gerettet hat. Lassen Sie uns in einigen Vierteln Eier passieren und vorausgesetzt, alles ist gut am Ende dieser, lassen Sie uns super speichern und übergeben diese Karten als auch. Diese Schlüsselwortargumente. Und das wird nur die Speichermethode in der Cluster Herbal Modellklasse ausführen. Und jetzt müssen wir einen Schlüssel erstellen. Es ist also einen Schlüssel erstellen, und dieser Schlüssel wird aufgerufen oder ausgeführt. Vielmehr führt
dieser Schlüssel Make-Template-Fragmentschlüssel aus, und dieser hat nur den einen Parameter, also muss man wirklich den darin enthaltenen
Site-Header setzen . Und dann lasst uns Cash Dots den Schlüssel löschen. Und auf unserer Homepage importierten
wir Bargeld und machen Template-Fragmentschlüssel. Also gehe ich buchstäblich nur auf die Homepage an dieser Stelle, weil ich sie bereits geschrieben habe . Ich werde es kopieren und in meinen Menüs Modelle nach oben. Ich wollte es da reinkleben. Das sieht gut aus, und jetzt können wir sagen, ob das wirklich funktioniert, weil es zusätzliche Abfragen wird
, die entfernt werden. Wenn Sie diese Seite zum ersten Mal aufrufen
, werden keine Abfragen gespeichert. Wie Sie sehen können, ist
es immer noch 26 Karies oder 28 Abfragen. Jetzt sollte es eine Vorlage geben, die hier eingelöst wird. Jetzt, wenn ich die Seite erneut aktualisiere, bin
ich auf 23 Abfragen hinausgegangen. Das hat uns also fünf gerettet. Also nicht eine wirklich große Leistung erhöht ihre Ich vermute, dass eine Menge davon tatsächlich kommt aus der Fußzeile, wo wir gehen, um die größten Gewinne zu sehen. Also lasst uns das auch tun. Also jetzt können wir zu unserem Fußzeilenpunkt html gehen, weil wir Bargeld hinzufügen. Wir müssen das Cash-Template-Tag hinzufügen. Und wir wissen, dass wir fünf Abfragen sofort gespeichert haben, indem wir nur diese vier Schleife einlösen, die sich im
Header befand . Dies ist im Grunde die exakt gleiche vier Schleife mit Dieser ist in der Fußzeile. Jetzt können wir Einlösung hinzufügen. Hier ist ein Bargeld 2592000 Sie könnten diese Zahl deutlich niedriger, deutlich höher. Wenn du willst. Wir werden diese eine Website Fußzeile nennen und und Bargeld und Lassen Sie uns voran und öffnen Sie unsere Menüs Modelle. Mal, JedesMal,wenn wir dieses Menü speichern, mussten
wir das Geld hier aufbrechen. Bust den Kopf, Bargeld. Aber weil dies auch genau das gleiche Menü in der Fußzeile verwendet. Wir wollten auch dieses Geld kaputt machen. Also lasst uns voran gehen und schwächen. Kopieren Sie dies anstelle des Sichtkopfes. Wir nennen es Site-Fußzeile und das ist richtige Fußzeile Übereinstimmungen,
Übereinstimmungen , Übereinstimmungen, entspricht diesem Namen genau hier. Lasst uns weitermachen. Aktualisieren Sie unsere Seite. Wir werden sehen, dass sich die Abfragen nicht ändern, wenn wir zwei weitere drin haben, aber nicht allzu besorgt über zwei Abfragen. Lassen Sie uns auffrischen. Bumm. Es sinkt auf 20 und es ist konsequent 20 jetzt, was wirklich schön ist. Das ist CPU. Auch die Zeit sinkt. Ein Tropfen 200 Millisekunden. Jetzt lassen Sie uns voran und Cash sind Kontakt mit uns aus Stunden und unsere Social-Media-Einstellungen, so dass wir die Menüs Modell Stop I Datei schließen
können, und wir werden nur innerhalb der Fußzeile und die Website-Einstellung arbeiten, so ist es tun
Website-Einstellungen . Modelle hoch ist die, die wir hier öffnen müssen und bevor irgendetwas dies bereits in meiner
Zwischenablage haben , also werde ich meine Importe dort einfügen. Also habe ich Geld und ich habe Make Template Fragmente Schlüssel. Also jedes Mal, wenn wir eine dieser Einstellungen speichern, gehen
wir voran und brechen das Geld. Jetzt haben wir das Bargeld in der Vorlage noch nicht gesagt, aber wir können es hier einlegen und danach in die Vorlage setzen. Sagt Gehörlos Save. Dies wird selbst alle Argumente und alle Schlüsselwortargumente nehmen, die wir dort übergeben und genau wie zuvor, Wenn alles gut ist, führen Sie Superpunktspeicher aus. Lasst uns in die Wachen gehen. Lass uns die Karten hineingehen und es ist gut, jetzt zu gehen. Wir müssen den Schlüssel hier einstellen, damit der Schlüssel einfach Fragmentschlüssel machen wird. Welche Klasse haben wir in Ihren Kontakt-Einstellungen? Nennen wir es Twitter. Kontakt-Einstellungen, Ein neuer Cash-Punkt-Löschschlüssel. Jetzt, da wir das haben, können
wir den ganzen Abschnitt kopieren, weil es gleich sein wird. Wenn es mit einer Basiseinstellung funktioniert, funktioniert
es mit allen Basiseinstellungen. Und so ist dies unsere Stundeneinstellung, So Fußzeilenstunden, Einstellungen, Social Media Sichtungen. Gehen wir hier ganz nach unten. Wir haben unsere Social-Media-Einstellungen, oder? Nur Social-Media-Sichtungen. Ja, Fußzeile. So genannte soziale Einstellungen. Und dann haben wir ihren Fuß oder eine Einstellung. Und lasst uns das Gleiche hier unten machen. Fußzeile si ta Einstellungen. Jetzt, nur weil diese Vorlagenschlüssel nicht existieren, bedeutet das nicht, dass Ihre Website unterbrochen wird . Derzeit werden
diese Abschnitte nicht auf ihrer Website eingelöst. Aber wenn wir zum Fuß oder c t A Einstellungen gehen und ich auf Speichern klicke, gab es keinen Template-Fragmentschlüssel zu löschen. Also ist nichts passiert. Lassen Sie uns Fußzeilenpunkt HTML wieder öffnen. Und, ah, lasst uns all diese verschiedenen Abschnitte machen. Ich werde das nur ein bisschen kleiner machen, weil das eine ziemlich große Datei ist und ich werde es. Ich werde diesen ganzen Abschnitt hier einzahlen,
und dieser hier bezieht sich auf unsere Fuß- oder C-T-A-Einstellungen oder inneren Tempel,
Cash Foot oder C T A Einstellungen. Also lasst uns hier etwas Geld haben. Bargeld. Ich werde das auch für einen Monat einlösen. Nennen Sie es überfluteten Fuß oder C T A Einstellungen und hier unten und Bargeld. Unsere Links sind bereits Bargeld. Das ist groovig. Wir können Bargeld sind Kontakteinstellungen oder kontaktieren Sie uns. Welcher war das? Ähm, aber,
ähm, Twitter-Kontakteinstellungen. Das wird uns also auch eine Abfrage ersparen, obwohl um ehrlich zu sein, es ist es nicht wirklich wert, also werde ich diese jetzt nicht tun. Der Grund, warum ich das sage, ist
zum Beispiel,dass zum Beispiel, dieser ganze Linkabschnitt unten links eingelöst wird und wie Template-Cashing funktioniert, ist, dass es Ihr Fragment nimmt und es immer noch als eine einzelne SQL-Abfrage speichert. Es muss die Datenbank treffen,
sehen, wonach es sucht, welche abgelegt hat, nach suchen
soll, Kommen Sie zurück,
überprüfen Sie, ob diese Datei existiert. Wenn es existiert, verwenden Sie es. Also, weil es hier nur die eine SQL-Abfrage in der einen SQL-Abfrage geben . Ehrlich gesagt, das ist es nicht wirklich wert. Ich werde den Vorlagenfragmentschlüssel und ein Bargeld innerhalb der Modelle belassen, aber das ist es nicht wirklich wert. Ah,
größere, die es hier wert wäre, wäre überall in sozialen Einstellungen, denn für jede Einstellung hier muss
es nach Facebook,
Twitter,
Instagram und YouTube suchen Twitter, . Also lasst uns voran gehen und einfach all diese einlösen. Es ist zu Bargeld 2592000 und wir werden diese Social Footer Einstellungen aufrufen, und ich möchte sicherstellen, dass mein Code immer etwas schön eingerückt und Bargeld ist. Lassen Sie uns voran, aktualisieren Sie unsere Seite. Und sicher, wir haben zwei weitere Anfragen für nur einen Moment, als es das Geld erstellt hat, und jetzt fallen wir auf 17 und das war ursprünglich 850 Millisekunden. Zu Beginn dieser Lektion waren
es 650 ish Millisekunden, und es ist jetzt auf 400 Millisekunden. Das ist also wirklich, wirklich gut. Und ich bin bereit zu wetten, dass wir, weil wir eingeloggt sind, ein paar zusätzliche Anfragen haben, um unser Benutzerobjekt zu authentifizieren, um sicherzustellen, dass wir tatsächlich ein
Endmensch und solche Dinge sind . Aber wenn wir hier den Inkognito-Modus öffnen, ja, sicher genug, können
Sie sehen, 10 Abfragen dauerte Millisekunden und die gesamte Website dauerte 200 Millisekunden 125 Millisekunden. Das sind also einige ziemlich gute Gewinne von 850 Millisekunden a bis 25 von 36
Abfragen bis 10 Abfragen und schließlich als eine kleine Zusammenfassung. Wirklich,
alles, was wir getan haben, war, dass wir gesagt haben ,
Hey, es gibt eine Speichermethode für unsere Basiseinstellung. Wir haben einen Template-Fragmentschlüssel erstellt. Und so sagten wir, Dies ist die einzige Einstellung, die wir auf unserer Vorlage entsprechen müssen. Also haben wir Fuß oder soziale Einstellung, und wenn wir zurück in die Fußzeile gehen hier für etwa einen Monat Geld und das ist, wo wir diesen Text
hier finden , Fuß oder soziale Einstellungen, dann nehmen wir den Schlüssel und wir löschen ihn einfach. Und dann speichern wir das Modell weiter, als ob nichts passiert wäre. Und jetzt haben wir Schablone überall einlösen. Jetzt im Quellcode im endgültigen Quellcode sehen
Sie eine Reihe von Template-Einzahlungen, die ich
jetzt überall hinzufügen werde . Es ist nur die Kopfzeile, die Fußzeile und die Startseiten-Stream-Felder, glaube
ich, aber ich werde es auch an andere Stellen hinzufügen. Also wirst du noch ein wenig mehr davon sehen. In Ordnung. Schließlich, wenn Sie jemals Ihre Einlösung deaktivieren möchten, können
Sie immer das aus. Oder was ich gerne mache, ist, dass ich das einfach nehme,
zu wissen, dass es bereits wie erwartet funktioniert, gehe zu Production Dot Pie, und ich werde das einfach dort einfügen. Und ich möchte sicherstellen, dass ich auch diese OS-Datei für diesen OS-Import habe. Vielmehr. Und jetzt weiß ich, als ich diese Website in Produktion auf einem Server gestartet habe, dass ich die Produktion nach oben durch Einstellungsdatei
verwenden werde . Und so wird dies standardmäßig Temperley-Einlösung verwenden.
43. Eine Sitemap hinzufügen: Site-Maps helfen Suchmaschinen. Finden Sie alle Ihre Seiten. Wait A verfügt über eine Standortübersichtsfunktion, ist
jedoch nicht standardmäßig aktiviert. Und in dieser Lektion werden
wir Sitemap aktivieren und eine neue Site erstellen. Karte. U R L Also, wenn wir unsere Website öffnen, lokalen Host 8000 Schrägstrich Site-Karte Punkt XML Dies ist in der Regel, wo eine Site-Karte lebt, aber in diesem Fall gibt es keine. Also, was wir hier tun müssen, ist unseren Basispunktkuchen zu öffnen. Also, was wir hier tun müssen, ist, dass wir wo bist du? Die Prüfung ist installiert. APS. Wir müssen unsere Beleidigung APs rektale Punkt con Trib enthalten, dass Site-Karten Stellen Sie sicher , dass das nicht bereits da drin ist. Und lassen Sie uns auch die jangle ein django dot con Trib Dad Site-Karten hinzufügen und dann werden wir zu öffnen. Sind Sie RL Dot Pie Datei, die wir, glaube ich, wir haben nur einmal in diesem ganzen Kurs berührt, und da gehen wir. Wir können sehen, dass Django-Admin, über den ich hin und wieder gesprochen habe, wir haben es nicht einmal so ehrlich angesehen, wenn Sie wollen, können Sie es völlig loswerden. Also von und in hier, Ich werde sagen, von gewackelt Oh, nicht con Trib Punkt Site-Karten Punkt Ansichten wichtige Site-Karte und dann über diesem Fang alles, was wir hinzufügen
wollen, sind Oh, Site-Map dot xml Ja, wir könnten Lass es lesen, Jack. So sieht es ein wenig mehr wie der Rest unseres Codes hier aus, Also könnten wir tun, Sie sind l Site-Map dot xml. Und statt dieses Zeugs, werden
wir einfach sagen, Website jetzt, Terminals überhaupt nicht beschweren. Und ich werde zurück zu lokalen Host-Unterstützung 8000 Schrägstrich Site-Karte dot xml Und Sie wissen, ich habe Startseite Service Reinigung Seite, glänzende Seite über uns und Kontakt. Jetzt habe ich eine Site-Karte, und wenn Sie Ihre Website starten, können
Sie Ihre Site-Karte an Bing und Google und alle anderen Suchmaschinen senden. Suchmaschinen werden auch standardmäßig. Suchen Sie nach Site-Map dot xml auf Site-Map dot html, aber es ist immer gut, auf jeden Fall eingereicht. Und wirklich, was das tut, ist jede Seite, die Sie eine Wartezeit bis Seite haben, die leben. Das ist öffentlich. Es wird hier auftauchen
44. Vorbereitung: Jetzt ist
eines dieser Dinge, die wir tun müssen, einen geheimen Schlüssel zu erstellen. Und wir müssen unsere erlaubten Hosts bearbeiten und sagte unsere Datenbanken ziemlich viel zum größten Teil , wir werden innerhalb unserer Produktion dot pie Datei arbeiten. Also hier drin müssen
wir unseren geheimen Schlüssel setzen soll etwas sein, das wir nicht wissen, was das noch ist, und wir müssen unseren erlaubten Host gleich einer Liste von I ps Domains setzen, so
etwas. Und wir könnten sogar sehen, dass es hoch erlaubten Host bestrebt ist? Ja. Ist gleich Stern. Wir haben bereits einen geheimen Schlüssel für unser Deb. Dies ist nur für die lokale Entwicklung. Wir wollen anders setzen, einen anderen Schlüssel für die Produktion. Und wir wollen verschiedene erlaubte Hosts spezifischere erlaubte Hosts für die Produktion festlegen. Also für unseren geheimen Schlüssel, wenn wir gerade Firefox oder was auch immer Browser geöffnet haben, und ich werde nur zu vielen Web-Tools dot com slash django geheimen Schlüsselgenerator gehen und einen zufälligen Schlüssel
erstellen und ich werde diesen Schlüssel kopieren und es einfach setzen in meinen geheimen Schlüssel so. Jetzt ist dies nicht die beste Methode, etwas Geheimnis zu speichern, sollte wahrscheinlich nicht in einer
Ebenenzeichenfolge wie dieser aufbewahrt werden . Aber das ist etwas, das Sie ein wenig später auf der Straße angehen können. Moment werden
wir es einfach so machen. Und dann in unseren erlaubten Gastgebern, müssen
wir hier ein paar verschiedene Hosts einrichten. Die 1. 1 wird also lokaler Host sein. Engine X wird das auf unserem Live-Server verwenden, und ich weiß nur, dass wir das brauchen werden. Der nächste ist, was wir wollen, dass unsere Domain tatsächlich sein wird. In meinem Fall möchte
ich, dass diese Website bei rocketman dot gelernt wag tail dot com lebt. Und die 3. 1 wird unsere i p Adresse von Digital Ocean oder Lin geschuldet sein, oder AWS oder wo immer Sie Ihren Server in diesem Kurs einrichten, wir werden digitale Ozean verwenden, also wird es jetzt eine I P Adresse geben. Wir wissen noch nicht, was ich P adressiert, also werde ich einen Stern setzen. Und wenn Sie dies in der Produktion verwenden, stellen
Sie sicher, dass Sie immer überprüfen, ob Sie es entfernen, sobald Sie die Website starten . Als Nächstes. Wir müssen unsere Datenbanken hier einrichten, denn wenn wir gehen in könnte hoch verschuldet werden. Nein. Es ist wahrscheinlich in basierten Startup-I-Datenbanken, aber wir verwenden Escalate. Drei waren gut für die lokale Entwicklung. Es ist ziemlich schnell. Es ist ziemlich leicht. Es ist eine einzelne Datei, aber in der Produktion wollen Sie etwas robusteres und wir werden Post
Gras verwenden . Also werden wir diesem hier eine neue Datenbank geben. Datenbanken sind gleich, und wir müssen dies einen Standard geben. Dies wird nur sein, was auch immer der reguläre Datenbankstandard sein wird. Und dann wird das mit einem Motor in allen Kappen kommen, und das wird eine Schnur irgendeiner Art sein. Ein Name wieder, alle Großbuchstaben Das ist auch eine Zeichenfolge ein Benutzer. Dies ist unser Post Kleid Benutzer. Der Name war der Datenbankname, den wir auch eine Zeichenfolge das Passwort verwenden werden, die wir in eine Zeichenfolge setzen werden. Aber beachten Sie, dass, wenn Sie es später in eine Umgebungsvariable setzen können, definitiv tun, dass ein Host, der Host wird immer lokalen Host und unser Port standardmäßig , glaube
ich ist, glaube
ich, 5432 Allerdings sind
wir nur gehen, um das als leere Zeichenfolge als Standard auf 5432 zu belassen Also lasst uns einige der Sachen ausfüllen. Wir brauchen einen Motor. Lassen Sie uns Django dot db dot zurück Enden niederländischen Post GRESS que el Psycho PG verwenden, auch. Und unser Datenbankname wird Rakete Man sein. Ich weiß das, weil ich es so einrichten werde. Wie im nächsten Video möchten
Sie vielleicht Ihre ändern. Meine wird gerade Rocket Man und der Benutzer genannt. Der Post-Presse-Benutzer, den ich verwenden werde, wird auch Rocket Man genannt und das Passwort wieder, wenn Sie dies in eine Umgebungsvariable setzen können. Aber ich werde das jetzt nur in eine Schnur werfen, nur um es schön und einfach zu halten. Denn das Starten der Website ist nicht immer super unkompliziert. Lass uns weitermachen, gib dem einen sicheren Jetzt. Das nächste, was wir tun wollen, ist Century Century als immer Überwachungsprogramm zu installieren,
so dass, wenn Ihre Website wirft Sie eine 500 Luft. Sie müssen nicht nach Protokollen herumgraben. Es wird Ihnen sofort die vollständige Spur zurück geben, und es ist auch völlig kostenlos. Also gehen wir zu Century dot io, und ich werde schnell loslegen. Akzeptieren Sie das, und ich werde hier nur ein neues Konto erstellen. Es ist auch völlig kostenlos. Mein Name ist Caleb Tallinn. Meine E-Mail wird Caleb auf gelernt wayto dot com sein. Mein Passwort wird etwas sein, dass mein Name der Organisation gelernt wird. Eigentlich das hier nicht gelernt werden. Warte, bis es Rocket Man sein wird. Ich brauche keine Rechnungsinformationen und möchte Updates. Keine vereinbarten Nutzungsbedingungen. Und wenn wir fertig sind, klicken Sie
einfach. Fahren Sie fort. In Ordnung. Und das sagt im Grunde:
Hey, Hey, willkommen in Century. Das ist unser am Boarding. Ja, ich bin bereit. Es wird fragen, welche Plattform verwendet wurde. Sie verwendeten Reaktorwinkelschicht von L A PHP-Sinfonie zu Ruby Python. So etwas verwenden
wir Django. Lassen Sie uns ein Projekt erstellen. Jetzt. Dies wird uns genau sagen, was wir tun müssen, um dies zu installieren, also gehen wir zu Schritt drei installiert ein Jahrhundert sdk. Also werden wir das einfach so in unsere Anforderungsdatei einfügen wollen,
und wir wollen all das in unseren Produktions-Dot Pie kopieren, und ich werde es einfach in Ordnung bringen. Ich werde mir keine Sorgen machen, die Importe zu reparieren, sie an die Spitze zu
stellen. Du kannst, wenn du willst. Ich mag es, das ganze Jahrhundert zusammenzuhalten, und das werde ich tun. Kopieren Sie uns einfach und fügen Sie uns direkt in Production Dot Pie ein. Jetzt werde ich dies offen halten, weil der nächste Schritt ist, um zu überprüfen, dass Jahrhunderte installiert indem Sie ein ul Muster erstellen. Aber wenn Sie den Quellcode verwenden, den ich bereitgestellt habe, oder wenn Sie sich den Quellcode ansehen, den ich bereitgestellt habe, gibt es tatsächlich einen Fehler darin, und wir werden diese Luft in der nächsten Lektion selbst lösen. Eine letzte Sache, die wir hier tun wollen, ist unsere Whiskey Dot Pie Datei und hier drin zu öffnen, und Sie können es einfach im Rocketman Ordner namens Whiskey Dot Pie sehen. Es sagt Rocketman-Einstellungen, dass Deb, es wird Ihr Projekt aus Einstellungen dot Dev sein, ich werde den Punkt taub in Punktproduktion ändern. Und all dies sagt, ist zu überprüfen, ob es ein Django-Einstellungen-Modul in unserer Umgebung gibt. Es sucht also nach einer Umgebungsvariablen. Und wenn es nicht Standard gibt, und ich werde das auch jetzt speichern,
bevor wir in das nächste Video kommen, wo wir tatsächlich voran gehen und diese ganze Website
auf Digital Ocean starten , müssen
wir sicherstellen, dass dass wir dies in einem Git-Repository haben. Nein, ich überlasse Ihnen das, um das in jedes Repository zu stecken, das Sie nicht bekommen, dass Hub Labit Bucket
bekommt, so
etwas. Aber wir werden definitiv all diesen Code in einer Art Versionskontrollsystem benötigen das wir auf unserem Server zugreifen können, weil wir das klonen und wir möglicherweise ein paar Änderungen vornehmen
müssen und es dann wieder auf unsere Versionskontrolle schieben System wie get Hub
45. Website: Alles klar. Es ist an der Zeit, dass wir unsere Website auf Digital Ocean starten. Jetzt können die Schritte weitgehend auf Lynn Owed oder AWS oder wirklich jedem anderen
Cloud-Anbieter repliziert werden. Ich benutze nur digitalen Ozean, weil ich sie mag. Sie sind nett und einfach. Sie haben einen guten Preis Punkte. Und habe ich erwähnt, dass sie nett und einfach sind? Das gefällt mir wirklich. Wenn Sie also kein digitales Ozean-Konto haben, werden
Sie wahrscheinlich einen erstellen wollen. Normalerweise haben sie eine Promo, die besagt, Sie wissen schon, wenn Sie sich anmelden, können
Sie 20 Jahre,
50$ als freies Geld bekommen . Aber ich habe bereits ein Konto, also werde ich mich anmelden. In Ordnung, also habe ich nur ein neues Projekt in Digital Ocean namens Rocket Man. Du siehst, ich habe schon Beschichtungen für alle da drauf. Ich mag es, mit Digital Ocean zu hosten, offensichtlich. Also werde ich hier nur einen brandneuen Tröpfchen erschaffen. Ich werde sicherstellen, dass ich Sie bei 18 waren nur einen Standardplan ausgewählt und ich
will nicht $40 pro Monat ausgeben. Ich möchte $5 pro Monat verbringen $40 ist besser, wenn Sie mehr wie Sie benötigen fünf Terabyte Übertragung oder 160 Gigabyte SSD-Speicherplatz oder acht Gigabyte oder vier CP-Nutzung. Weißt du, das brauchen
wir nicht. Wir brauchen einen Gig, 25 Gigabyte außerhalb des SST-Speicherplatzes und ein Terabyte Transfer. Das ist gut genug für das, was wir mit einer kleinen Website machen. Ich brauche keinen Blockspeicher oder so etwas. Ich wähle nur diejenige aus, die mir am nächsten ist. San Francisco ist mir am nächsten. Seltsamerweise bin
ich näher an San Francisco als Toronto, obwohl ich in Kanada bin. SSH-Schlüssel. Hier ist ein großer. Sie werden Ihren SSH-Schlüssel hinzufügen möchten, wenn Sie
also noch keinen haben, möchten
Sie einen hinzufügen. Dies wird Ihr Leben enorm leichter machen. Es ist derselbe SSH-Schlüssel, den Sie Get Hub oder get lab orbit Bucket oder den ssh-Schlüssel geben würden , der sich bereits auf einem anderen Server befinden könnte. Es ist genau das Gleiche. Es ist Ihr öffentlicher SSH-Schlüssel
und er sagt Ihnen sogar, wie Sie es hier tun können. Es gibt also ein paar nette Schritte. Wenn Sie keine haben, können
Sie eine bereits ausgewählte Mine erstellen. Ich muss keine Tags hinzufügen. Ich wähle hier den Hostnamen aus. Hören Sie, um den Raketenmann zu nennen. Ich mag das nicht, das sie uns normalerweise geben. Ich werde Backups für einen Dollar im Monat ermöglichen. Warum nicht diesen Tröpfchen erschaffen? Okay, mein Tröpfchen ist jetzt erschaffen. Ich muss in Jahren ssh. Also brauche ich diese Adresse hier. 167172113119 mal in einer Kopie, die Lasst uns ein Terminal öffnen und ssh in hier. Also lassen Sie uns ssh Route an und dann die i P Adresse tun. Ja, ja. Erlauben Sie mir und hallo. Wir sind innerhalb unseres Servers. Also, jetzt können wir laufen ls freigegeben werden, Dash a. Wir können sehen, dass wir Sie Brötchen zu 18.0 4.3 verwenden. LTs Nun, bevor wir etwas tun, wollen
wir nichts im Root-Benutzer tun. Wir möchten einen neuen Benutzer erstellen. Es ist nur eine gute Praxis. Etwas sicherer auf diese Weise. Also lassen Sie uns einen neuen Benutzer hinzufügen. Ich rufe meinen Caleb an und
schmeiß das ganze Video. Ich werde meinen Benutzer anrufen. Caleb, du solltest deinen Namen nennen. Also, wenn du meinen Namen
siehst, zögern Sie nicht, ihn durch Ihren zu ersetzen. Ich gebe hier ein Passwort ein, und ich werde es nochmal tun. Mein vollständiger Name ist Caleb Tall in meiner Zimmernummer. Telefon für die Arbeit, Telefon
zu Hause, andere. Sind die Informationen korrekt? Ja, ja. meiste war nur leere Informationen. Und jetzt müssen wir mich zu einem Superuser machen. Also lassen Sie uns tun Benutzer mod dash a g pseudo Caleb. Und während wir hier sind, lassen Sie uns voran und stellen Sie sicher, dass offene ssh durch unsere u f W aktiviert hat Jetzt sind Sie f w ist. Was ich sage, ist Ihre unkomplizierte Firewall. Und das ist derjenige, der standardmäßig mit Ihnen kommt, Bond Do so lassen Sie uns voran gehen und tun Sie FW App-Liste. Es ist, wie wir zur Verfügung haben Anwendung Ihre offene. Ssh. Lassen Sie uns FW erlauben offen. Ssh! Und stellen Sie sicher, dass Sie genau die gleiche Art und Weise war Kapital O Capital s und H. Sie haben w aktivieren. Ja, ja. diesen Vorgang durch und Sie den FW-Status. Und das wird uns zeigen, was wir zur Verfügung haben. Also haben wir jetzt geöffnet. Ssh! Der Grund, warum wir dies tun, ist, weil dieser Caleb-Benutzer, den ich erstellt habe, jetzt sein eigener Benutzer sein wird. Also müssen wir nicht Ssh mit Wurzel schwächen. Ssh! Mit Caleb oder mit Ihrem eigenen Benutzer. Jetzt haben wir noch einen Schritt, bevor das tatsächlich verfügbar ist. Wir müssen unseren SSH-Schlüssel vom Root-Konto auf das neue Konto kopieren. Lassen Sie uns unser Waschbecken tun, Armaturenbrett , Archiv Armaturenbrett, dash ch eigenen Caleb Cool. Und Caleb tat es als diese h Schrägstrich Hause Schrägstrich Caleb auch, Übrigens, all diese Befehle werde ich Ihnen im Text zur Verfügung stellen, damit Sie es nicht
zusammen mit mir durch dieses ganze Video tun müssen . Sie können mir dabei zuschauen und dann später den Text durchgehen. Es gibt viele Schritte und Sie möchten das Video möglicherweise nicht pausieren. Weißt du, 100 Mal könnte das ziemlich nervig werden. Los, schlag. Geben Sie ein. Und jetzt lassen Sie uns das einfach beenden. Ich werde Kontrolle C oder kontrolliertes D treffen, und ich werde ssh, Caleb. Und dann, was auch immer die I-Adresse war, die zufällig 1671 71 13119 war und sieh dir das an. Ich bin jetzt da, wie Caleb und Rocket Man mein Server ist. Nun, so erstellen wir ein brandneues Konto oder einen brandneuen Benutzer eher innerhalb unserer neuen U Bahn to system. Ich werde ssh, Caleb bei 167.172 Punkt 1132119 Dass ich p Adresse wird für Sie basierend auf dem
Server, den Sie einrichten, anders sein . Also benutze meine i p Adresse nicht, weil sie dich nicht reinlässt. In Ordnung. Und dann kam ich eines Tages rein. Das erste, was wir tun müssen, ist, dass wir
auch Ihr Brötchen aktualisieren müssen . Wenn Sie dies noch nicht getan
haben, werden Sie dies jedes Mal tun wollen. Sie starten einen neuen Server. Also Ryan Sudo, Apt Update. Es wird nach Ihrem Passwort fragen, und das ist okay. Ich habe das ganze Zeug bereits aktualisiert. Wahrscheinlich sehen Sie eine große Liste von Dingen, die aktualisiert wurden. Könnte sogar ein paar Minuten dauern, und das ist völlig okay. Das nächste, was wir hier tun wollen, ist laufen sudo Apt installieren Python drei dash Pip Python drei Dash Dev Limpy que dev Post Rettung Oppose Kresk, Sie Gesundheit Schmuggelware, Genetik und curl. Wir werden all diese Dinge jetzt wieder benutzen. Das könnte etwas Zeit in Anspruch nehmen. Wenn du das zum ersten Mal machst, wird
es etwas nach dem Vorbild von Ah sagen, es wird 278 ish Megabyte geben. Möchten Sie es herunterladen? Sie klicken oder tippen Sie einfach. Warum und dann getroffen. Geben Sie ein und es wird für Sie als nächstes herunterladen. Sobald Sie das fertig sind, lassen Sie uns einen neuen Beitrag erstellen Greste meisten Post GRESS Sitzung so bald Oh, Dash, Sie posten Gras Erbse SQL. Nun, dieser Punkt, wir müssen eine neue Datenbank namens Rocket Man erstellen. Also wollen Sie ein paar verschiedene Befehle ausführen? Eigentlich, was ich tun werde, ist, das etwas nach oben zu bewegen. Also lasst uns das klar machen. Steigen Sie rein und ich werde Sie durch die Stufen führen. Also Schritt eins, Sie wollen eine neue Datenbank namens Rocket Man erstellen, so erstellen Datenbank Rakete Mann, Vergessen Sie nicht Ihren Semi Doppelpunkt am Ende. Nun, was dies entspricht, ist in unserer Produktion hoch Datei. Wir haben das schon eingestellt. Dies wird mit dem Namen übereinstimmen. Dies ist Ihr Datenbankname. Es heißt Rocket Man Hit. Geben Sie ein und das wird eine neue Datenbank für Sie erstellen. Als nächstes erstellen
wir einen neuen Benutzer namens Rocket Man. Und so ist dieser Benutzer Rocket Man mit Passwort und ein verrücktes Passwort hier
wieder erstellen . Passwort passt zu diesem hier in unserer Produktions-Dot Pie Datei. So ist es erstellen Benutzer rocketman einen Kleinbuchstaben mit Passwort, dann sind verrückte Passwort mit einem Semikolon am Ende. Als nächstes müssen
wir hier ein bisschen Regel ändern. Wir werden eine Rolle ändern. Rocketman setzte die Client-Codierung auf UTF acht. Und mach dir keine Sorgen darüber, dass du das alles ausgibst. Ich werde all das auch in Textformat einfügen, damit Sie das meiste kopieren und einfügen können, nur weil Sie ein Video ansehen und es
manuell eingeben was? Und dann pausieren Sie es, beeindruckendes Spiel immer und immer und immer wieder. Ziemlich schmerzhaft. Also mach dir keine Sorgen darüber, dass du alles tun musst, was du kannst. Sie können das meiste von der gelernten Wartezeit bis Website kopieren und einfügen. Also, dass man sagt, sagte der Client Codierung zu UFT acht die nächste wollen wir eine
Rolle ändern . Rocketman auf die Standard-Transaktionsisolation gesetzt, um Committed zu lesen und das setzt nur unsere Standardtransaktion. Und als nächstes wollen
wir eine Rolle ändern. Rocketman hat Zeitzone zwei UTC eingestellt. Also sagen wir nur, setzen Sie die Zeitzone auf eine regelmäßige Zeit, wenn Sie diese beiden völlig ändern können was auch immer Sie wollen. Dies sind die generischen Einstellungen, mit denen ich sowieso arbeite, also denkt meine Datenbank immer, dass ich auf UTC-Zeit bin. Sobald alles erledigt ist, müssen
Sie hier einen weiteren Befehl ausführen. Sie müssen alle Privilegien für die Datenbank Rocket Man erteilen. Das ist dieser hier oben, zwei der Benutzer namens Rocket Man
, der hier ist. Jetzt sind wir zufällig, dass der Benutzername und die Datenbank gleich sind. Das müssen sie nicht sein. Sie können völlig anders sein, aber in diesem Fall sind
sie gleich, also könnte das ein bisschen verwirrend sein, aber größtenteils sind
wir damit ziemlich fertig Hit. Geben Sie darauf ein. Und dann, wenn Sie fertig sind, Schrägstrich Q um Post-Gras aufzuhören. Als nächstes müssen
wir Pip und Virtue aktualisieren und installieren. Und so werden wir pseudo dash H Pip drei installiert Dash,
dash upgrade, Pip Und all dies tun wird, ist ein Upgrade pipped auf die neueste Version. Anscheinend habe
ich bereits die neueste Version, also mache ich Pip Dash V und ich könnte drei Dash V wählen und wir können sehen, ist Python 3.6 Now . Ich wollte Python 3.7 verwenden, aber das ist kein Problem dafür. Python 3.6 wird genauso gut unterstützt wie Python 3.7 für Wag Tail 2.7. Als nächstes müssen
wir unser virtuelles Ende installieren, also müssen wir Sudo Dash H Pit drei tun. Installieren Sie Virtual in und dies wird gerade Virgil End jetzt installieren. Ich habe bereits installiert, so dass das kein Problem ist, und Sie werden eine Reihe von besteuerten auf Ihrem Terminal als auch sehen, sagen Hey, wir installieren es praktisch installiert haben Jetzt. Als nächstes möchte
ich hier einen neuen Ordner erstellen. Also PWD ist Theorie Arbeitsverzeichnis, in dem ich bin. Ich bin im Schrägstrich nach Hause Caleb. Wenn Sie einen anderen Benutzer haben, wird
es anders sein. Es wird Schrägstrich nach Hause Schrägstrich Steve, Wenn Ihr Name Steve ist, also werde ich m k dire. Machen Sie ein Verzeichnis im Wesentlichen Raketen Männer. Und wenn Sie neu in dieser Art von UNIX wie Sprache sind, ist
dies hier abgeflickt, sagt Heim Schrägstrich, dass zu Hause sagen. Also Heim Schrägstrich Caleb, das ist mein Benutzer und dann Raketen-Mann und dann kann ich die in Rocket Man sehen, wenn ich p w d mache, können
wir sehen, dass zu Hause Caleb und Rocket Man meine Ordnerstruktur ist. Da bin ich gerade dabei. Jetzt. An diesem Punkt könnten
wir Dash L.
A.machen A. und wir sehen hier absolut nichts. Und das ist gut. Wir wollen nichts da drin. Erstellen Sie noch nichts virtuelles Enver. Wir wollen unser Projekt hier drinnen klonen. Zuerst in dieser Woche wird nicht beschweren sich über den Versuch, ein Projekt in einen
bereits vorhandenen Ordner zu klonen, oder Sie müssen Ihr Projekt in einen anderen Ordner klonen und dann rekursiv lee es, Verschieben Sie alle Ihre Dateien auf der Befehlszeile. Das ist irgendwie schmerzhaft für die meisten Menschen. Stattdessen werden wir unser Projekt in dieses leere Verzeichnis klonen. Also bekomme Klon, und dann, was auch immer dein Repo-Name ist, das ist nur ein Beispiel-Repo, das ich benutze, während ich diesen ganzen Kurs aufnehme. Aber irgendwann wird das https sein. Holen Sie sich Hub dot com Schrägstrich zitieren für alle Schrägstrich Rakete Mann. Und dann ist der wichtigste Teil hier Ihr Punkt am Ende, der Punkt bedeutet, dass es Ihr gesamtes Repo in Ihrem Ordner
installieren oder klonen wird, in dem Sie sich gerade befinden. Nein, das wird mich bitten, mich anzumelden, weil ich https anstelle von ssh verwende. Weißt du, wenn ich es tue,
ist Dash l. Wir haben alles da drin, einschließlich meines Devi Dot eskalieren drei, die wahrscheinlich nicht da drin sein sollte,
aber da drin ist . Lassen Sie uns nun voran und erstellen Sie ein neues virtuelles Ende. Also lassen Sie uns virtuelle und Rocket Man Ven jetzt. Der Grund, warum ich diese Rocket Man ven genannt habe, ist, weil ein es mit dem übereinstimmt, was wir bereits mit V und V für unser lokales Projekt
gearbeitet haben und weil es seine
bereits inter get ignorieren Datei übereinstimmt , so dass wir uns keine Sorgen machen müssen unsere gesamte virtuelle Umgebung zu begehen. Und jetzt müssen wir wirklich darauf eingehen. Also lassen Sie uns Source Rocket Man Vendor Bin aktivieren und jetzt sind wir drin. Und an diesem Punkt, wenn wir Pip frieren, ist
das perfekt. Du solltest absolut nichts sehen. Das bedeutet, dass wir uns in einer virtuellen Umgebung befinden, die völlig sauber ist. Da ist nichts vorinstalliert. Jetzt müssen wir Pip installieren G Einhorn Bio-Mais. Ich bin mir nicht wirklich sicher, wie die Leute sagen, dass zusammen mit Psycho PG binäre kühle Bohnen Sie holen Freeze noch einmal und wir werden sehen, dass wir G Unicorn Version 20.0 Punkt vier verwenden und Zyklus PG Binary Version 2.8 Punkt vier. Klären Sie das so ab. Machen Sie hier wieder Platz. Jetzt wollen wir unsere Anforderungsdatei pip installieren So pip install dash Unsere Anforderungen dot txt wissen, was das tun wird, ist, dass wir das tatsächlich vorher gemacht haben, wird unsere Anforderungsdatei nehmen und Django Wegel, Django Erweiterungen, Jenga Widget Tweaks und ein Jahrhundert sdk. Also lasst uns weitermachen. Installieren Sie das alles in Ordnung, All das ist installiert, und jetzt können wir unseren Server ausführen. Lassen Sie uns versuchen, ihren Server mit Produktionseinstellungen auszuführen. Also lasst uns Python verwalten. Ich führe Server 0.0 Punkt Null, Gericht 8000 und lassen Sie uns Einstellungen angeben. Die Einstellungen sind gleich der Raketenman-Punkt-Einstellungen Punktproduktion. Das ist also dein Rocket Man-Ordner. Dies ist Ihr Einstellungsordner, und dies ist Ihre Produktions-dupuy-Datei. Also lasst uns weitermachen. Schlag das und Ricky und sieh, was passiert. Wir sollten an dieser Stelle so etwas
sehen. Es steht. Fehlender statischer Dateimanifesteintrag für eine Datei. Wenn du das siehst, ist
das eine gute Nachricht. Das bedeutet, alles, was wir tun müssen, ist laufen, sammeln statisch. So jetzt können wir Python verwaltet ausführen. Ich sammle statisch und oh, nein, es sagt, wir haben keine Modulname Debug-Symbolleiste. Und das liegt daran, dass
unsere Server, die versuchen, Dev zu starten, anstatt unsere Produktionseinstellungen hier auszuführen, versuchen, dev dot txt auszuführen, und es sucht nach installiertem APS Debo Tuller, der nicht existiert, die nur existieren , weil wir pip installieren Dash sind Dev dot txt, die mit Django-Debug-Symbolleiste,
PDB und allem anderen in der Requirements-Datei kommt . Wir haben das nicht für den Server getan, und das wollen wir nicht für den Server tun. Wir wollen nicht, dass Django Debug Tool installiert ist und wir wollen nicht, dass dev dot pie verwendet wird. Wir möchten, dass unsere Produktionseinstellungen verwendet werden, also gehen wir weiter. Sammeln Sie statische und lassen Sie uns Einstellungen tun ist gleich Rocket man Punkt Einstellung Stott Produktion. Und wir werden das in ein wenig beheben, damit wir nicht ständig
Einstellungen festlegen müssen . Und was Ah, 279 statische Dateien kopiert 357 Post Prozess und alles ging in unser statisches Verzeichnis zu Hause . Caleb Rocket Mann Schrägstrich statisch. Nun, wenn wir tun, um zu tun, wenn wir unseren Server wieder laufen, sollten
wir sehen, dass Sie 109 un angewandte Migrationen haben oder wie viele Sie für Ihr
Projekt haben . Ihr Projekt kann sich von meinem Projekt unterscheiden. Ich glaube, zu diesem Zeitpunkt warten, bis kommt mit 89 un angewandte Migrationen. Also haben wir einfach 20 weitere Migrationen hinzugefügt. Das ist völlig okay. Ich werde das bereinigen, weil das zu diesem Zeitpunkt nichts für uns tun . Was wir brauchen, ist, dass wir Teoh zuerst brauchen. Wir werden diese Einstellungsflagge loswerden, weil das super ärgerlich ist. Du könntest dein Leben so leben, aber ich will es nicht. Das Einstellungs-Flag ist die Einstellungen gleich Rocket man Punkt-Einstellungen Punkt-Produktion wie das, Ja ,
nein, das ist ärgerlich nach rechts jedes einzelne Mal. Also werden wir das loswerden. Und stattdessen werden wir Django-Einstellungen exportieren. Modul ist gleich, und dies ist eine String-Raketen-Mann DOT-Einstellungen nicht Produktion. Und jetzt, wenn wir Django-Einstellungen-Modul Echo, können
wir sehen, dass es zurückkehrt. Rocketman stellt die Produktion ein. Nun, wenn ich Jangle Run Server wie folgt laufen, werden
wir sehen, dass es automatisch Rocket Man-Einstellungen Punktproduktion verwendet. Es hat dies vorher nicht getan, und wenn wir statische sammeln, müssen
wir auch nicht statisch mit dem Einstellungs-Flag sammeln . Lassen Sie uns also tun, um uns nur als Beispiel zu tun, sammeln Sie statische, aber lassen Sie uns diese Einstellungen loswerden. Flaggen Ja, und es funktionierte perfekt, aber jetzt, wenn wir unseren Server laufen, können
wir sehen, wir haben 109 un angewandte Migrationen. Lasst uns weitermachen und diese migrieren. Also stornieren Sie Ihren Server mit Kontrolle. Sehen Sie, das ist, um Python Dot Pie Migrieren zu verwalten und es wird einfach alle 109 Migrationen oder wie viele Migrationen Sie jetzt haben, das sieht gut aus. Lassen Sie uns voran und erstellen Sie einen neuen Superuser mit Python, der hoch verwaltet wird, Create Superuser und mein Name wird Caleb sein. Meine E-Mail-Adresse ist Caleb bei gelernt wag tail dot com Passwort ist, ich werde es nicht
laut sagen und ich habe jetzt einen Superuser. Vor einer Weile überprüften
wir u f w, der Pseudo Sie fw Status sagte, und wir haben dafür gesorgt, dass offene ssh uns zur Verfügung stand. Lassen Sie uns voran gehen und öffnen Port 8000 Sätze tun Pseudo Sie FW erlauben 8000 und dies wird uns
erlauben, unsere Website auf unseren Servern zu sehen I p Adresse mit einem Port in der URL und C-Status , und wir sollten dies sehen. Nun, wenn wir unseren Browser hier öffnen und zu http gehen und dann, was auch immer Ihr Port ist, ist nicht Ihr Port Ihre i p Adresse. Also meine i p Adressen 167172113119 Port 8000. Diese 8000 ist wichtig. Diese 8000 wird von Python kommen, der hoch ausgeführt Server Port 8000am Ende
dort verwaltet wird. Also lassen Sie uns diese und Aktualisierungsseite ausführen und wir können sehen, dass wir einen internen Serverfehler haben. Jetzt gehen wir zurück zu unserem Jahrhundert, als wir Jahrhundert installiert, und es sagt, dass wir unsere
erste Veranstaltung haben . Das ist perfekt. jetzt Wenn Siejetztkeinen Fehler haben, können
Sie diesen Teil komplett überspringen. Aber wenn Sie einen Fehler haben, wird
Jahrhundert Ihnen enorm helfen. Also bring mich zu meiner Veranstaltung, und diese, die wir hier betrachten, ist eigentlich ein älteres. Das war, als wir anfangs liefen, sammeln statische, und wir sahen, dass statische Dateien Luft manifestieren. Das ist es, was das hier ist. Das ist also cool. Das wurde eingeloggt. Wir haben einen anderen Wert. Aaron. Hier. Fehlende statische Dateien manifestieren Verletzungen für Bilder. Kontakt-Overlay. Nun, hier kann das Debuggen irgendwie schmerzhaft werden, also normalerweise mache ich das, und ich werde mein ganzes Projekt danach durchsuchen. Lassen Sie uns also in Visual Studio-Code gehen oder den Editor, den Sie am besten mögen. Und ich werde nur eine globale Suche nach Bildern machen. Kontakt Overlay Punkt PNG Und hier sehe ich statisch. Nun, das sieht vielversprechend aus, weil statische Manifestdateien sich manifestieren. Diese Datei kann nicht gefunden werden. Was gibt es? Gehen wir weiter und werfen einen Blick. Vorlagen. Wir wollen statische Bilder. Kontakt-Overlay. Sicher genug, das gibt es tatsächlich. Also, was ist der Deal hier? Die Chancen sind, dass es wahrscheinlich nur dieser Schrägstrich ist, damit wir uns retten, begehen und es ziehen können, wenn wir wollten. Oder wenn Sie einen kleinen Cowboy-Code machen wollen, können
wir unseren Server stoppen und wir könnten Pseudo Nano machen. Oder, wenn Sie eher ein Assistent sind, können
Sie auch vim verwenden. Ich werde Nano benutzen, weil es ein wenig einfacher für Leute ist, die ganz neu in
dieser Art von Sache sind . Also Pseudo Nano Rocket Mann Schrägstrich Vorlagen Schrägstrich Fußzeile Punkt HTML und das entspricht Rocket Man Vorlagen enthält Fußzeile Punkt html, und ich kann hier gehen und tun, um den ganzen Weg über zu bewegen, und ich will nur loswerden das jetzt zu speichern, traf
ich die Kontrolle. Oh, und beenden Sie ein Hit Control X. Jetzt lassen Sie uns unseren Server noch einmal laufen und mal sehen, was passiert. Mal sehen, was passiert, wenn wir hier aktualisieren. Sieh dir das an. Unsere Seite wird jetzt geladen. Es sieht nicht so aus, als wäre das viel, aber es wird ziemlich viel in nur ein bisschen sein. Also hier drin können
wir sagen, dass man gelöst wurde. Gehen wir wieder rein. Wir wissen, dass das gelöst wurde. Das war unsere 1. 1 und, ah, das ist, als es ein zweites Mal auf die Seite kam. Es fehlt der Kontakt übermäßig, also weiß ich, dass auch einer gelöst wurde. Mädchen, wir haben momentan keine Probleme. Jetzt sieht das hässlich aus, aber es ist tatsächlich funktional. Also, wenn wir zu den Anzeigenmännern gehen, wird das nicht sehr schön aussehen. Aber ich kann meine Informationen hier meinen Benutzernamen und mein Passwort eingeben, und ich habe versandt. Jetzt wieder, nichts davon wird schön geladen, wird uns in nur ein wenig reparieren,
aber das ist der Beweis, dass unser CMS läuft und Sie tatsächlich Python-Code
auf Ihrem Server ausführen . Gehen wir zurück zu unserem Terminal und drücken, stornieren oder kontrollieren, Siehe zu stornieren. Und stellen wir sicher, dass wir hier alle im selben Verzeichnis sind. Also bin ich zu Hause. Caleb Rocket Man. Wenn Sie nicht hier sind, können
Sie CD getillt Home Slash Rocket Man machen, und das wird Sie genau dort bringen, wo ich bin. Versuchen wir nun, dies ohne den Python ausführen Serverbefehl auszuführen. Lassen Sie uns versuchen, dies mit G Unicorns,
Atsugi,
Unicorn
Dash,Dash,
Bind auszuführen Atsugi, Unicorn
Dash, Dash, und wir werden lokalen Host Port 8000 zwei Rocket Man dot Whiskey binden und gehen wir zurück zu unserer Website hier und nur Aktualisieren. Sieh es dir an. Es läuft immer noch. Es ist immer noch hässlich, aber es läuft immer noch. Dieses Mal läuft es mit dem Einhorn, und es läuft nicht mit Jangle Run-Server. Das sind gute Neuigkeiten. Jetzt gehen wir weiter und machen das wirklich gut funktioniert. Also, zunächst einmal wollen
wir nicht zu Unicorn Bind 0.0 dot 0.0 Port 8000 Rocket Mandel Whiskey laufen müssen
und das läuft ständig. Wir wollten nur automatisch im Hintergrund laufen. Es wird also aus unserer virtuellen Umgebung deaktiviert. Und lassen Sie uns Pseudo Nano auf See System d Slash System Slash g Einhorn Punkt Socke in. Wir werden hier und hier eine Socket-Datei erstellen, und ich habe gerade eingefügt, die endet. Du musst nicht zusehen, wie ich es tippe. Und hier haben wir Einheiten,
was unsere Beschreibungen sind. Und hier haben wir Einheiten, Einhorn-Steckdose Wir haben einen Socket, der ihm sagt, welcher Socket verwendet werden soll, und eine Reihe von Installationen Überschriften. Also lasst uns weitermachen, Kontrolle. Oh, Kontrolle X. Sobald Sie das in Ihr System D System G Einhorn Dot Socket kopiert haben, ist
diese Steckdosendatei sehr wichtig. Dies wird nicht ohne einen Socket ausgeführt. Als nächstes wollen
wir einen Pseudo nano oder sie, wenn Sie lieber sie oder einen anderen Kommandozeileneditor Pseudo nano at sea system D system zu unicorn dot service Nun müssen diese Namen übereinstimmen. Si Chef, die Einhorn Dot Buchse n g Einhorn Dot Service Jetzt in hier, haben
wir tatsächlich ziemlich viel mehr. Also haben wir wieder Einheit. Wir haben diese Beschreibung erfordert g Einhorn-Buchse. Denken Sie
daran, deshalb entspricht der Name und interservice. Das ist eigentlich der wichtigste Teil, den wir haben. Unser Benutzer ist gleich Caleb. Es wird also sein, was auch immer Ihr Benutzername ist, wenn ein anderer Benutzername verwendet wird. Gruppe ist Dub, Dub, Dub Strich Daten. Das ist okay. Sind arbeiten Verzeichnis ist zu Hause Schrägstrich Caleb Schrägstrich Rocketman. Auch hier wird das anders sein. Wenn Sie einen anderen Benutzernamen und einen anderen Projektnamen haben, könnte
Ihr Hausschrägstrich Steve Schrägstrich sagen Was auch immer Ihr Projektname genau ist, ist der Start wieder. Das wird eine Pfadsache sein. So Startseite Schrägstrich Ihren Benutzernamen Schrägstrich Ihren Projektnamen Schrägstrich Ihr virtuelles Ende des Namens Schrägstrich bin Schrägstrich g Einhorn. Und dann müssen
Sie auch sicherstellen, dass hier unten, wo es sagt, Raketenmandat Whiskey ist Ihr
Projektname dot Whiskey. Sehr, sehr wichtig. Wenn Sie in der Zukunft in nur wenigen Schritten auf die Einhorn-Probleme stoßen, stehen die
Chancen, dass dies falsch eingestellt wurde und Sie haben ein Pfadproblem. Nun, wenn wir nach unten scrollen, gibt es nichts wirklich anderes, worüber man reden kann, wir müssen nur sicherstellen, dass dieser Pfad absolut korrekt ist. Lass uns weitermachen. Steuere Ode, um Control X zu speichern, um zu beenden. Starten wir die Einhorn-Buchse. Wir machen das mit dem Pseudosystem CTL Start G Unicorn hat Steckdose und dann lassen Sie uns auch
diesen Socket aktivieren . Mit Pseudo-System aktiviert CTL die Einhorn-Punkt-Sockel und es erstellt ein Geschwister einfach gut. Und jetzt, an dieser Stelle, könnten
wir System CTL Status g Unicorn Dot Socket tun und den Status dieses Sockets erhalten und Sie sollten aktive Hören sehen. Es ist vielleicht nicht grün. Es könnte in Weiß sein. Das ist in Ordnung. Es ist nur an dieser Stelle sollte aktives Hören sagen. Als nächstes müssen
wir auf die Existenz dieses Sockets überprüfen, also wollen wir nur sicherstellen, dass der Socket existiert. Also lassen Sie uns Datei Schrägstrich ausführen g Einhorn Punkt Socket und das ist tatsächlich falsch. Es ist nicht saugen. Da gehen wir. Und so sollte dies nur ausgeben, dass es sich um eine Socket-Datei handelt. Nun gehen wir weiter und überprüfen Sie den Status des Einhorns ganz so Pseudo-System CTL-Status auf Einhorn. Und an diesem Punkt, seien
Sie nicht alarmiert, aber es sollte sagen, inaktiv tot. Jetzt bestreiten wir die Socket-Aktivierung mit einem einfachen Curl-Befehl. Deshalb haben wir Curl viel,
viel früh installiert, so dass wir Curled Dash Dash UNIX Dash Socket Slash Run Slash g Unicorn
Dot Sock lokalen Host tun konnten . Nun, wenn wir Enter drücken, sollten
wir die Ausgabe unserer Website alle in HTML sehen. Aber wir sollten die Ausgabe davon einfach so sehen. Wir haben oh Arten von Sachen hier drin, und das ist die Ausgabe unserer Home dot html oder Home page dot html Vorlage. Nun, wenn Sie dies nicht sehen, wenn Sie eine 400 sehen oder wenn Sie zuerst einen anderen Fehler sehen, überprüfen Sie Jahrhundert stellen Sie sicher, dass es keine Fehler gibt. Wenn ein Fehler vorliegt, stellen Sie sicher, dass Sie diesen Fehler zuerst beheben. Wenn es im Jahrhundert keine Fehler gibt, besteht die
Wahrscheinlichkeit, dass das Problem entweder mit der G Einhorn Out-Socket-Datei oder dem G Einhorn ist. Diese Service-Akte, du wirst ein paar Schritte zurückgehen und die einfach aufrühren wollen. Wahrscheinlich ist es nur ein Problem mit Pfad-Sache. Die andere Sache, die Sie überprüfen müssen, ist in Ihrem Projekt. Wenn Sie auf ein Problem stoßen, stellen Sie
einfach sicher, dass dies Raketenman-Punkt-Einstellung Stop-Produktion ist. Also werde ich das abklären. Und an diesem Punkt tut
es nicht wirklich weh, unser System neu zu laden, Damon. Also lassen Sie uns Pseudo-System CTL Dämon neu laden und Pseudo-System neu starten. Gee, Einhorn. Nun gehen wir weiter und richten Motor X ein. Das ist wirklich,
wirklich wichtig, weil Engine X so ziemlich unser Proxy zu und von G
Unicorn sein wird . Wir werden dies brauchen, um auch alle unsere statischen Dateien zu laden, so dass es nicht
durch Python gehen muss , weil jemand auf Ihre Website trifft und dann diese Anfrage
durch Python-Zehe gehen lässt, eine Datei
nachschlagen und dann Datei ist viel langsamer, als nur einen Dienst zu lassen, der ausschließlich diesem gewidmet ist. Wie Motor X. Mach das Arbeit. Also lassen Sie uns Pseudo Nano auf See Motor X Seiten Strich verfügbar Schrägstrich Rocketman tun. Diese Datei sollte an dieser Stelle nicht existieren, und ich habe hier nur eine Konfiguration eingefügt. Aber wir werden das durchgehen, damit es nach Port 80 suchen wird. Das ist Ihr Standard, Http oder Ihre Website Port gehen, um wieder zuzuhören. Bericht 80 Und hier ist der Servername mein Server I p Adresse. Ich werde auch hier meine endgültige I P Adresse oder meine endgültige Domain setzen, nicht ich p Adresse. Also, Raketen-Mann, lerne
nicht, wie man mit der Kamera dotiert. Ich werde hier einen Fehler anmelden,
also wird es direkt in mein Projekt als Motor X dash air dot log Ich sagte, die Position des Gewebes auf Ich sagte die statische Assets. Also wieder, das kommt auf das Vorbeigehen. Also bin ich immer im Home-Verzeichnis. Ich benutze den Benutzer Caleb und mein Projekt. Meine Akte in meinem Ordner, der mein Projekt enthält, heißt Rock It, Man. Und als wir statisch gesammelt haben, es einen Ordner für uns namens Static erstellt. Und so ist das wirklich nur ein Alias zu erstellen. Also, wenn Sie zu Ihrer Website gehen dot com Schrägstrich statischer Schrägstrich Bild Punkt PNG tatsächlich sagen , Hey, ,
Hey,
das Bild ein PNG lebt nicht nur in einem statischen Ordner. Es lebt in diesem exakten statischen Ordner. Und Ihre Medien sind, wo alle Ihre Medien mit einem Wag Tail Projekt hochgeladen werden. Und dann, wenn Sie eine Seite, Ihre Homepage wirklich hier, Augen werden einige Proxy-Parameter enthalten und wird passieren, dass G Einhorn Dot Socke eingereicht Diese Datei, die wir getestet, um sicherzustellen, dass existiert sagen, Hey, gib es da durch. Lassen Sie uns voran gehen, Hit control Oh, und Kontrolle X Und wieder, wenn ich ein wenig zu schnell mit einigen dieser Sachen, können
Sie immer auf diesen Code auf gelernt wag tail dot com verweisen. Also, jetzt müssen wir hier ein Geschwister erstellen, und so können wir das mit Pseudo l N Dash s und dann kommt das einfach aus der Rocketman-Datei. Das ist derjenige, den wir es hier addiert haben, werden wir zu ähnlichen bekommt usw. Engine X Seiten aktiviert. Also im Grunde sagen
wir nur, Hey, die Seite ist jetzt aktiviert. Wir haben eine Konfiguration vor und jetzt sagen wir, dass die Konfiguration aktiviert ist. Lassen Sie uns voran und testen Engine X mit Pseudo-Engine X Dashti Dinge waren in Ordnung und lassen Sie uns neu starten Motor X an diesem Punkt System CTO Motor neu starten X. Bisher, keine Probleme. Wir können sogar dio Status und Yonex, wir können sehen, dass es jetzt läuft. Dieser Punkt, wenn Sie Ihre Website sehen, sind die
Chancen, dass es nicht laufen wird. Und sicher genug, ich aktualisiere einfach die Seite. Und doch läuft es noch nicht. Das ist okay. Wir haben noch ein paar Schritte zu tun. Erste Dinge zuerst. Wir müssen unseren Port 8000 von Ihnen löschen, FW. Also, wenn wir euch den FW-Status pseudo machen, werden
wir Port 8000 sehen und es wird loswerden, weil wir das nicht brauchen. So sudo Sie FW löschen, erlauben 8000 und es ist der Status wieder. Es ist jetzt nicht mehr da drin. Wir müssen Engine X hier rein lassen, also Pseudo Sie FW erlauben Motor X voll und bemerkte die Apostrophe um diese herum. Und wenn wir den Status haben, sollten
Sie etwas sehen, das so aussieht. Gehen
wir zurück zu unserer Seite. Und ich werde diesen Port 8000 loswerden, weil wir das nicht mehr brauchen und es überprüfen . Wir haben statische Vermögenswerte. Alles sieht in Ordnung aus. Wir können zurück zu unserer Homepage gehen und ich bin nur auf meiner i P Adresse jetzt. Es gibt keinen Inhalt hier, also gibt es keine Bilder, Texte oder irgendetwas. Aber hey, das funktioniert. Und wenn ich gehe, um Schrägstrich hinzufügen Männer. Alles funktioniert hier drin. Und lassen Sie uns einfach testen, dass der Debug ausgeschaltet ist, indem Sie auf die 40404044 Seite nicht gefunden oder diese Seite kann nicht gefunden werden. Wenn Sie die normale gelbe Seite sehen, die Sie sehen, Ali-Vorlage nicht vorhanden oder die Seite existiert nicht oder irgendeine Art von Fehler, die Sie normalerweise mit der lokalen Django-Entwicklung
sehen. Das bedeutet, dass das Debuggen immer noch aktiviert ist und Sie Ihre Produktionseinstellungen wahrscheinlich nicht verwenden. Und das bedeutet, dass Django wahrscheinlich eine ganze Angst statische Assets bedient, was langsam und unsicher ist. willst du nicht. Aber für uns haben wir alles so laufen, wie wir Teoh wollten. Jetzt war ich der nächste Schritt ist es, diese ich p Adresse loszuwerden. Wir wollen das ich p Adresse dort überhaupt nicht. Das ist nicht mehr 1985. Wir können tatsächlich einen Domain-Namen haben. Also, äh, spielt keine Rolle, bei wem Ihre Domain registriert ist. Mine ist bei Google registriert und so ist es nur die gelernte Warteleiten-Website. Und wenn ich in DNS gehe und wieder, wenn du mit Go Daddy oder Cloudflare so etwas bist, hast du Zugriff auf dein DNS und hier unten in meinen benutzerdefinierten Ressourceneinträgen, möchte
ich Rocket Man nur Zeit setzen. Geben wir ihm 10 Minuten oder wenn du Go Daddy benutzt, denke
ich, sie machen Sekunden. Es wäre wie 600 Sekunden für 10 Minuten. Und ich habe meine I-Adresse da reingelegt. Das ist mein Server. Ich p Adresse 167172113119 Klicken Sie hinzufügen. Und normalerweise wird es so etwas sagen, sie innerhalb der nächsten 48 Stunden wirksam werden. Aber in der Regel Registrare AARP es ziemlich schnell Go. Daddy ist irgendwie langsam, aber normalerweise passiert das ziemlich schnell. Als nächstes werden
wir sicherstellen wollen, dass dies in unserer Engine X-Datei erlaubt ist. Also, wo ist es, der es getan hat? Ein Pseudo nano, etc. Engine X Sites verfügbar. Rocket Man, lasst uns voran gehen und diese Adresse hier loswerden. Das brauchen wir nicht mehr, weil ich Rocket Man benutze. Lerne jetzt nicht wayto dot com, das DNS ist vielleicht noch nicht eingetreten, also muss ich vielleicht ein wenig warten, aber ich weiß, dass es irgendwann als nächstes funktionieren wird, ich muss noch eine Sache ändern. Pseudo-Nano-Raketen-Mann
Schrägstrich Einstellungen, Schrägstrich Produktion und ich möchte dieses Sternchen hier loswerden. Wenn du sicherer sein wolltest, könntest
du deine i-P-Adresse dort reinlegen. Aber es ist nicht wirklich notwendig, weil es lokalen Host akzeptieren wird, was Engine X und auch Ihre Domain ist. Also meins ist rocketman dot lernen wag tail dot com. Deiner könnte einfach super genial sein. Wag Schwanz Website dot com Gehen Sie voran, sagen Sie, dass. Und jetzt, weil wir eine Änderung an unserem Raketen-Mann vorgenommen haben und Sie als nächstes,
Dinge, die wir tun müssen, und ihren nächsten Dashti, die nur sicherstellen würde, dass wir keine
Tippfehler oder irgendetwas drin haben . Pseudo-System CTL Neustart Engine X und Pseudo-System Neustart G Unicorn. Nun, wenn wir wieder über Server und in rul haben wir die i p Adresse. Das sollte nicht mehr funktionieren. Bringt Sie einfach auf die Engine x Seite, die genau das ist, was Sie sehen sollten. Und wenn wir zwei Rocket Mann gehen, lernen Sie
nicht wag tail dot com, aus welchem Grund auch immer, das will ich https verwenden. Wir haben https nicht installiert. jedoch Wenn SiejedochSSL hinzufügen möchten, schauen Sie
auf jeden Fall in bestimmte Pot. Jetzt. Für mich ist
dies einfach eine Einlösung Sache an meinen Browser sagen Hey, Sie haben die Website vor getroffen. Es sollte https haben, aber es tut derzeit nicht. Also habe ich gerade ein neues Inkognita-Fenster oder privaten Browsing-Modus geöffnet und in Rocket Man Don't learn. Warte, sag Dot com. Gehen wir zu meinem Kopf, Männer. Wir sind so nah an Monolog und jetzt kann ich alles ändern, was ich will. Jetzt eine letzte Sache, die wir wahrscheinlich tun sollten, ist gehen Sie in Ihre Wag Tail Einstellungen Goingto Websites ändern, dass von lokalen Host und setzen Sie in Ihrer Domain.