[PYTHON] Wiederholen Sie alles für den Django-Anmeldebildschirm

Ich habe verschiedene Dinge aus der Funktion heraus recherchiert, aber ich habe es durch Nachahmung gemacht, weil es schwierig wurde, nur einen Anmeldebildschirm zu erstellen. Ich habe das Projekt jedoch von Grund auf neu erstellt (lacht)

image.png

Die Prozedur wurde fast auf die gleiche Weise aus der Referenzquelle erstellt! Großartiger Artikel

Diese Art von Artikel ist hilfreich, da Django immer noch wenig japanische Informationen hat. Dann denke ich, es ist Ruby ... Ich habe mich nur für Python entschieden, weil ich die Zukunft nicht kannte

Referenzquelle https://intellectual-curiosity.tokyo/2018/11/13/django%E3%81%AE%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E5%87%A6%E7%90%86%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E2%91%A0/

Die Seite hier war die beste!

Ich habe einen Anmeldebildschirm erstellt, indem ich dieses Verfahren befolgt habe.

image.png

Wenn Sie sich anmelden

image.png

Wenn Sie sich abmelden, kehren Sie zum Anmeldebildschirm zurück.

Wenn Sie nicht angemeldet sind, müssen Sie zum Anmeldebildschirm zurückkehren.

Ich werde den Code schreiben

python:accounts.urls.py


from django.conf.urls import url
from django.contrib.auth import views as auth_views
from . import views
from django.urls import path, include

app_name = 'accounts'

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
    path('home/', views.home, name="home"),
]

python:accounts.views.py


from django.shortcuts import render
from django.contrib.auth.decorators import login_required

@login_required
def home(request):
    return render(request, 'accounts/home.html')

python:config.setting.py


LOGIN_REDIRECT_URL = '/accounts/home'
LOGOUT_REDIRECT_URL = '/accounts/home'

hinzufügen

templates/accounts/base.html


<!doctype html>
<html lang="ja">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">

    {% block customcss %}
    {% endblock customcss %}
    
    <title>verwandte Familie</title>
  </head>
  <body>
  
    {% block header %}
    {% endblock header %}

    {% block content %}
    {% endblock content %}

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
  </body>
</html>

HTML für die Anmeldung

templates/accounts/login.html


{% extends 'accounts/base.html' %}
{% load static %}


{% block customcss %}
    <link rel='stylesheet' type='text/css' href="{% static 'css/accounts/style.css' %}">
{% endblock customcss %}


{% block header %}
{% endblock header %}

{% block content %}
  <body>
    
    <form class="form-login" action='' method='POST'>
    <h1>Anmeldebildschirm</h1>
    {% csrf_token %}

    {{ form.as_p }}

    <button>Einloggen</button>
    <p class="mt-5 mb-3 text-muted">&copy;GK</p>
    </form>
  </body>
</html>
{% endblock content %}

templates/accounts/home.html


{% extends 'accounts/base.html' %}
{% load static %}

{% block customcss %}
    <link rel='stylesheet' type='text/css' href="{% static 'css/style.css' %}">
{% endblock customcss %}


{% block header %}
<title>Startbildschirm</title>
{% endblock header %}

{% block content %}
<body>
  {% if user.is_authenticated %}
  Hi {{ user.username }}!
  <p><a href="{% url 'accounts:logout' %}">logout</a></p>
  {% else %}
  <p>You are not logged in</p>
  <a href="{% url 'accounts:login' %}">login</a>
{% endif %}
  </body>
{% endblock content %}

Der Anmeldebildschirm ist jetzt implementiert. Von nun an werde ich untersuchen, wie Informationen mit Benutzer- und Mitarbeiterinformationen verknüpft werden, die ich ursprünglich tun wollte.

Recommended Posts

Wiederholen Sie alles für den Django-Anmeldebildschirm
Erstellen Sie einen Django-Anmeldebildschirm
Erstellen eines Anmeldebildschirms in Django all auth
Erstellen Sie den Registrierungsbildschirm für Django-Mitarbeiter mit Klasse neu
Internationalisierungsunterstützung mit Django 1.9
[Django] Wiederholen Sie die Migration
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
DJango Memo: Von Anfang an (Fehlerbildschirmeinstellung)
Lernnotizen für die Migrationsfunktion im Django-Framework (2)
Lernnotizen für die Migrationsfunktion im Django-Framework (3)
Lernnotizen für die Migrationsfunktion im Django-Framework (1)
Übergang zum Update-Bildschirm mit dem Django-Tag
[Django] So leiten Sie nicht angemeldete Benutzer zur Anmeldeseite um
Django2-Bildschirmadditionsfluss
[Django] Benennen Sie das Projekt um
Zusammenfassung der Stolperpunkte in Django zum ersten Mal
Django Treffen Sie Ihre Auswahl nur für die Einrichtung, zu der Sie gehören
DJango Memo: Von Anfang an (weitere Änderungen am Verwaltungsbildschirm)
[Python] Erstellen Sie mit Django einen Bildschirm für den HTTP-Statuscode 403/404/500