[PYTHON] Django-Projektbasislinie

Erstellen Sie ein Verzeichnis und erstellen Sie eine virtuelle Umgebung in Terminal

Projektstammverzeichnis

terminal@Passendes Verzeichnis


mkdir {project-name}
cd {project-name}

Virtuelle Umgebung

Erstellen

terminal@root-dir


python -m venv {env-name}
Anlaufen

terminal(ps)


{env-name}\Scripts\activate

or

terminal(bash)


source {env-name}/bin/activate



Sobald Sie dies getan haben Öffnen Sie die Projektdatei und das Terminal im Editor




Erstellen von Django-Projekten und Apps

Erstellen Sie ein Django-Projekt

terminal


python -m pip install --upgrade pip
python -m pip install Django
django-admin.exe startproject {project-name} .

Anwendungserstellung

terminal


python manage.py startapp {app-name} .



von hier, Der Hauptteil der Baseline umfasst die Isolierung von settings.py nach Umgebung und die Verwaltung von Umgebungsvariablen nach .env.




Hauptgeschichte

Statische Verzeichnisse und Vorlagenverzeichnisse direkt unter dem Anwendungsverzeichnis hinzugefügt

Erstellen Sie urls.py direkt unter dem Anwendungsverzeichnis

Erstellen

{app-dir}/urls.py


from django.urls import path, include
from django.conf.urls import url

from . import views


app_name = '{app-name}'

urlpatterns = [
    path('', views.index, name='index'),  #Index-Handler ist Ansichten.Angenommen, es ist in py definiert
]
Das von app-dir verwaltete Routing wird von project-dir aufgerufen.

{project-dir}/urls.py


from django.conf.urls.static import static
from django.conf import settings
from django.contrib import admin
from django.urls import path, include
from django.views.generic import TemplateView


urlpatterns = [
    path('admin/', admin.site.urls),
    path("", include("fit.urls")),
    path('sw.js', (TemplateView.as_view(template_name="book_manager/sw.js", content_type='application/javascript', )), name='sw.js'),
]

Handlerdefinition in views.py

views.py


from django.shortcuts import render


def index(request):
    return render(request, "fit/index.html", {
        "key": "value",
    })

Einstellungen.py Einstellungen mit .env

install django-dotenv

terminal


python -m pip install django-dotenv
.env Erstellung

root/.env


SECRET_KEY = {Kopierter geheimer Schlüssel}
DJANGO_SETTINGS_MODULE = fitmod.settings.local  #Lokal(Einstellungen werden später getrennt)
Änderung von settings.py (nur der geänderte / hinzugefügte Teil wird beschrieben)

settings.py


from dotenv import load_dotenv

# loading env-vars
load_dotenv('.env')

SECRET_KEY = os.getenv("SECRET_KEY")

# ~Abkürzung~

INSTALLED_APPS = [
    ...
    '{app-name}', 
]

# ~Abkürzung~

LANGUAGE_CODE = "ja"

TIME_ZONE = "Asia/Tokyo"

Isolierung von settings.py

Schreiben Sie settings.py neu, das von wsgi.py geladen wurde, und verwalten Sie.py mit .env

wsgi

root/{project-dir}/wsgi.py


import os

from django.core.wsgi import get_wsgi_application
from dotenv import load_dotenv


load_dotenv('.env')
DJANGO_SETTINGS_MODULE = os.getenv("DJANGO_SETTINGS_MODULE")

os.environ.setdefault('DJANGO_SETTINGS_MODULE', DJANGO_SETTINGS_MODULE)

application = get_wsgi_application()

wsgi

root/manage.py


#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys

from dotenv import load_dotenv


load_dotenv('.env')
DJANGO_SETTINGS_MODULE = os.getenv("DJANGO_SETTINGS_MODULE")


def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', DJANGO_SETTINGS_MODULE)
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()



Das Ende des Hauptteils der Grundlinie.




migration

terminal


python manage.py makemigrations
python manage.py migrate

createsuperuser

terminal


python manage.py createsuperuser

Serverstart

terminal


python manage.py runserver

Verzeichnisaufbau

{root-dir}/
     │
     ├ {project-name(project-dir)}
     │     ├ settings    #hinzufügen
     │    │     ├ init.py
     │    │     ├ local.py
     │    │     └ production.py
     │    ├ init.py
     │    ├ urls.py
     │    ├ asgi.py
     │    ├ wsgi.py
     │     └ db.sqlite3  #Bei Verwendung von SQLite
     │
     ├ {app-name(app-dir)}
     │     ├ migrations
     │     ├ template    #hinzufügen
     │     │     └ {app-name}
     │     │       └ ...
     │     ├ static      #hinzufügen
     │     │    └ {app-name}
     │     │        └ ...
     │    ├ init.py
     │     ├ admin.py
     │     ├ apps.py
     │     ├ model.py
     │     ├ test.py
     │     ├ urls.py     #hinzufügen
     │     └ views.py
     │
     ├ venv/
     │   └ ...
     │
     ├ manage.py
     │
     ├ .env              #hinzufügen
     ├ .gitignore        #hinzufügen
     ├ requirements.txt  #hinzufügen(Bei Verwendung von Heroku)
     ├ Procfile          #hinzufügen(Bei Verwendung von Heroku)
     ├ runtime.txt       #hinzufügen(Bei Verwendung von Heroku)
     └ db.sqlite3  #Bei Verwendung von SQLite

.gitignore

root/.gitignore


*.pyc
*~
__pycache__
db.sqlite3
/static
.env
venv

Recommended Posts

Django-Projektbasislinie
Bau der Django-Projektumgebung
[Django] Benennen Sie das Projekt um
Starten Sie ein Django-Projekt
Django
Shell zum Erstellen eines Django-Projekts
Django Projekt Entwicklungsumgebung Bau
Stellen Sie das Django-Projekt für Heroku bereit
Schritte zum Erstellen eines Django-Projekts
Registrieren Sie die Django-Anwendung im Projekt
Django-Update
Django Note 4
Projekt Euler 37
Projekt Euler 47
Projekt Euler 31
Projekt Euler 4
Django-Suche
Projekt Euler 38
Django Installation
Projekt Euler 26
Projekt Euler 8
Django Zusammenfassung
Django-Test
Projekt Euler 22
Projekt Euler 19
Projekt Euler 50
Projekt Euler 33
Befehle zum Erstellen eines neuen Django-Projekts
Projekt Euler 32
Projekt Euler 43
Django # 2 (Vorlage)
Django Note 5
Berühre Django
Django Memo
Django Zusammenfassung
Projekt Euler 35
Projekt Euler 36
Django Grundlagen
CentOS8 + Apache2.4 + pyenv + mod_wsgi + Django-Projektbereitstellung
Projekt Euler 24
Django Shoho
Projekt Euler 48
Projekt Euler 45
Django Grundeinstellungen
Projekt Euler 6
Projekt Euler 44
Django + Docker
Projekt Euler 39
Projekt Euler 40
Django Glossar
Projekt Euler 49
Projekt Euler 29
Projekt Euler 27
Projekt Euler 41
Django Installation
HTTPS-Servereinstellungen von Django Project: Verschlüsseln
Anpassung der Django-Projektstruktur (Aufteilen und Strukturieren)
Django: Referenzen
Projekt Euler 18
Projekt Euler 13