• 用户登录


    用户登录
    
    本节利用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:progectFirstdjango
    
    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
  • 相关阅读:
    54. 八皇后问题[eight queens puzzle]
    53. 特殊的O(n)时间排序[sort ages with hashtable]
    52. 不用+、-、×、÷做加法[add two numbers without arithmetic]
    C++基础知识面试精选100题系列(11-20题)[C++ basics]
    C++基础知识面试精选100题系列(1-10题)[C++ basics]
    洛谷 P1479 宿舍里的故事之五子棋
    洛谷 P2084 进制转换
    codevs 1700 施工方案第二季
    POJ 3278 Catch That Cow(求助大佬)
    POJ 2251 Dungeon Master
  • 原文地址:https://www.cnblogs.com/effortsing/p/10397480.html
Copyright © 2020-2023  润新知