视图

from django.contrib import auth
from django.contrib.auth.models import User
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponseRedirect # 用户注册
@csrf_exempt
def register(request):
errors = []
account = None
password = None
password2 = None
email = None
CompareFlag = False if request.method == 'POST':
if not request.POST.get('account'):
errors.append('用户名不能为空')
else:
account = request.POST.get('account') if not request.POST.get('password'):
errors.append('密码不能为空')
else:
password = request.POST.get('password')
if not request.POST.get('password2'):
errors.append('确认密码不能为空')
else:
password2 = request.POST.get('password2')
if not request.POST.get('email'):
errors.append('邮箱不能为空')
else:
email = request.POST.get('email') if password is not None:
if password == password2:
CompareFlag = True
else:
errors.append('两次输入密码不一致') if account is not None and password is not None and password2 is not None and email is not None and CompareFlag :
user = User.objects.create_user(account,email,password)
user.save() userlogin = auth.authenticate(username = account,password = password)
auth.login(request,userlogin)
return HttpResponseRedirect('/blog') return render(request,'blog/register.html', {'errors': errors}) # 用户登录
@csrf_exempt
def my_login(request):
errors =[]
account = None
password = None
if request.method == "POST":
if not request.POST.get('account'):
errors.append('用户名不能为空')
else:
account = request.POST.get('account') if not request.POST.get('password'):
errors = request.POST.get('密码不能为空')
else:
password = request.POST.get('password') if account is not None and password is not None:
user = auth.authenticate(username=account,password=password)
if user is not None:
if user.is_active:
auth.login(request,user)
return HttpResponseRedirect('/blog')
else:
errors.append('用户名错误')
else:
errors.append('用户名或密码错误')
return render(request,'blog/login.html', {'errors': errors}) # 用户退出
def my_logout(request):
auth.logout(request)
return HttpResponseRedirect('/blog')

url

urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^p/(?P<article_id>[0-9]+)/$', views.detail,name='detail'),
url(r'^register/$',views.register, name='register'),
url(r'^login/$',views.my_login, name='my_login'),
url(r'^logout/$',views.my_logout, name='my_logout'),
]

html

注册

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> {% if errors %}
<li> {% for error in errors %}
<p style="color: red;">
{{error}}
</p>
{% endfor %}
</li>
{% endif %}
<table>
<form action="" method="post">{% csrf_token %} <tr>
<td>
<label >用户名:</label>
</td>
<td>
<input type = 'text' placeholder="输入用户名" name = 'account'>
</td>
</tr>
<tr>
<td>
<label >密码:</label>
</td>
<td>
<input type = 'password' placeholder="输入密码" name = 'password'>
</td>
</tr>
<tr>
<td>
<label >确认密码:</label>
</td>
<td>
<input type = 'password' placeholder="再次输入密码" name ='password2'>
</td> </tr>
<tr>
<td>
<label>邮箱:</label>
</td>
<td>
<input type="email" placeholder="输入邮箱" name = 'email'>
</td>
</tr>
<tr> <td>
<input type = 'submit' placeholder="Login" value="登录">
</td>
</tr>
</form>
</table>
</body>
</html>

登录

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body> {% if errors %}
<li> {% for error in errors %}
<p style="color: red;">
{{error}}
</p>
{% endfor %}
</li>
{% endif %}
<table>
<form action="" method="post">{% csrf_token %} <tr>
<td>
<label >用户名:</label>
</td>
<td>
<input type = 'text' placeholder="输入用户名" name = 'account'>
</td>
</tr>
<tr>
<td>
<label >密码:</label>
</td>
<td>
<input type = 'password' placeholder="输入密码" name = 'password'>
</td>
</tr> <tr> <td>
<input type = 'submit' placeholder="Login" value="登录">
</td>
</tr>
</form>
</table>
</body>
</html>
</body>
</html>

django实现用户注册、登录、退出的更多相关文章

  1. Django实现用户注册登录

    学习Django中:试着着写一个用户注册登录系统,开始搞事情 =====O(∩_∩)O哈哈~===== ================= Ubuntu python 2.7.12 Django 1. ...

  2. Django+bootstrap+注册登录系统

    转自:https://www.cnblogs.com/robindong/p/9610057.html Robin_D 博客园 首页 新随笔 联系 订阅 管理 随笔 - 10  文章 - 0  评论 ...

  3. 基于xml的用户注册登录案例

    用户注册登录 要求:3层框架,使用验证码 1        功能分析 l  注册 l  登录 1.1 JSP页面 l  regist.jsp 注册表单:用户输入注册信息: 回显错误信息:当注册失败时, ...

  4. 【ASP.NET】UCenter实现多站点同步登录退出

    利用UCenter实现discuz论坛和应用网站同步登录和退出功能 测试环境:Discuz! X3.2.UCenter 1.6..Net Framework 4.0 进入Discuz 后台的UCent ...

  5. 超全面的JavaWeb笔记day14<用户注册登录>

    案例:用户注册登录 要求:3层框架,使用验证码 1 功能分析 l 注册 l 登录 1.1 JSP页面 l regist.jsp Ø 注册表单:用户输入注册信息: Ø 回显错误信息:当注册失败时,显示错 ...

  6. python 容器 用户注册登录系统

    1. 列表和普通变量有什么区别 列表是数据类型,普通变量是用来存储数据的 可以把列表赋值给普通变量 2.存在列表 a = [11, 22, 33], 如何向列表中添加(增)新元素 44 a.appen ...

  7. Django之auth登录认证

    前言:我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的 ...

  8. django自定义实现登录验证-更新版

    django自定义实现登录验证 django内置的登录验证必须让开发者使用django内置的User模块,这会让开发者再某些方面被限制住 下面的模块是我自己自定义实现的django验证,使用方式和dj ...

  9. 传智播客JavaWeb day07、day08-自定义标签(传统标签和简单标签)、mvc设计模式、用户注册登录注销

    第七天的课程主要是讲了自定义标签.简单介绍了mvc设计模式.然后做了案例 1. 自定义标签 1.1 为什么要有自定义标签 前面所说的EL.JSTL等技术都是为了提高jsp的可读性.可维护性.方便性而取 ...

  10. ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

    ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

随机推荐

  1. Ext如何Gird中如何显示时间类型的列?

         rt,后台bean中的字段属性是Date类型,前台的model中的字段属性也设置为date类型,但是还是显示不出来,如何解决呢? 直接代码: grid中的COLUMN: Model中的定义:

  2. linux修改root管理员密码

    以root 身份登录(SSH操作) 输入 passwd 命令 就可以看到提示输入新密码了 输入密码的时候是看不到字符的.

  3. ListView中CheckBox使用问题

    因为CheckBox的点击事件优先级比ListView的高,所以当ListView中使用CheckBox会导致ListView的setOnItemClickListener失去响应. 解决的方法:在C ...

  4. Python环境搭建及IDE选择(转载)

    Python环境搭建及IDE选择 人工智能社区 http://studyai.com 系统:Windows 7 版本:Python 2.7 一.安装Python 在开始编程之前,我们首先需要搭建Pyt ...

  5. Google Code Jam 2014 Round 1 A:Problem C. Proper Shuffle

    Problem A permutation of size N is a sequence of N numbers, each between 0 and N-1, where each numbe ...

  6. 将普通用户添加至sudoers列表

    编辑/etc/sudoers文件,在尾部添加如下内容: myusername ALL=(ALL) ALL myusername ALL=(ALL) NOPASSWD: ALL 其中需要将红色部分替换成 ...

  7. 【Mac系统 + Git】之上传项目代码到github上以及删除某个文件夹

    之前做开发的时候,用过一段时间git代码管理工具,用命令行操作感觉十分高大上,今天我想从头总结一篇Mac系统下如何利用git上传代码到github上的学习. 目录 一.安装Git 二.创建.ssh文件 ...

  8. php跨域共享session

    . $gb_DBHOSTname = "127.0.0.1"; //主机的名称或是IP地址 02 $gb_DBname = "dbname"; //数据库名称 ...

  9. android 二维码制作,显示到UI,并保存SD卡,拿来就能用!!

    转载请注明出处:王亟亟的大牛之路 如今二维码已经渗透了我们的生活.各种扫码关注啊.扫码下载的,今天上一个依据输入内容生成二维码的功能. 包结构: 界面截图: 功能:输入网址–>生成图片–> ...

  10. 2820: YY的GCD

    2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1693  Solved: 901[Submit][Status][Discu ...