django快速实现完整登录系统,把登陆注册串在一起并增加cookie(六)
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(六)的更多相关文章
- django 快速实现完整登录系统
django 实现完整登录系统 本操作的环境: =================== Windows 7 64 python3.5 Django 1.10 =================== 创 ...
- django 快速实现完整登录系统(cookie)
经过前面几节的练习,我们已经熟悉了django 的套路,这里来实现一个比较完整的登陆系统,其中包括注册.登陆.以及cookie的使用. 本操作的环境: =================== deep ...
- Django快速搭建博客系统
Django快速搭建博客系统 一.开发环境 Windows 7(64bit) python 3.6 https://www.python.org/ Django 2.0 https://www. ...
- Django快速开发之投票系统
https://docs.djangoproject.com/en/1.8/intro/tutorial01/ 参考官网文档,创建投票系统. ================ Windows 7/1 ...
- Django——11 状态保持 form表单 登陆注册样例
Django 状态保持 用户状态例子 实现注册登陆实例 django forms 表单的使用 注册功能 登陆功能 状态保持cookie和session 1.http协议是无状态的:每次请求都是一次 ...
- SSO - 我们为何需要单点登录系统
SSO,Single Sign On,也就是单点登录,保证一个账户在多个系统上实现单一用户的登录 现在随着网站的壮大,很多服务会进行拆分,会做SOA服务,会使用dubbo做微服务,或者简单的小型分布式 ...
- App的登陆注册接口安全设计
最近一APP产品,我担任的主要模块之一是后台登录注册模块的接口开发.基本完成,就说说并记录一下关于登录注册接口的一些东西,因为也涉及到接口的安全方面的问题. 1.先一般的app的登录注册接口安全设计上 ...
- Django+bootstrap+注册登录系统
转自:https://www.cnblogs.com/robindong/p/9610057.html Robin_D 博客园 首页 新随笔 联系 订阅 管理 随笔 - 10 文章 - 0 评论 ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
随机推荐
- 选项卡TAB
一.基础信息 关键class名:nav 写法: (1)头部选中状态:class="active" (2)头部按钮进行切换:<a>加data-toggle="t ...
- MySql学习- 存储引擎简介
mysql可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎. 每一种存储引擎使用不同的存储机制.索引技巧.锁定水平,最终提供广泛且不同的功能. MySQL支持的存储引擎: MyISA ...
- DotNet跨平台 - .net core项目部署到centos7
环境说明 系统:CentOS Linux release 7.2.1511 (Core) 相关工具:VS2017 xftp 服务器软件:.net core2.0,nginx 准备.net core应 ...
- IOI2020只因训队作业胡做
w a r n i n g ! 意 识 流 警 告 !!1 不想一个个发了,干脆直接发个合集得了qwq 感觉这辈子都做不完了\(Q\omega Q\) CF516D 写过题解了 CF505E 写过题解 ...
- 基于AccessToken方式实现API设计
一.举例说明: 需求: A.B机构需要调用X服务器的接口,那么X服务器就需要提供开放的外网访问接口. 分析: 1.开放平台提供者X,为每一个合作机构提供对应的appid.app_secret. 2.a ...
- 安卓开发之利用XmlPullParser解析XML文件
package com.lidaochen.phonecall; import android.support.v7.app.AppCompatActivity; import android.os. ...
- iphone SprintBoard部分私有API总结(不支持iOS8)
本文介绍iOS SrpintBoard框架的部分私有API,具体包括: 获取ios上当前正在运行的所有App的bundle id(不管当前程序是在前台还是后台都可以) 获取ios上当前前台运行的App ...
- python3 中的cls和self的区别 静态方法和类方法的区别
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某 ...
- 在php中连接数据库 pdo
在php中连接数据库 pdo //数据库信息 $mysql_conf = array( 'host' => '127.0.0.1', 'db' => 'meteorolog_foreign ...
- Redis分布式缓存安装和使用
独立缓存服务器: LinuxCentOS Redis版本: 3.0 下面我们针对于Redis安装做下详细的记录: 编译和安装所需的包: #yum install gcc tcl创建安装目录:贵州中医肝 ...