suchen
Django-LernerfahrungOct 17, 2016 pm 02:07 PM

Django ist ein Python-Webentwicklungsframework, das dem MVC-Entwurfsmuster folgt, in Django jedoch normalerweise als MTV (Model-Template-Views) bezeichnet wird. Das Modell ist die Datenpersistenzschicht, in der hauptsächlich Entitätszuordnungen, Entitätsbeziehungen und einige Entitätsmethoden gespeichert werden. Vorlage ist die Präsentationsebene, die hauptsächlich zum Anzeigen von Daten verwendet wird. Die Ansichts-Engine von Django kann sie in HTML rendern und anzeigen. Views ist die Geschäftslogikschicht, die als Brücke zwischen Modell und Vorlage in Django fungiert. Sie verarbeitet das Modell und übermittelt Daten an die Vorlage. Außerdem akzeptiert sie Vorlagenanforderungen und -parameter und übermittelt Modelländerungen nach Abschluss der entsprechenden Logik.

Ich persönlich denke, dass MTV und .NET MVC hier die gleiche Bedeutung haben. Der größte Unterschied besteht darin, dass es sich bei .net-Ansichten um die Präsentationsschicht handelt, während es sich bei Django um die Geschäftslogikschicht handelt , es bedeutet nur, dass das Verständnis von Ansichten einfach unterschiedlich ist. Tatsächlich können sie als Controller verwendet werden. Im Folgenden werde ich die Syntax und Funktionen von Django basierend auf einem persönlichen Verständnis vorstellen.

1. Ansichten und URLs

Ansichten sind die Geschäftslogikschicht. In Django sind Ansichten normalerweise ein Views.py-Modul, das im entsprechenden Paket platziert ist. Views.py enthält spezifische logische Funktionen. Um eine Verbindung zwischen Vorlagen und Ansichten herzustellen, ist ein bestimmter Routing-Mechanismus erforderlich. Daher verfügt Django normalerweise über ein Routing-Programm urls.py im Stammverzeichnis. . Routen werden durch Muster erstellt und durch reguläre Ausdrücke beschrieben, was die Flexibilität des Routing-Mechanismus erheblich verbessert.

Zum Beispiel:

views.py

def home(request):
    values = request.META.items()
    values.sort()
    return render_to_response('home.html',{"values":values})
urls.py
from django.conf.urls.defaults import *
    urlpatterns = patterns('',('^$',home),)


hier anfordern Die Parameter sind erforderlich, Sie können sie jedoch beliebig benennen, solange sie den Spezifikationen entsprechen. Die Anforderung enthält die Anforderungsinformationen der Seite. sender_to_response befindet sich in django.shortcuts, daher müssen Sie form django.shortcuts import sender_to_response vorab deklarieren. request.MATE enthält alle Informationen zur Anforderungsschnittstelle und Benutzerinformationen. shor() sortiert die Liste von klein nach groß. Der Rückgabewert bedeutet, dass eine Wertevariable an die Vorlage home.html gesendet wird. Die Tupel in Mustern in URLs fügen regelmäßige Leitregeln hinzu: Mit Ausnahme derjenigen, deren Originaladressen mit „^$“ übereinstimmen, werden sie an die Startseite weitergeleitet. Dies setzt natürlich voraus, dass sich die Datei „views.py“ und „urls.py“ im selben Ordner befinden, andernfalls muss auf den Home-Namespace verwiesen werden. Wenn Sie mehrere Werte in der URL übergeben möchten, können Sie dem übereinstimmenden Wert, den Sie übergeben möchten, Klammern hinzufügen, z. B. ('^([^/] )/([^/] ) /$', home) um mit /some /some/ übereinzustimmen, und some werden an die Home-Verarbeitungsfunktion übergeben. Das entsprechende Haus muss entsprechende Parameter hinzufügen, um es zu akzeptieren.

2. Vorlage

Vorlage ist der Ort, an dem Daten in Django angezeigt werden, normalerweise im HTML-Format. In der Vorlage sollte die Verarbeitungslogik von Django in {% %} geschrieben werden angezeigt werden soll, sollte in {{ }} geschrieben werden. Die Masterseite von Django kann wie jedes Dokument verwendet werden. Voraussetzung ist, dass Sie den Block mit {% block name %}{% endblock %} deklarieren, um ihn zu füllen oder zu ersetzen name%} und rufen Sie dann die entsprechenden Blöcke auf.

3. Modell

Konfigurieren Sie die Datenbank im Datenbankwörterbuch in Setting.py. Nachdem die Konfiguration abgeschlossen ist, verwenden Sie manage.py startapp, um die App zu erstellen und Python-Code in Modelle zu schreiben, um die Entitätszuordnung zu beschreiben. Zum Beispiel:

models.py

class Publisher(models.Model):
    name = models.CharField(max_length = 30)
    website = models.URLField()
  
def __unicode__(self):
    return self.name
  
class Meta:
    ordering = ['name']


models ist in django.db enthalten, das die allgemeinen Funktionen von kapselt die Modellklassenschnittstelle. CharField() erstellt Daten vom Typ Varchar mit Parametern wie max_length, blank, verbose_name usw. Gibt die maximale Länge, ob leer, bzw. den Anzeigenamen an. def__unicode__ stellt die Standardanzeige nach dem Boxen bereit. Wenn diese Funktion nicht festgelegt ist, wird der Objekttyp standardmäßig angezeigt. Die Klasse Meta gibt das Standardsortierfeld des Modells an. Gleichzeitig bietet Django auch eine Fremdschlüssel-Einstellungsschnittstelle. Hier nehmen wir das Buch als Beispiel

class Book(models.Model):
     title = models.CharField(max_length = 100)
     authors = models.ManyToManyField(Author) #多对多关系
     publisher = models.ForeignKey(Publisher) #多对一关系
     publication_date = models.DateField(blank = True, null = True)

Fügen Sie nach der Erstellung eine App zur Einstellung hinzu .py-Konfigurationsdatei INSTALL_APPS Der Pfad zum Paket.

Django unterstützt codefirst. Wenn Sie die Datenbank aktualisieren, generiert Django zunächst die SQL-Anweisung und führt sie dann zur Überprüfung aus das Modell, oder Sie können manage py sqlall Books ausführen. Sie können das Modellobjekt direkt deklarieren, um das Einfügen von Daten zu implementieren, indem Sie save() verwenden, um die Suche nach Objekten.filter() zu speichern. Sie können delete() für das zu löschende Objekt aufrufen und Sie können delete auch für das zu löschende Modell aufrufen Chargen. Auf die gleiche Weise ruft update eine einzelne Änderung am Objekt und eine Stapeländerung am Modell auf.

4. Integriertes Unterframework

Im Paket django.contrib sind mir derzeit nur die Funktionen bekannt Der einzige Nachteil ist, dass die Benutzeroberfläche etwas hässlich ist. Admin ist die offiziell von Django bereitgestellte Backend-Verwaltungsplattform. Es kann die von Ihnen hinzugefügten Apps verwalten und integriert alle gängigen Funktionen wie Hinzufügen, Löschen, Ändern und Überprüfen. Der Aufrufcode ist ebenfalls sehr einfach. Sie müssen lediglich den Admin-Link in urls.py aktivieren. Sie können ihn bei Bedarf selbst ändern. Wenn Sie die App-Verwaltung hinzufügen möchten, müssen Sie den folgenden Code hinzufügen (nehmen Sie Book als Beispiel):

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'publisher', 'publication_date') #显示顺序
    list_filter = ('publication_date',) #过滤列表
    ate_hierarchy = 'publication_date' #激活列表上方的日期查询
    ordering = ('-publication_date',) #排序方式'-'代表倒序
    filter_horizontal = ('authors',) #添加时候的横向选择过滤(此处假设book和authors 是多对多关系)
    raw_id_fields = ('publisher',) #添加时候的选择(此处假设publisher和book是一对多关系)
  
admin.site.register(Publisher)
admin.site.register(Author,AuthorAdmin)
admin.site.register(Book,BookAdmin)


5 . Caching-Mechanismus

Ich persönlich halte Caching für sehr wichtig für eine Website mit zu vielen Besuchen. Die in Django bereitgestellten Caching-Methoden sind grob in drei Typen unterteilt: Konfigurationsmethode für den vollständigen Site-Cache , View-Cache-Konfigurationsmethode und Ziel-Cache-Konfigurationsmethode. Ändern Sie einfach die entsprechenden Konfigurationsdateien. Sie können auch andere Plug-Ins installieren, um das Caching zu unterstützen, z. B. Memcached.


Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu findenSo verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu findenMar 05, 2025 am 09:58 AM

Dieses Tutorial zeigt, wie man Python verwendet, um das statistische Konzept des Zipf -Gesetzes zu verarbeiten, und zeigt die Effizienz des Lesens und Sortierens großer Textdateien von Python bei der Bearbeitung des Gesetzes. Möglicherweise fragen Sie sich, was der Begriff ZiPF -Verteilung bedeutet. Um diesen Begriff zu verstehen, müssen wir zunächst das Zipf -Gesetz definieren. Mach dir keine Sorgen, ich werde versuchen, die Anweisungen zu vereinfachen. Zipf -Gesetz Das Zipf -Gesetz bedeutet einfach: In einem großen natürlichen Sprachkorpus erscheinen die am häufigsten vorkommenden Wörter ungefähr doppelt so häufig wie die zweiten häufigen Wörter, dreimal wie die dritten häufigen Wörter, viermal wie die vierten häufigen Wörter und so weiter. Schauen wir uns ein Beispiel an. Wenn Sie sich den Brown Corpus in amerikanischem Englisch ansehen, werden Sie feststellen, dass das häufigste Wort "Th ist

Bildfilterung in PythonBildfilterung in PythonMar 03, 2025 am 09:44 AM

Der Umgang mit lauten Bildern ist ein häufiges Problem, insbesondere bei Mobiltelefonen oder mit geringen Auflösungskamera-Fotos. In diesem Tutorial wird die Bildfilterungstechniken in Python unter Verwendung von OpenCV untersucht, um dieses Problem anzugehen. Bildfilterung: Ein leistungsfähiges Werkzeug Bildfilter

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?Wie benutze ich eine schöne Suppe, um HTML zu analysieren?Mar 10, 2025 pm 06:54 PM

In diesem Artikel wird erklärt, wie man schöne Suppe, eine Python -Bibliothek, verwendet, um HTML zu analysieren. Es beschreibt gemeinsame Methoden wie find (), find_all (), select () und get_text () für die Datenextraktion, die Behandlung verschiedener HTML -Strukturen und -Anternativen (SEL)

Einführung in die parallele und gleichzeitige Programmierung in PythonEinführung in die parallele und gleichzeitige Programmierung in PythonMar 03, 2025 am 10:32 AM

Python, ein Favorit für Datenwissenschaft und Verarbeitung, bietet ein reichhaltiges Ökosystem für Hochleistungs-Computing. Die parallele Programmierung in Python stellt jedoch einzigartige Herausforderungen dar. Dieses Tutorial untersucht diese Herausforderungen und konzentriert sich auf die globale Interprete

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?Mar 10, 2025 pm 06:52 PM

Dieser Artikel vergleicht TensorFlow und Pytorch für Deep Learning. Es beschreibt die beteiligten Schritte: Datenvorbereitung, Modellbildung, Schulung, Bewertung und Bereitstellung. Wichtige Unterschiede zwischen den Frameworks, insbesondere bezüglich des rechnerischen Graps

So implementieren Sie Ihre eigene Datenstruktur in PythonSo implementieren Sie Ihre eigene Datenstruktur in PythonMar 03, 2025 am 09:28 AM

Dieses Tutorial zeigt, dass eine benutzerdefinierte Pipeline -Datenstruktur in Python 3 erstellt wird, wobei Klassen und Bedienerüberladungen für verbesserte Funktionen genutzt werden. Die Flexibilität der Pipeline liegt in ihrer Fähigkeit, eine Reihe von Funktionen auf einen Datensatz GE anzuwenden

Serialisierung und Deserialisierung von Python -Objekten: Teil 1Serialisierung und Deserialisierung von Python -Objekten: Teil 1Mar 08, 2025 am 09:39 AM

Serialisierung und Deserialisierung von Python-Objekten sind Schlüsselaspekte eines nicht trivialen Programms. Wenn Sie etwas in einer Python -Datei speichern, führen Sie eine Objektserialisierung und Deserialisierung durch, wenn Sie die Konfigurationsdatei lesen oder auf eine HTTP -Anforderung antworten. In gewisser Weise sind Serialisierung und Deserialisierung die langweiligsten Dinge der Welt. Wen kümmert sich um all diese Formate und Protokolle? Sie möchten einige Python -Objekte bestehen oder streamen und sie zu einem späteren Zeitpunkt vollständig abrufen. Dies ist eine großartige Möglichkeit, die Welt auf konzeptioneller Ebene zu sehen. Auf praktischer Ebene können das von Ihnen ausgewählte Serialisierungsschema, Format oder Protokoll jedoch die Geschwindigkeit, Sicherheit, den Status der Wartungsfreiheit und andere Aspekte des Programms bestimmen

Mathematische Module in Python: StatistikMathematische Module in Python: StatistikMar 09, 2025 am 11:40 AM

Das Statistikmodul von Python bietet leistungsstarke Datenstatistikanalysefunktionen, mit denen wir die allgemeinen Merkmale von Daten wie Biostatistik und Geschäftsanalyse schnell verstehen können. Anstatt Datenpunkte nacheinander zu betrachten, schauen Sie sich nur Statistiken wie Mittelwert oder Varianz an, um Trends und Merkmale in den ursprünglichen Daten zu ermitteln, die möglicherweise ignoriert werden, und vergleichen Sie große Datensätze einfacher und effektiv. In diesem Tutorial wird erläutert, wie der Mittelwert berechnet und den Grad der Dispersion des Datensatzes gemessen wird. Sofern nicht anders angegeben, unterstützen alle Funktionen in diesem Modul die Berechnung der Mittelwert () -Funktion, anstatt einfach den Durchschnitt zu summieren. Es können auch schwimmende Punktzahlen verwendet werden. zufällig importieren Statistiken importieren Aus Fracti

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor