Django实现用户登录注册
本文将会介绍小白如何完成一个用户登录注册系统
新建一个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实现用户登录注册的更多相关文章
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 纯JSP实现用户登录注册,记事本
没有美化,没有格式,没有样式 1.JSP登陆注册 将用户注册的信息保存在application对象中,用于登录时的验证. 首页如下: 如果未登录,在 session 中找不到 currentUser ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- Java Spring+Mysql+Mybatis 实现用户登录注册功能
前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
- Django:用户登录实例
Django:用户登录实例 一.源代码 1,login.html代码(登录界面): <!DOCTYPE html> <html lang="zh-CN"> ...
- javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- /*用户登录注册页面输入框的设置*/<span>的使用
<!DOCTYPE html> /*用户登录注册页面输入框的设置*/ <html lang="en"> <head> <meta char ...
随机推荐
- win修改host问及那
- 利用元数据提高 SQLFlow 血缘分析结果准确率
利用元数据提高 SQLFlow 血缘分析结果准确率 一.SQLFlow--数据治理专家的一把利器 数据血缘属于数据治理中的一个概念,是在数据溯源的过程中找到相关数据之间的联系,它是一个逻辑概念.数据治 ...
- Linux与Windows文件同步
Linux与Windows文件同步 本次采用的同步方式是rsync,Rsync是一款免费且强大的同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限.时间.软硬链接.第一次同步时会复制全 ...
- ubuntu18.04 更换镜像源
废话不多说,直接上图了 1. 首先选software & update 2. 点这个,然后选择others,选择China 建议选择清华源,不建议选择mirrors.aliyun.com,因为 ...
- centos7安装privoxy
本文分为三部分,第一部分是在阿里云的ECS上安装Privoxy,第二部分是在AWS的EC2上安装Privoxy,第三部分是Privoxy的配置. 第一部分:阿里云ECS安装Privoxy 配置yum源 ...
- GridControl常用操作
显示分组面板 gridView1.OptionsView.ShowGroupPanel = true; 是否开启多选 gridView1.OptionsSelection.MultiSelect = ...
- sass和js的联动(共享变量)
一般做共享变量用于主题功能 假设我们在xxx.scss中声明了一个 theme:blue,我们在 js 中该怎么获取这个变量呢?我们可以通过import variables from '@/style ...
- python库--jieba(中文分词)
import jieba 精确模式,试图将句子最精确地切开,适合文本分析:全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义:搜索引擎模式,在精确模式的基础上,对长词再次切 ...
- Prism+WPF使用DependencyInjection实现AutoMapper的依赖注入功能
前言 在使用PRISM+WPF开发项目的过程中,需要使用AutoMapper实现对象-对象的映射功能.无奈PRISM没有相关对AutoMapper相关的类库,于是转换一下思想,在nuget 中存在有关 ...
- 【优化技术专题】「温故而知新」基于Quartz系列的任务调度框架的动态化任务实现分析
不提XXLJOB或者其他的调度框架,就看我接触的第一个任务调度框架Quartz(温故而知新) Quartz的动态暂停 恢复 修改和删除任务 实现动态添加定时任务,先来看一下我们初步要实现的目标效果图, ...