一、关于如何使用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