J'étais en train de rechercher diverses choses à partir de la fonction, mais je l'ai fait en l'imitant car il devenait difficile de créer simplement un écran de connexion. Cependant, j'ai recréé le projet à partir de zéro (rires)
La procédure a été créée presque de la même manière à partir de la source de référence! Excellent article
Ce genre d'article est utile car Django a encore peu d'informations japonaises. Ensuite, je pense que c'est Ruby ... J'ai juste choisi python parce que je ne connaissais pas l'avenir
Source de référence 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/
Le site ici était le meilleur!
J'ai créé un écran de connexion en suivant cette procédure.
Lorsque vous vous connectez
Lorsque vous vous déconnectez, vous serez renvoyé à l'écran de connexion.
Si vous n'êtes pas connecté, vous serez obligé de revenir à l'écran de connexion.
J'écrirai le code
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'
ajouter à
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>famille apparentée</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 pour la connexion
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>Écran de connexion</h1>
{% csrf_token %}
{{ form.as_p }}
<button>S'identifier</button>
<p class="mt-5 mb-3 text-muted">©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>Écran d'accueil</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 %}
L'écran de connexion est maintenant implémenté. À partir de maintenant, je vais étudier comment associer des informations aux informations sur les utilisateurs et le personnel que je souhaitais à l'origine.
Recommended Posts