Front end (HTML) + back end (Django) + database (MySQL): user registration and login demonstration

1. Create an html file for simple web page registration demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>register</title>
</head>
<body>
<!--Form field action Used to submit acquired to background address-->

<form action="save" method="get">
    <span>
        user:<input type="text" name="username">
    </span>
    <br>
    <span>
        Password:<input type="password" name="password">
    </span>
    <br>
    <span>
        <input type="submit" name="submit1" value="register">
    </span>

</form>
</body>
</html>

2. Create an html file for simple web page login demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sign in</title>
</head>
<body>
<form action="query" method="get">
    <span>
        user:<input type="text" name="username">
    </span>
    <br>
    <span>
        Password:<input type="password" name="password">
    </span>
    <br>
    <span>
        <input type="submit" name="submit1" value="Sign in">
    </span>

</form>
</body>
</html>

3. Create a Django project and put the two html files in the template template folder

4. Open the urls.py file generated by default under the Django project, and edit some business functions

"""Django01 URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.shortcuts import render
from django.shortcuts import HttpResponse
import pymysql
#Login page
def login(request):
    #Specify the page to visit, the function of render: submit the requested page results to the client
    return render(request,'login.html')
#Registration page
def regiter(request):
    return render(request,'regiter.html')
#Define a function to save the registered data
def save(request):
    has_regiter = 0#Used to record whether the current account already exists, 0: does not exist 1: already exists
    a = request.GET#get() request
    #print(a)
    #Get the data submitted in the previous paragraph through the get() request
    userName = a.get('username')
    passWord = a.get('password')
    #print(userName,passWord)
    #Connect to database
    db = pymysql.connect('127.0.0.1','root','123','db2')
    #Create cursors
    cursor = db.cursor()
    #SQL statement
    sql1 = 'select * from user1'
    #Execute SQL statement
    cursor.execute(sql1)
    #Query all data and store it in all users
    all_users = cursor.fetchall()
    i = 0
    while i < len(all_users):
        if userName in all_users[i]:
            ##Indicates that the account already exists
            has_regiter = 1

        i += 1
    if has_regiter == 0:
        # Insert the user name and password into the database
        sql2 = 'insert into user1(username,password) values(%s,%s)'
        cursor.execute(sql2,(userName,passWord))
        db.commit()
        cursor.close()
        db.close()
        return HttpResponse('login was successful')
    else:

        cursor.close()
        db.close()
        return HttpResponse('The account already exists')

def query(request):
    a = request.GET
    userName = a.get('username')
    passWord = a.get('password')
    user_tup = (userName,passWord)
    db = pymysql.connect('127.0.0.1','root','123','db2')
    cursor = db.cursor()
    sql = 'select * from user1'
    cursor.execute(sql)
    all_users = cursor.fetchall()
    cursor.close()
    db.close()
    has_user = 0
    i = 0
    while i < len(all_users):
        if user_tup == all_users[i]:
            has_user = 1
        i += 1
    if has_user == 1:
        return HttpResponse('Login successfully')
    else:
        return HttpResponse('Incorrect user name or password')
urlpatterns = [
    path('admin/', admin.site.urls),#Created by default
    path('login/',login),#Used to open the login page
    path('regiter/',regiter),#Used to open the registration page
    path('regiter/save',save),#Enter the user name and password and submit them to the background save function for processing
    path('login/query',query)#Enter the user name and password and give it to the background query function for processing

]

5. Run the entire Django project and access the corresponding url

Database data:



Background status information:

To view the database data again:

6. Log in again and open the login url


Test a user name error:

Tags: Django Database SQL

Posted on Fri, 01 Nov 2019 18:17:24 -0700 by danielrs1