首页 > 其他分享 >学习理解篇1

学习理解篇1

时间:2024-05-07 18:44:54浏览次数:15  
标签:username cursor 存储 浏览器 resp 学习 理解 cookie

一、关于如何使用cookie

二、关于使用数据库

三、当面临这些问题时

 

一、关于如何使用cookie

1、设置cookie

resp = make_response(redirect('/userCenter'))
resp.set_cookie('username', username)
return resp

设置cookie, 默认有效期是临时cookie,浏览器关闭就失效

同时,设置时有许多参数,如下

Response.set_cookie( key, //键 value='', //值 max_age=None, //秒为单位的cookie寿命,None表示http-only expires=None, //失效时间,datetime对象或unix时间戳 path='/', //cookie的有效路径 domain=None, //cookie的有效域 secure=None, httponly=False)

因此也能这样设置:

resp.set_cookie("Name2", "Python1", max_age=3600)

2、删除cookie

resp = make_response(redirect('/login'))
resp.delete_cookie('username')
return resp

格式相似,注意第一行的路由是设置时使用的路由

3、获取cookie

username = request.cookies.get('username')

这里要提及的是,第一:cookie与session的区别

cookie

cookie的出现就是为了解决这个问题,cookie本质是一种存储机制,为了存储用户相关的信息。

第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。

第一次访问后,浏览器会自动保存服务器发过来的cookie数据,以便再次请求这个网站时让服务器"记住"用户!

cookie特性

cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用cookie只能存储一些小量的数据。 cookie有有效期:服务器可以设置cookie的有效期,以后浏览器会自动的清除过期的cookie。 cookie有域名的概念:只有访问同一个域名,才会把之前相同域名返回的cookie携带给服务器。也就是说,访问谷歌的时候,不会把百度的cookie发送给谷歌。

session

我们不可能把用户的个人信息直接存储到cookie中,那样太不安全了! 为了解决这种问题,session就诞生了~

不同的是,cookie是存储在本地浏览器,session是一个思路、一个概念、一个服务器存储授权信息的解决方案,不同的服务器,不同的框架,不同的语言有不同的实现。总之,它是为了解决cookie存储数据不安全的问题的。

Flask中的session机制是将session信息加密,然后存储在cookie中!!!!

第二:如何编写代码时调用cookie

if request.method == 'GET':
   if request.cookies.get('username'):#如果能获取到cookie保存的信息
       return redirect('/userCenter')#重定向到另一个路由进行验证
   else:
       return render_template('login.html')#重定向到登录界面

如上,看看请求的方式是"get"还是"post",再进一步进行验证

二、关于使用数据库

这里主要讲一些单个问题

1、连接数据库

(1)sqlite3.connect(“要连接的数据库”) 会默认检测有没有数据库,如果没有的话就会建立一个。

conn = sqlite3.connect('database.db')
cursor = conn.cursor()# 获取游标对象

(2)填写具体详细信息

db=pymysql.connect(
   host='127.0.0.1',
   user='123456',
   password='123456',
   database='students',
  )
cursor = db.cursor()

2、当使用sql语句时有变量怎么办

cursor.execute("SELECT password FROM user WHERE username = ?", (username, ))

用图上方法,以"?"代替

3、一些函数的认识

result = cursor.fetchone()# 获取一行数据
data1 = cursor.fetchall()  # 得到数据库中所有数据 是一个二维元组

三、当面临这些问题时

1、这样写更简便

data = request.form
username = data.get('username')
password = data.get('password')

2、当要检测账号和密码是否存在时

if not username or not password:#检测账号和密码是否存在
   return render_template('login.html', message='Invalid username or password')

这里的message与前端的HTML页面的message相对应

标签:username,cursor,存储,浏览器,resp,学习,理解,cookie
From: https://www.cnblogs.com/believeadream/p/18178142

相关文章

  • 逆向学习-证明自己吧
     PeiD查看一下,无壳IDA打开静态分析,提示key就是输入的值 F5反汇编看下伪代码,发现sub_401060函数是逻辑判断的关键  可以看到想要正确返回有2个条件,但第一个条件只是把v5变成空值,但并不能得到什么内容跟输入的值有关,还是要看第二个条件看下整个函数注意运输逻辑1.首先......
  • 概率学习2(2024-5-7)
       1.数据总体population、横截面研究cross-sectionalstudy,周期cycle,纵向研究longtitudinalstudy,记录record,参与调查的人respondent、样本sample、有代表性representative、过度抽样oversampling、原始数据rawdata、重编码recode、数据清洗datacleaning。 数据......
  • 学习模型训练心得1
    大模型时代,多年python开发人员,多多少少得了解模型训练这块,先从学习LLaMA-Factory开启吧!!!地址:https://colab.research.google.com/drive/1d5KQtbemerlSDSxZIfAaWXhKr30QypiK?usp=sharing&pli=1#scrollTo=kbFsAE-y5so4打开按步骤登录google账号,就可以一步一步微调模型,示例中的主要......
  • TheadLocal类学习
    ThreadLocal是Java中一个非常实用的线程相关的类,它提供线程本地变量,即每个线程都有自己独立的变量副本,从而避免了线程安全问题。下面我将通过几个方面来帮助你理解并学习如何使用ThreadLocal。基本概念线程局部变量:每个线程都拥有一份 ThreadLocal 变量的副本,彼此之间互......
  • Python学习笔记(一)
    Python简介Python是GuidovanRossum发布于1991年的一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,是一种解释型的,弱类型的高级计算机语言。需要注意的是python有2.x和3.x两个不兼容的版本,这是个历史遗留问题。python3.x将是趋势,所以这里选择的是python3.x。Python的......
  • 【机器学习】第三节-回归分析
    目录一、线性回归1.一元线性回归2.二元线性回归3.多元线性回归4.总结二、逻辑回归一、线性回归1.一元线性回归\[f(x)=ax+b\]均方误差最小化(最小二乘法)即找到一条直线,使所有样本到直线上的欧式距离之和最小\[min\sum_{i=1}^{m}(f(x_i)-y_i)^2=min\sum_{i=1}{m}(y_i-wx_i-b......
  • nndl-1 机器学习基础
    nndl-1机器学习基础nndl系列参考:https://github.com/nndl/nndl.github.io绪论深度学习:是机器学习的一个分支,从有限样例中通过算法总结出一般性的规律,并可以应用到新的未知数据上贡献度分配问题:深度学习模型由组件组成,我们并不知道每个组件的贡献是多少人工神经网络ANN:信息......
  • 什么是io?程序员该怎么理解io
    引言很多程序员会谈及IO,仿佛是种时尚或者给自己贴金的方式,因为提上它一般会涉及应用程序的性能相关话题,离高深的底层知识更接近了。但多数人的理解其实是模糊的,他们的脑海里会浮动着抽象的场景:IO就是输入输出啊,电脑在磁盘上读写就是IO,仅此而已,或者,更高明一点,他们隐隐约约的意识到......
  • 哈希基础知识学习-python版
    哈希哈希表根据key直接进行访问的无序数据结构,复杂度为O(1)哈希表的实现---字典初始化d1=dict()查找#使用中括号[]进行查找,括号内为特定的键,键-值dic={"a":1,"d":0,"e":3}print(dic["a"])#输出1print(dic["z"])#报错修改dic["a"]=5print(dic[&quo......
  • Pytorch入门—Tensors张量的学习
    Tensors张量的学习张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTorch中,我们使用张量来编码模型的输入和输出,以及模型的参数。张量类似于NumPy的ndarrays,只是张量可以在GPU或其他硬件加速器上运行。事实上,张量和NumPy数组通常可以共享相同的底层内存,从而无需复制数据(请参......