Django实现用户登录注册

时间:2024-04-30 23:01:36

本文将会介绍小白如何完成一个用户登录注册系统

新建一个Django项目,名字为login_register,并且使用命令manage.py startapp.User(名字自己随便起)

最终django项目结构如下图所示

Django实现用户登录注册

forms.py是之前通过form表单写的注册功能,可以忽略这个py文件

Django实现用户登录注册Django实现用户登录注册
from django.urls import path
from User import views
urlpatterns = [
# path('admin/', admin.site.urls),
path('login/',views.login,name ='login'),
path('index/',views.index,name = 'index'),
path('register/',views.register,name = 'register'),
]

urls.py

Django实现用户登录注册Django实现用户登录注册
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<h1>
<p style="text-align:center">登录</p>
</h1>
<center>
<form action="" method="post">
{% csrf_token %}
<p style="text-align:center">用户:<input type="text" name="username" /></p>
<p style="text-align:center">密码:<input type="password" name="password"/></p>
<p style="text-align:center"> <input type="submit" value="登录" /> <p style="color: #ff0000;text-align: center">{{error}}</p> </form>
</body>
</html>

login.html

Django实现用户登录注册Django实现用户登录注册
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<h1>
<p style="text-align:center">新用户注册</p>
</h1>
<center>
<form action="" method="post">
{% csrf_token %}
<p style="text-align:center">用户:<input type="text" name="username" /></p>
<p style="text-align:center">邮箱:<input type="text" name="email"/> </p>
<p style="text-align:center">密码:<input type="password" name="password"/></p>
<p style="text-align:center"> <input type="submit" value="注册" /> <p style="color: #ff0000;text-align: center">{{error_name}}</p> </form>
</body>
</html>

register.html

Django实现用户登录注册Django实现用户登录注册
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎登陆</h1>
</body>
</html>

index.html

Django实现用户登录注册Django实现用户登录注册
from django.db import models

# Create your models here.
class WangUser(models.Model):
username = models.CharField(max_length=32,unique=True) # 用户名
password = models.CharField(max_length=32) # 密码
email = models.CharField(max_length=32) # 邮箱

User/models.py

Django实现用户登录注册Django实现用户登录注册
from django.shortcuts import render, redirect,HttpResponse
from django.shortcuts import render
# Create your views here.
from User import models
from .forms import UserReg def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
obj_user = models.WangUser.objects.filter(username=username, password=password)
if obj_user:
return redirect('index')
error = '用户名和密码错误'
return render(request, 'login.html', locals()) def index(request):
return render(request, 'index.html') def register(request):
if request.method == 'POST':
username = request.POST.get('username')
email = request.POST.get('email')
password = request.POST.get('password')
user_list = models.WangUser.objects.filter(username=username)
error_name = []
if user_list:
error_name = '用户名已经存在'
return render(request,'register.html',{'error_name':error_name})
else:
username = models.WangUser.objects.create(username=username,password=password,email=email)
username.save()
return redirect('login')
return render(request,'register.html')

User/views.py

切记配置好settings中的数据库,我用的是mysql,配置好后在数据库中创建相应的表。

settings Mysql设置代码

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',  # 使用mysql数据库的都是这个,不变

        'NAME': 'XXXXX',  # 使用的数据库名称

        'USER': 'XXXX',  # 登录mysql数据库的用户名称

        'PASSWORD': 'XXXXXX',  # 登录mysql数据库的用户密码

        'HOST': '127.0.0.1',  # 表明使用的是本地mysql数据库

        'PORT': '3306',  # 端口号

        'OPTIONS': {'init_command': 'SET default_storage_engine=INNODB;'}  # 指明innodb设不设置都可以,视情况而定
} }

最后makemigration和migrate迁移数据库后即可

接下来测试一下

Django实现用户登录注册

账号Joker

邮箱Joker@126.com

密码123456

点击注册后会跳转到登录界面

Django实现用户登录注册

 咱们现在回到数据库看看有没有咱们刚才注册的数据

Django实现用户登录注册

然后登陆

Django实现用户登录注册

再次注册相同的账号

Django实现用户登录注册

 会显示用户名已经存在,我们到login界面,输入一个错误的账号密码

Django实现用户登录注册

所有功能完成,登录注册界面就很简约,重要就是逻辑方面,前端就不深做了。