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. sql游标循环

    DECLARE @begindate DATETIME=CONVERT(DATETIME, '2019.05.06 09:40:50') ,@enddate DATETIME =GETDATE() , ...

  2. DPDK latencystats库使用方案

    初始化 注意务必调用 rte_metrics_init /* init latency stats */ /* @TODO should we remove this in product env? ...

  3. selenium无头浏览器&规避操作

    一.无头浏览器概述: 无头浏览器主要目的是打开浏览器但用户看不到 简单用法如下: from selenium import webdriver from time import sleep from ...

  4. wepy 开发小程序, 为什么设置pages路径的时候总是找不到 js 文件?

    1,路径先检查仔细了 2,别说话,重新run 3,可能是版本问题,重新搭工程

  5. BigDecimal与Long、int之间的相互转换

    //bigDecimal 转换成 Long类型 public static Long bigDecimalToLong(BigDecimal b){ BigDecimal c = new BigDec ...

  6. easyui的combobox默认选中第一个选项

    pmProjectSelect.combobox({ editable:false, width:165, url : ctx + '/PmProject/findByProjectMgr', //c ...

  7. windows 日志清理和设置

    Windows日志路径 c:/windows/system32/winevt/logs 这里的日志文件可以ctrl+a 选中后使用shift+delete进行删除,删不掉的可以点击跳过.   在“管理 ...

  8. LEANGOO成员

    转自:https://www.leangoo.com/leangoo_guide/leangoo_guide_member.html 1. 看板成员及权限 一个看板上的最大成员限制为200个. 看板的 ...

  9. CentOS开机启动进度条卡死问题

    centos为例 一, 如下: 如果这个地方卡住了的话也许是你上次改了passwd文件,这个是其中一个情况. 如果刚刚开机就卡住了或者怎么卡住了的话在开机的读条时候摁esc显示读取的进程,根据显示的错 ...

  10. 原创js脚本实现百度网盘任意文件强制下载

    代码: //get file list data var data=require("system-core:context/context.js").instanceForSys ...