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

新建一个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. 五分钟搞定Docker安装ElasticSearch

    前言 项目准备上ElasticSearch,为了后期开发不卡壳只能笨鸟先飞,在整个安装过程中遇到以下三个问题. Docker安装非常慢 ElasticSearch-Head连接出现跨域 Elastic ...

  2. Linux云服务部署Spring boot项目

    Linux云服务部署Spring boot项目 背景: 之前经过两个周的时间,做了一个简单的博客网站,网址:点击进入,在本地可以正常使用以后,想着部署到服务器上,给大家伙看个乐呵,于是有了这篇部署文章 ...

  3. Servlet学习笔记(一)之Servlet原理、初始化、生命周期、结构体系

    Servlet是用java语言编写的应用到Web服务器端的扩展技术,与java对象的区别是,Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持(以下会介绍原因, ...

  4. 从零开始实现简单 RPC 框架 7:网络通信之自定义协议(粘包拆包、编解码)

    当 RPC 框架使用 Netty 通信时,实际上是将数据转化成 ByteBuf 的方式进行传输. 那如何转化呢?可不可以把 请求参数 或者 响应结果 直接无脑序列化成 byte 数组发出去? 答:直接 ...

  5. 单片机学习(十二)1-Wire通信协议和DS18B20温度传感器

    目录 一.DS18B20 1. DS18B20简介 2. 电路原理图 3. 内部结构 内部完整结构框图 存储器结构 二.单总线(1-Wire BUS) 1. 单总线简介 2. 电路规范 3. 单总线的 ...

  6. 初识GDAL

    1.GDAL简介 GDAL(Geospatial Data Abstraction Library)是一个用于栅格数据操作的库,是开源地理空间基金会(Open Source Geospatial Fo ...

  7. java 使用匿名内部类实现多线程的创建

    匿名内部类的作用:简化代码 把子类继承父类,重写父类的方法,创建子类对象合一步完成 把实现类实现类接口,重写接口中的方法,创建实现类对象合成一步完成 匿名内部类的最终产物:子类/实现类对象,而这个类没 ...

  8. Android使用百度语音识别api代码实现。

    第一步 ① 创建平台应用 点击百度智能云进入,没有账号的可以先注册账号,这里默认都有账号了,然后登录. 然后左侧导航栏点击找到语音技术 然后会进入一个应用总览页面, 然后点击创建应用 立即创建 点击查 ...

  9. 分布式必备理论基础:CAP和BASE

    大家好,我是老三,今天是没有刷题的一天,心情愉悦,给大家分享两个简单的知识点:分布式理论中的CAP和BASE. CAP理论 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,Consi ...

  10. Java基础学习3

    Java语法学习3 基本运算符 关系运算符返回结果为布尔类型 %:取余 模运算 +.-.*./.% :二元运算符 两个变量间的运算 ++.-- 一元运算符 package Study; public ...