ログイン画面を作成しているが、遷移のロジックが分からない
お世話になっております。叢咲(むらさき)と申します。
今Djangoでログイン画面を作成しています。POSTで入力を送るのですが、どのように遷移するのかが分からず困っています。
構成図とスクリプト
tesT # ├─ diary # │ ├─ __pycache__ # │ │ ├─ __init__.cpython-36.pyc # │ │ ├─ admin.cpython-36.pyc # │ │ ├─ apps.cpython-36.pyc # │ │ ├─ models.cpython-36.pyc # │ │ ├─ urls.cpython-36.pyc # │ │ └─ views.cpython-36.pyc # │ │ │ ├─ migrations # │ │ ├─ __pycache__ # │ │ │ └─ __init__.cpython-36.pyc # │ │ │ │ │ └─ __init__.py # │ │ │ ├─ templates # │ │ ├─ base.html # │ │ ├─ check.html # │ │ ├─ login.html # │ │ └─ signup.html # │ │ │ ├─ __init__.py # │ ├─ admin.py # │ ├─ apps.py # │ ├─ models.py # │ ├─ tests.py # │ ├─ urls.py # │ └─ views.py # │ ├─ tesT # │ ├─ __pycache__ # │ │ ├─ __init__.cpython-36.pyc # │ │ ├─ settings.cpython-36.pyc # │ │ ├─ urls.cpython-36.pyc # │ │ └─ wsgi.cpython-36.pyc # │ │ │ ├─ __init__.py # │ ├─ settings.py # │ ├─ urls.py # │ └─ wsgi.py # │ ├─ db.sqlite3 # └─ manage.py #
diary/urls.py
python
1from django.urls import path, include 2from .views import signupview, loginview, sampleview 3 4urlpatterns = [ 5 path('signup/', signupview, name="signip"), 6 path('login/', loginview, name="login"), 7 path("sample/", sampleview) 8]
python
1from django.shortcuts import render, redirect 2from django.contrib.auth import authenticate, login 3# Create your views here. 4 5def sampleview(request): 6 if request.method == "POST": 7 return redirect("login") 8 else: 9 return render(request, "login.html", {})
sample.py
html
1<!doctype html> 2<html lang="ja"> 3 <head> 4 <!-- Required meta tags --> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 7 8 <title>Sample</title> 9 </head> 10 <body> 11 <form class="form-signin" method="post">{% csrf_token %} 12 <h1>Please Log in</h1> 13 <label for="inputEmail" class="sr-only">User name</label> 14 <input type="text" id="inputEmail" class="form-control" placeholder="username" name="username_data" required autofocus> 15 <label for="inputPassword" class="sr-only">Password</label> 16 <input type="password" id="inputPassword" name="password_data" class="form-control" placeholder="Password" required> 17 18 <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 19 </form> 20 </body> 21</html>
自分が考える画面遷移のイメージ
①ブラウザからリクエストが送られる
②urls.pyでviews.pyの中にあるsampleviewが指定される。
③HTTP REQUESTはPOSTではないので、sampleview中の
python
1else: 2 return render(request, "login.html", {})
が実行される。
④login.htmlでフォームに入力された値をPOSTで送る
POSTで送ったあとがどのようになるのかがわかりません。
補足情報(FW/ツールのバージョンなど)
お忙しい中恐縮ですが、ご教示いただけますようお願いいたします。
回答1件
あなたの回答
tips
プレビュー