1.使用之前创建的项目和应用  mysite3 account

2.使用之前的数据库构造

class User(models.Model):
username=models.CharField(max_length=50)
password=models.CharField(max_length=50)
email=models.EmailField() def __unicode__(self):
return self.username class UserAdmin(admin.ModelAdmin):
list_display=('username','email') admin.site.register(User,UserAdmin)

3.使用之前的项目urls.py

from django.conf.urls import url,include
from django.contrib import admin admin.autodiscover() urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^account/', include('account.urls')),
]

应用的urls.py

from django.conf.urls import url
from account import views urlpatterns=[
url(r'^$',views.login,name='login'),          
url(r'^register/$',views.register,name='register'), 
url(r'^login/$',views.login,name='login'),      
url(r'^index/$',views.index,name = 'index'),      
url(r'^logout/$',views.logout,name = 'logout'),    
]

http://127.0.0.1:8000/online/    登陆页

http://127.0.0.1:8000/online/login/  登陆页

http://127.0.0.1:8000/online/register/   注册页

http://127.0.0.1:8000/online/index/    登陆成功页

http://127.0.0.1:8000/online/logout/   注销

4.修改views.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals from django.shortcuts import render,render_to_response
from django.template import loader,Context,RequestContext
from django.http import HttpResponse,HttpResponseRedirect
from django import forms
from account.models import User # Create your views here. #定义表单模型 —— 在页面上显示的输入框
class UserForm(forms.Form):
username=forms.CharField(label='用户名:',max_length=100)
password=forms.CharField(label='密码:',widget=forms.PasswordInput())
email=forms.EmailField(label='电子邮件:') class User2Form(forms.Form):
username=forms.CharField(label='用户名:',max_length=100)
password=forms.CharField(label='密码:',widget=forms.PasswordInput()) #注册
def register(request): if request.method=='POST':
uf=UserForm(request.POST)
if uf.is_valid():
#获取表单信息
username=uf.cleaned_data['username']
password=uf.cleaned_data['password']
email=uf.cleaned_data['email']
#将表单数据写入数据库
#user=User()
#user.username=username
#user.password=password
#user.email=email
#user.save()
User.objects.create(username= username,password=password,email=email)
#url不变,跳到新页面显示register success
return HttpResponse('register success!!!') else:
uf=UserForm()
#注册失败,重新回到注册页,最后一截的意思是显示用户输入用户名密码
#render_to_response()加载模板 返回 HttpResponse 对象,因此我们仅需在视图中return 该值
return render_to_response('register.html',{'uf':uf}) #登陆
def login(request): if request.method=='POST':
uf =User2Form(request.POST)
if uf.is_valid():
#获取表单用户密码
username=uf.cleaned_data['username']
password=uf.cleaned_data['password']
#获取的表单数据与数据库做比较
user=User.objects.filter(username__exact=username,password__exact=password)
if user:
#比较成功,跳转index
response=HttpResponseRedirect('/account/index/')
#将username写入浏览器cookie,失效时间未3600
response.set_cookie('username',username,3600)
return response
else:
#比较失败,回到login
return HttpResponseRedirect('account/login/')
else:
uf=User2Form()
return render_to_response('login.html',{'uf':uf}) #登陆成功
def index(request):
username=request.COOKIES.get('username','')
return render_to_response('index.html',{'username':username}) #退出
def logout(request):
response=HttpResponse('logout!!!')
#清理cookie里保存的username
response.delete_cookie('username')
return response

  

5.创建模板

django快速实现完整登录系统,把登陆注册串在一起并增加cookie(六)的更多相关文章

  1. django 快速实现完整登录系统

    django 实现完整登录系统 本操作的环境: =================== Windows 7 64 python3.5 Django 1.10 =================== 创 ...

  2. django 快速实现完整登录系统(cookie)

    经过前面几节的练习,我们已经熟悉了django 的套路,这里来实现一个比较完整的登陆系统,其中包括注册.登陆.以及cookie的使用. 本操作的环境: =================== deep ...

  3. Django快速搭建博客系统

    Django快速搭建博客系统 一.开发环境 Windows 7(64bit) python 3.6   https://www.python.org/ Django 2.0  https://www. ...

  4. Django快速开发之投票系统

    https://docs.djangoproject.com/en/1.8/intro/tutorial01/ 参考官网文档,创建投票系统. ================ Windows  7/1 ...

  5. Django——11 状态保持 form表单 登陆注册样例

    Django 状态保持 用户状态例子 实现注册登陆实例 django forms 表单的使用 注册功能 登陆功能   状态保持cookie和session 1.http协议是无状态的:每次请求都是一次 ...

  6. SSO - 我们为何需要单点登录系统

    SSO,Single Sign On,也就是单点登录,保证一个账户在多个系统上实现单一用户的登录 现在随着网站的壮大,很多服务会进行拆分,会做SOA服务,会使用dubbo做微服务,或者简单的小型分布式 ...

  7. App的登陆注册接口安全设计

    最近一APP产品,我担任的主要模块之一是后台登录注册模块的接口开发.基本完成,就说说并记录一下关于登录注册接口的一些东西,因为也涉及到接口的安全方面的问题. 1.先一般的app的登录注册接口安全设计上 ...

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

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

  9. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

随机推荐

  1. Java并发与多线程教程(1)

    Java并发性与多线程介绍 在过去单CPU时代,单任务在一个时间点只能执行单一程序.之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程.虽然并不是真正意义上的“同一时间点”,而是多个任务 ...

  2. StoneTab标签页CAD插件 3.2.0

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  3. git 公钥的使用

    码云 https://gitee.com/ ,之前在教程视频中看到使用 码云  今天自己也撸了一把.第一次使用.打开官方网站看到免费开通企业版,就点了这个原本以为需要填写很多资料,实际操作下来,就一个 ...

  4. [NOIP10.6模拟赛]2.equation题解--DFS序+线段树

    题目链接: 咕 闲扯: 终于在集训中敲出正解(虽然与正解不完全相同),开心QAQ 首先比较巧,这题是\(Ebola\)出的一场模拟赛的一道题的树上强化版,当时还口胡出了那题的题解 然而考场上只得了86 ...

  5. luogu2568GCD题解--欧拉函数

    题目链接 https://www.luogu.org/problemnew/show/P2568 分析 题目即求\(\sum_{i=1}^N \sum_{j=1}^N [gcd(i,j)\) \(is ...

  6. [转载]Grid Search

    [转载]Grid Search 初学机器学习,之前的模型都是手动调参的,效果一般.同学和我说他用了一个叫grid search的方法.可以实现自动调参,顿时感觉非常高级.吃饭的时候想调参的话最差不过也 ...

  7. ant-design的Table组件自定义空状态

    Table,是antd中一个我们经常使用的组件,在官方文档中给出了非常详细的实例以及API, 但在我们在使用过程中可能需要根据项目的要求来定制空状态时的展示. 什么是空状态呢? 在antd的官方文档中 ...

  8. 行内块和文字垂直对齐vertical-agign

    vertical-align 垂直对齐 (对于块级元素无效,主要用来控制表单或者图片与文字对齐的) 图片和文字默认是基线对齐 属性: baseline 基线 top 顶线 middle 中线 bott ...

  9. js对象中属性调用.和[] 两种方式的区别

    JS 调用属性一般有两种方法——点和中括号的方法. 标准格式是对象.属性(不带双引号),注意一点的是:js对象的属性,key标准是不用加引号的,加也可以,特别的情况必须加,如果key数字啊,表达式啊等 ...

  10. 如何使用JDBC连接数据库

    1 JDBC:java database connectivity,是java程序与数据库系统通信的标准api 2 下载mysql JDBC驱动,解压缩找到mysql-connector-java-5 ...