[PYTHON] Ich berührte Bachstelze (2). Einführung von Django-Erweiterungen.

Einführung

Hallo.

Ich möchte mit der Entwicklung mit Bachstelze fortfahren, aber derzeit ist keine der zum Debuggen usw. erforderlichen Bibliotheken installiert. Apropos Django-Bibliotheken, die zum Debuggen verwendet werden können, django-extensions oder [django-debug-toolbar](https: // django-debug-toolbar) .readthedocs.io / de / latest /) und so weiter. ~~ Es scheint, dass nur das bekannt ist ~~

Also habe ich dieses Mal Django-Erweiterungen eingeführt und den Ablauf zusammengefasst. Ich möchte auch die Django-Bibliothek untersuchen.

Vorheriger Artikel


Einführung von Django-Erweiterungen

Ich werde über den Ablauf der Einführung von Django-Erweiterungen schreiben. Ich habe es auf dem Mac gemacht.

Führen Sie zunächst den folgenden Befehl aus.

pip install django-extensions

Fügen Sie als Nächstes Django-Erweiterungen zu INSTALLED_APPS in mysite / settings / base.py hinzu.

Sie können die Grundfunktionen allein damit verwenden, aber es gibt einige, die nicht verwendet werden können. Es gibt einen Befehl, der ein ER-Diagramm des Modells generieren kann (siehe unten), für den jedoch einige Schritte erforderlich sind.

brew install Graphviz
pip install pygraphviz

Ich habe einen Fehler erhalten und es hat nicht funktioniert, aber ich konnte ihn lösen, indem ich mir diese AUSGABE ansah. Referenz: pygraphviz kann unter Mac OS 10.11.6 nicht installiert werden


Versuchen Sie es mit Django-Erweiterungen

□show_urls Die Funktion von Django-Erweiterungen ist sehr praktisch. Der erste, der vorgestellt wird, ist show_urls.

python manage.py show_urls

Die Beziehungen in der "Ansicht" und "Vorlage" der im Django-Projekt festgelegten URL werden in einer Liste angezeigt. Ich denke, dieser Ausdruck ist schwer zu verstehen, also schauen wir uns zuerst das Ausführungsprotokoll an. (Auszug)

/django-admin/login/    django.contrib.admin.sites.login        admin:login                                                                                                                                 
/django-admin/logout/   django.contrib.admin.sites.logout       admin:logout                                                                                                                                
/django-admin/password_change/  django.contrib.admin.sites.password_change      admin:password_change                                                                                                       
/django-admin/password_change/done/     django.contrib.admin.sites.password_change_done admin:password_change_done 

Auf der linken Seite / django-admin / login / etc. http://localhost:8000/ Stellt den folgenden Pfad (URL-Muster) dar.

Das zentrale django.contrib.admin.sites.login usw. zeigt den Speicherort der Ansichtsfunktion an. Schauen Sie sich django.contirib.admin.sites auf django an. Sie können sehen, dass es eine Anmeldefunktion gibt.

Das Admin: Login rechts zeigt den Namen des Pfades. Wenn Sie die URL in url_patterns festlegen, legen Sie sie als drittes Argument fest

name="hogehoge"

Du schreibst es so. Dieser Name entspricht dem.

Als Test möchte ich eine Ansichtsfunktion hinzufügen und sie mit show_urls untersuchen. Ich werde den Code basierend auf der Referenzseite schreiben. Referenz: [Einführung in Django] Zeigen wir die Seite mithilfe von Ansichten an

Der hinzugefügte Code lautet wie folgt.

home/views.py


from django.http import HttpResponse
 
def index(request):
    return HttpResponse("Hello, world.")

home/urls.py



from django.conf.urls import url
from . import views
 
urlpatterns = [
    url(r'^$', views.index, name='index'),
]

mysite/urls.py


from home import views as home_views #Oben hinzugefügt

url(r'^home/', include('home.urls')) #In der Liste der URL-Muster hinzugefügt

Klicken Sie auf [hier](http: // localhost: 8000 / home /) und wenn Hallo, Welt. Angezeigt wird, ist es OK.

Führen Sie nun den folgenden Befehl aus.

python manage.py show_urls | grep home
/home/  home.views.index        index

Es wurde angezeigt. Dies ist nützlich, wenn Sie Ansichten importieren oder URLs in Vorlagen eingeben. Referenz: So fügen Sie den URL-Link der Django-App und ihre Vorteile ein

** □ ER-Diagramm ** Referenz: ER-Diagramm (Entity Relationship Diagram) Mit Django-Erweiterungen können Sie mit einem einzigen Befehl ein ER-Diagramm eines Projekts in PNG erstellen. Es ist eine ausgezeichnete, die beim Entwerfen einer Datenbank verwendet werden kann. Lassen Sie uns nun den Befehl ausführen und überprüfen.

python manage.py graph_models -a -o mysite_er.png

Ich denke, mysite_er.png wird im selben Verzeichnis generiert. er.png ER-Diagramm

□runserver_plus Diesmal möchte ich noch einen vorstellen. Es eignet sich hervorragend zum Debuggen in einem Webbrowser. Lassen Sie uns den Befehl sofort ausführen.

python manage.py runserver_plus

Dann ...

CommandError: Werkzeug is required to use runserver_plus.  Please visit http://werkzeug.pocoo.org/ or install via pip. (pip install Werkzeug)

** Installieren Sie Wekzeug wie angegeben und versuchen Sie es erneut. ** ** **

Es unterscheidet sich von einem normalen Runserver. In der letzten Zeile des Protokolls befindet sich so etwas. Notieren Sie sich dies, da Sie es später verwenden werden.

 * Debugger PIN: xxx-xxx-xxx

Bearbeiten wir nun den Code wie folgt.

home/views.py


return HttpReesponse("Hello, world.") #Machen Sie absichtlich einen Fehler
スクリーンショット 2019-12-24 19.30.26.png Fehlerbildschirm スクリーンショット 2019-12-24 19.31.24.png Fehlerbildschirm unten

Auf der rechten Seite befindet sich eine terminalähnliche Taste. Sie können debuggen, indem Sie darauf klicken und den zuvor notierten PIN-Code eingeben. Python-Code kann interaktiv ausgeführt werden, sodass Sie die Werte von Objekten wie Variablen überprüfen können.


schließlich

Dieses Mal habe ich Django-Erweiterungen in das Projekt eingeführt. Nächstes Mal möchte ich Bachstelze berühren.

Recommended Posts

Ich berührte Bachstelze (2). Einführung von Django-Erweiterungen.
Ich habe HaikuFinder berührt
Ich berührte Flask
Ich habe das Tensorboard von TensorFlow berührt
Ich habe AWS Chalice berührt
Ich berührte Bachstelze (3). Untersuchung und Implementierung von Popup-Nachrichten.
Ich habe Bachstelze (1) berührt und die Speichermethode überschrieben.
Ich habe versucht, die Qiita-API zu berühren
Ich berührte Tensorflow und Keras
Ich berührte PyAutoIt für einen Moment
Ich habe etwas berührt, das sich Touch Designer nennt