个性化阅读
专注于IT技术分析

Python Flask如何使用和处理cookie?

点击下载

本文概述

cookie以文本文件的形式存储在客户端计算机上。 Cookies用于跟踪用户在网络上的活动, 并根据用户的选择反映一些建议, 以增强用户的体验。

Cookie是由客户端计算机上的服务器设置的, 它将在以后的所有事务中与客户端对特定服务器的请求相关联, 直到cookie的生存期到期或被服务器上的特定网页删除。

在flask中, cookie与Request对象相关联, 作为所有cookie变量及其客户端发送的值的字典对象。 Flask使我们可以指定网站的到期时间, 路径和域名。

response.setCookie(<title>, <content>, <expiry time>)

在Flask中, 通过在响应对象上使用set_cookie()方法在响应对象上设置cookie。可以通过在视图函数中使用make_response()方法来形成响应对象。

另外, 我们可以使用与Request对象关联的cookie属性的get()方法读取存储在客户端计算机上的cookie。

request.cookies.get(<title>)

下面是设置标题为” foo”和内容为” bar”的cookie的简单示例。

例子

from flask import *

app = Flask(__name__)

@app.route('/cookie')
def cookie():
	res = make_response("<h1>cookie is set</h1>")
	res.set_cookie('foo', 'bar')
	return res

if __name__ == '__main__':
	app.run(debug = True)

上面的python脚本可用于在网站localhost:5000的浏览器上设置名称为’foo’和内容为’bar’的cookie。

使用命令python script.py运行此python脚本, 然后在浏览器上检查结果。

Python Flask如何使用和处理cookie?

我们可以在浏览器的内容设置中跟踪cookie的详细信息, 如下图所示。

Python Flask如何使用和处理cookie?

Flask中的登录应用程序

在这里, 我们将在Python Flask中创建一个登录应用程序, 其中向用户显示一个登录页面(login.html), 提示你输入电子邮件和密码。如果密码是” jtp”, 则应用程序会将用户重定向到成功页面(success.html), 在该页面上将提供消息和指向配置文件的链接(profile.html), 否则它将用户重定向到错误页面。 。

控制器python flask脚本(login.py)控制应用程序的行为。它包含针对各种情况的视图功能。用户的电子邮件以cookie的形式存储在浏览器中。如果用户输入的密码是” jtp”, 则应用程序将用户的电子邮件ID作为cookie存储在浏览器中, 然后在配置文件页面中读取该cookie以向用户显示一些消息。

该应用程序包含以下python和HTML脚本。该应用程序的目录结构如下。

Python Flask如何使用和处理cookie?

login.py

from flask import *

app = Flask(__name__)

@app.route('/error')
def error():
	return "<p><strong>Enter correct password</strong></p>"

@app.route('/')
def login():
	return render_template("login.html")

@app.route('/success', methods = ['POST'])
def success():
	if request.method == "POST":
		email = request.form['email']
		password = request.form['pass']
	
	if password=="jtp":
		resp = make_response(render_template('success.html'))
		resp.set_cookie('email', email)
		return resp
	else:
		return redirect(url_for('error'))

@app.route('/viewprofile')
def profile():
	email = request.cookies.get('email')
	resp = make_response(render_template('profile.html', name = email))
	return resp

if __name__ == "__main__":
	app.run(debug = True)

login.html

<html>
<head>
	<title>login</title>
</head>
<body>
	<form method = "post" action = "http://localhost:5000/success">
		<table>
			<tr><td>Email</td><td><input type = 'email' name = 'email'></td></tr>
			<tr><td>Password</td><td><input type = 'password' name = 'pass'></td></tr>
		    <tr><td><input type = "submit" value = "Submit"></td></tr>
		</table>
	</form>
</body>
</html>

success.html

<html>
<head>
<title>success</title>
</head>
<body>
	<h2>Login successful</h2>
	<a href="/viewprofile">View Profile</a>
</body>
</html>

profile.html

<html>
<head>
	<title>profile</title>
</head>
<body>
	<h3>Hi, {{name}}</h3>
</body>
</html>

执行

使用命令python login.py运行python脚本, 并按照以下快照中的说明在浏览器上访问localhost:5000 /。

Python Flask如何使用和处理cookie?

单击提交。它将显示成功消息, 并提供指向profile.html的链接。

Python Flask如何使用和处理cookie?

点击查看个人资料。它将从浏览器中读取cookie集作为响应, 并显示以下消息。

Python Flask如何使用和处理cookie?

赞(0)
未经允许不得转载:srcmini » Python Flask如何使用和处理cookie?

评论 抢沙发

评论前必须登录!