用户登录
用户登录 本节利用Session实现一个用户登录的实例,这也是典型的Session实例,实现的基本原理是当登录成功后,会将用户名以及其他相关信息写入session。如果用户再用同一个 浏览器访问web应用,就会从与客户端对应的session中重新获取用户名和其他相关信息,这也表明用户处于登录状态,所以当用户第二次访问该web应用时,除非session过期 否则无须登录 本例使用login路由模拟用户登录,为了方便,使用HTTP GET请求指定用户名(user)字段,并使用logout注销登录(删除session中的用户名) 1、首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2、在工程的Firstdjango目录中建立一个user.py脚本文件,然后在user.py文件中添加如下内容: from django.http import HttpResponse def index(request): # 从Session获取用户名 user=request.session.get('user') result='' # 如果成功获取用户名,表明用户名处于登录状态 if user: result='user: %s' % user else: result='Not logged in' return HttpResponse(result) #用于登录的路由 def login(request): # 从HTTP GET 请求中得到用户名 user=request.GET.get('user') result='' if user: # 如果成功获得用户名,就将用户名保存到session中 request.session['user']=user result='login success' else: result='login failed' return HttpResponse(result) #用户注销登录的路由 def logout(request): try: #删除session中的用户名 del request.session['user'] except KeyError: pass return HttpResponse("you are logged out") 3、然后在Firstdjango目录中找到urls.py脚本文件,用下面的代码代替urls.py脚本里面的内容: from django.conf.urls import url from .import user urlpatterns=[ #下面代码是本例添加的路由方法与正则表达式的映射 url(r'^$',user.index), url(r'^login$',user.login), url(r'^logout$',user.logout), ] 4、配置migrate 进入项目manage所在的目录中执行如下命令,否则会报错:no such table: django_session 进入cmd 输入盘符比如:E: 切换目录 cd E:\progect\Firstdjango python manage.py migrate 5、启动django 6、浏览器访问 http://127.0.0.1:8000/login?user=Bill login success http://127.0.0.1:8000 user: Bill 过20秒后(session失效),或者访问http://127.0.0.1:8000/logout 注销用户登录状态,再次访问http://127.0.0.1:8000,就会出现如下信息: http://127.0.0.1:8000/logout you are logged out http://127.0.0.1:8000/ Not logged in