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

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

最终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

切记配置好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迁移数据库后即可

接下来测试一下

账号Joker

邮箱Joker@126.com

密码123456

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

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

然后登陆

再次注册相同的账号

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

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

Django实现用户登录注册的更多相关文章

  1. android安卓Sqlite数据库实现用户登录注册

    看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...

  2. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  3. 纯JSP实现用户登录注册,记事本

    没有美化,没有格式,没有样式 1.JSP登陆注册 将用户注册的信息保存在application对象中,用于登录时的验证. 首页如下: 如果未登录,在  session 中找不到 currentUser ...

  4. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  5. Java Spring+Mysql+Mybatis 实现用户登录注册功能

    前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...

  6. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  7. Django:用户登录实例

    Django:用户登录实例 一.源代码 1,login.html代码(登录界面): <!DOCTYPE html> <html lang="zh-CN"> ...

  8. javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  9. /*用户登录注册页面输入框的设置*/<span>的使用

    <!DOCTYPE html> /*用户登录注册页面输入框的设置*/ <html lang="en"> <head> <meta char ...

随机推荐

  1. 假期作业02:安装JDK与文本编辑器并编写第一个Java程序

    假期作业02:安装JDK与文本编辑器并编写第一个Java程序 一.安装JDK与文本编辑器并编写第一个java程序 首先在oracle官网(需要创建账号,进行登录后方可使用)按照自己的需求下载JDK(h ...

  2. leetcode 位运算异或

    1. 只出现一次的数字(136) 异或的性质总结: 相异为1,相同为0: a ^ a = 0; 0 ^ a = a; 如果 a ^ b = c 成立,那么a ^ c = b 与 b ^ c = a 均 ...

  3. 学习笔记之IdentityServer4(一)

    快速入门IdentityServer4 概述 将 IdentityServer 添加到 ASP.NET Core 应用程序 配置 IdentityServer 为各种客户发行代币 保护 Web 应用程 ...

  4. Selenium系列(十七) - Web UI 自动化基础实战(4)

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  5. openswan协商流程之(三):main_inR1_outI2

    主模式第三包:main_inR1_outI2 1. 序言 main_inR1_outI2()函数是ISAKMP协商过程中第三包的核心处理函数的入口.这里我们主要说明main_inR1_outI2的函数 ...

  6. XML基础——extensible markup language

    一.xml概念 1.xml和html区别 其中,xml是纯文本文件,跨语言:浏览器有html解析器也有xml解析器: 2.和properties配置文件区别 二.xml语法 1.基本语法 三.xml组 ...

  7. SpringBoot-异步定时-邮件任务

    目录 背景 异步任务 定时任务 邮件任务 背景 在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件, 后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功, 所以我们 ...

  8. 洛谷P1090——合并果子(贪心)

    https://www.luogu.org/problem/show?pid=1090 题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合 ...

  9. CentOS7搭建sftp

    openssh-server自带sftp服务 1.添加组: groupadd  sftp 2.添加不可登录的sftp用户 useradd -u 1001  -g  sftp   -s /sbin/no ...

  10. RE Validation in JavaEE

    以下是关于RE校验的一些方法的基本功能: import java.util.regex.Pattern;<br> /** * 校验器:利用正则表达式校验邮箱.手机号等 * */<br ...