Python Django - Simple Registration & Login Form
#view.py from django.shortcuts import render, redirect, HttpResponseRedirect from myapp.models import Member #models.py # Create your views here. def index(request): if request.method == 'POST': member = Member(username=request.POST['username'], password=request.POST['password'], firstname=request.POST['firstname'], lastname=request.POST['lastname']) member.save() return redirect('/') else: return render(request, 'index.html') def login(request): return render(request, 'login.html') def home(request): if request.method == 'POST': if Member.objects.filter(username=request.POST['username'], password=request.POST['password']).exists(): member = Member.objects.get(username=request.POST['username'], password=request.POST['password']) return render(request, 'home.html', {'member': member}) else: context = {'msg': 'Invalid username or password'} return render(request, 'login.html', context)
#models.py from django.db import models # Create your models here. class Member(models.Model): firstname=models.CharField(max_length=30) lastname=models.CharField(max_length=30) username=models.CharField(max_length=30) password=models.CharField(max_length=12) def __str__(self): return self.firstname + " " + self.lastname class Meta: db_table = "web_member"
#urls.py from django.contrib import admin from django.urls import path from myapp import views urlpatterns = [ path('admin/', admin.site.urls), path('',views.index), path('login/',views.login), path('home/',views.home), ]
//templates/index.html {% extends 'base.html' %} {% block body %} <form method="POST"> {% csrf_token %} <div class="col-md-2"> <a href="/login">Login</a> </div> <div class="col-md-8"> <div class="form-group"> <label for="username">Username</label> <input type="text" name="username" class="form-control" required="required"> </div> <div class="form-group"> <label for="password">Password</label> <input type="password" name="password" class="form-control" required="required"/> </div> <div class="form-group"> <label for="firstname">Firstname</label> <input type="text" name="firstname" class="form-control" required="required"/> </div> <div class="form-group"> <label for="lastname">Lastname</label> <input type="text" name="lastname" class="form-control" required="required"/> </div> <br /> <div class="form-group"> <button type="submit" class="btn btn-primary form-control"><span class="glyphicon glyphicon-save"></span> Submit</button> </div> </div> </form> {% endblock %}
//templates/base.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1"/> <title>Python Django - Simple Registration & Login Form</title> {% load static %} <link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap.css' %}" /> </head> <body> <nav class="navbar navbar-default"> <div class="container-fluid"> <a class="navbar-brand" href="https://tutorial101.blogspot.com">Cairocoders</a> </div> </nav> <div class="col-md-3"></div> <div class="col-md-6 well"> <h3 class="text-primary">Python Django - Simple Registration & Login Form</h3> <hr style="border-top:1px dotted #000;"/> {% block body %} {% endblock %} </div> </body> </html>
//templates/login.html {% extends 'base.html' %} {% block body %} <form method="POST" class="post-form" action="/home/"> {% csrf_token %} <div class="col-md-2"> <a href="/">Signup</a> </div> <div class="col-md-8"> <div class="form-group"> <label for="username">Username</label> <input type="text" name="username" class="form-control" required="required"/> </div> <div class="form-group"> <label for="password">Password</label> <input type="password" name="password" class="form-control" required="required"/> </div> <center><label class="text-danger">{{ msg }}</label></center> <br /> <div class="form-group"> <button class="btn btn-primary form-control"><span class="glyphicon glyphicon-log-in"></span> Login</button> </div> </div> </form> {% endblock %}