Django实现用户登录注册

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

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

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

 

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

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
<!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
<!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
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>欢迎登陆</h1> </body> </html>
index.html
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
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

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

1|0settings 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设不设置都可以,视情况而定 } }

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

0|2接下来测试一下

 

1|0账号Joker

1|0邮箱Joker@126.com

1|0密码123456

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

 

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

 

1|0 然后登陆

 

 

 

1|1再次注册相同的账号

 

 

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

 

 

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

 


__EOF__

本文作者汪成阳
本文链接https://www.cnblogs.com/wangchengyang/p/15410474.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   非非非常帅的辰  阅读(2824)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏