码迷,mamicode.com
首页 > 其他好文 > 详细

向后台提交数据:利用cookie加session提交更多数据,

时间:2019-02-15 23:59:31      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:判断   组成   eee   time()   lis   dir   用户名   else   tin   

个人逻辑,可能考虑不全面,各位看到后留言,我修改啊

 

 

实现效果:浏览器第一次访问提交用户名,后台验证通过,生成随机字符串,和用户名组成字典,保存到服务器,把随机字符串设置成cookie发给浏览器,同一个浏览器第二次来访问这个服务器上的其他页面时候,获取携带的cookie的随机字符串判断在字典,把用户信息前台展示否则跳到其他页面或提示浏览器cookie没设置

代码如下:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import  tornado.web
import tornado.ioloop
dic = {}
class LoginHandler(tornado.web.RequestHandler):
    # 如果前台提交的用户是对的,生成随机字符串,根据随机字符串构建空字典,让随机字符串做key,用户信息做新字典的信息。最后把随机字符串给cookie返回给浏览器
    # 如果用户不对,提示验证不通过

    def get(self, *args, **kwargs):
        if self.get_argument(u) in [zhangsan,lisi]:
            #根据不同的时间利用md5生成不同的字符串
            import hashlib
            import time
            obj = hashlib.md5()
            obj.update(bytes(str(time.time()),encoding=utf-8))
            random_str = obj.hexdigest()
            #根据随机字符串构建空字典,让随机字符串做key,用户信息做新字典的信息
            dic[random_str] = {}
            dic[random_str][is_login] = True
            dic[random_str][user] = self.get_argument(u)
            # print(dic)
            #随机字符串设置到浏览器里,供下载浏览器访问其他页面携带
            self.set_cookie(cookie,random_str)

        else:
            # 如果用户不对提示验证不通过
            self.write(验证不通过)

class ManagerHandler(tornado.web.RequestHandler):
    # 获取浏览器携带的cookie的value,看携带的这个value即随机字符串是否在字典dic,要是在,并且is_login的value是True,前端显示用户名,否则跳到login页面
    def get(self, *args, **kwargs):
        # 获取浏览器携带的cookie的value
        cc = self.get_cookie(cookie)
        #看携带的这个value即随机字符串是否在字典dic,要是在,并且is_login的value是True,前端显示用户名,否则跳到login页面
        print(cc)
        new_random = dic.get(cc,None)
        print(new_random)
        if not new_random:
            self.redirect(/login)
        else:
           if new_random[is_login]:
                self.write(new_random[user])
           # else:
           #     self.redirect(‘/login‘)
setting = {
cookie_secret:eeee
}
app = tornado.web.Application([(r/login,LoginHandler),
                                (r/manager,ManagerHandler),
                         ],**setting)
if __name__ == __main__:
    app.listen(8000)
    tornado.ioloop.IOLoop.instance().start()

 

向后台提交数据:利用cookie加session提交更多数据,

标签:判断   组成   eee   time()   lis   dir   用户名   else   tin   

原文地址:https://www.cnblogs.com/wenxianfeng/p/10386484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!