Ausgabe der Tabellenstruktur in Django

Einführung

Ich bin auf die Ausgabe eines Tabellenkonfigurationsdiagramms mit der Django-App gestoßen und habe es als Memorandum geschrieben. Ich habe Doccano als Anmerkungswerkzeug in meiner Arbeit geklont, möchte aber überprüfen, wie die Tabelle strukturiert ist. hätten. Die Doccano-Entwicklungsumgebung wird mit Docker erstellt.

Bibliothek zu verwenden

Ich habe die [graph_models] von django-extension (https://django-extensions.readthedocs.io/en/latest/graph_models.html) verwendet, um das ER-Diagramm auszugeben.

Verfahren

Doccanos docker-compose.yml ist in Entwicklung und Produktion unterteilt.

python:docker-compose.dev.yml



version: "3.7"
services:

  backend:
    image: python:3.6
    volumes:
      - .:/src
      - venv:/src/venv
    command: ["/src/app/tools/dev-django.sh", "0.0.0.0:8000"]
    environment:
      ADMIN_USERNAME: "admin"
      ADMIN_PASSWORD: "password"
      ADMIN_EMAIL: "[email protected]"
      DATABASE_URL: "postgres://doccano:doccano@postgres:5432/doccano?sslmode=disable"
      ALLOW_SIGNUP: "False"
      DEBUG: "True"
    ports:
      - 8000:8000
    depends_on:
      - postgres
    networks:
      - network-backend
      - network-frontend

  frontend:
    image: node:13.7.0
    command: ["/src/frontend/dev-nuxt.sh"]
    volumes:
      - .:/src
      - node_modules:/src/frontend/node_modules
    ports:
      - 3000:3000
    depends_on:
      - backend
    networks:
      - network-frontend

  postgres:
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      POSTGRES_USER: "doccano"
      POSTGRES_PASSWORD: "doccano"
      POSTGRES_DB: "doccano"
    networks:
      - network-backend

volumes:
  postgres_data:
  node_modules:
  venv:

networks:
  network-backend:
  network-frontend:

Wir werden die Bibliothek von hier aus installieren. Fügen Sie die folgenden drei Zeilen zu src / require.txt hinzu.

requirements.txt


graphviz
pydotplus
django-extensions

Ich werde den Container starten.

docker-compose -f docker-compose.dev.yml up #Container starten
docker ps #Überprüfen Sie den Containernamen
docker exec -it doccano_backend_1 bash #Bash eingeben

Als nächstes werden wir in der Bash des Containers arbeiten.

cd src #Gehen Sie zu src
pip install -r requirements.txt #Bibliotheksinstallation
apt install graphviz #Installation von graphviz

Fügen Sie dann "django_extensions" zu INSTALLED_APPS in app / settings.py hinzu.

setting.py


INSTALLED_APPS = [
    'whitenoise.runserver_nostatic',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'server.apps.ServerConfig',
    'api.apps.ApiConfig',
    'widget_tweaks',
    'rest_framework',
    'rest_framework.authtoken',
    'django_filters',
    'social_django',
    'polymorphic',
    'webpack_loader',
    'corsheaders',
    'drf_yasg',
    'django_extensions'← Hinzufügen
]

Verwenden Sie "Docker-Compose Down", um den Container fallen zu lassen und erneut zu starten.

docker-compose -f docker-compose.dev.yml up --force-recreate

Geben Sie die Bash des Containers erneut ein und geben Sie das ER-Diagramm aus.

docker exec -it doccano_backend_1 bash
cd src #Gehen Sie zu src
source venv/bin/activate #Betreten Sie die virtuelle Umgebung
cd src/app #manage.Wechseln Sie in das Verzeichnis, in dem sich py befindet
python3 manage.py graph_models -a -g -o graph-model.pdf #ER-Diagramm ausgeben

In Doccano werden der Container src und darunter im Hostverzeichnis bereitgestellt, sodass Sie das PDF von der Hostseite aus öffnen können.

Artikel, auf die verwiesen wird

Recommended Posts

Ausgabe der Tabellenstruktur in Django
Benennen Sie Tabellenspalten in Django3 um
Modell in Django
Ausgabebaumstruktur von Dateien in Python
Django-Tabellenerstellung
Form in Django
PDF mit Django ausgeben
Markdown-Ausgabe mit Django
Django Python Verschiebungstabelle
Modelländerungen in Django
Tabellendefinition in SQL Alchemy
C sprachähnliche Struktur in Python
Japanische Ausgabe mit Python
[Django] Tabelle abschneiden (alle Tabellendaten löschen)
Leistungsoptimierung in Django 3.xx.
PHP var_dump-like in Django-Vorlage
Behandeln Sie Konstanten in Django-Vorlagen
Legen Sie das Ausgabeformat vom Typ DateTime in der Django-Vorlage fest
Implementieren Sie die Follow-Funktion in Django
Ich habe einen Befehl zum Generieren eines Kommentars für eine Tabelle in Django eingegeben
(Hinweis) Django in Vagrant-Umgebung
[Django] Verzeichnisstrukturpraxis + Notizen
Zeigen Sie Django ManyToManyField in der Vorlage
Lesen Sie die Fortran-Ausgabe mit Python
Ich habe ein Ausgabeprogramm für Primzahlentabellen in verschiedenen Sprachen erstellt
Laden Sie die Django-Shell mit ipython neu
Implementieren Sie einen tabellengesteuerten Test in Java
Legen Sie Platzhalter in Eingabefeldern in Django fest
8 häufig verwendete Befehle in Python Django
Fügen Sie in Django dynamisch Formularfelder hinzu
Implementierung der Login-Funktion in Django
Registrieren Sie die Django-Anwendung im Projekt
Machen Sie die Standardausgabe in Python nicht blockierend
Schreiben Sie externe Schlüsseleinschränkungen in Django
Wie man CSS in Django reflektiert
Wechseln Sie die in Django 1.9 angezeigte Sprache
[Django] Befehl zum Ausgeben von QuerySet an csv
Exportieren und Ausgeben von Dateien in Python
Stellen Sie Django in 3 Minuten mit Docker-Compose bereit
Pin factory_boy Startwert in Django
GraphQL-API mit graphene_django in Django
Implementierung der Like-Schaltfläche in Django + Ajax
Holen Sie sich die Abfragezeichenfolge (Abfragezeichenfolge) mit Django
Erstellen Sie mit Django einen LINE-Bot
Es wurde eine Funktion hinzugefügt, um gewünschte Verschiebungen in der Django-Verschiebungstabelle zu registrieren