一、概述
Python Flask 是一个轻量级的 Web 框架,它提供了一个易于运用的 API 来创立 Web 应用程序。在 Flask 中,咱们能够运用 Python 函数来界说 Web 应用程序的路由和处理程序。
二、常用函数解说
以下是一些常见的 Python Flask API 函数:
1)Flask() 函数
这个函数是 Flask 应用程序的中心,用来创立一个新的 Flask 实例。
from flask import Flask
app = Flask(__name__)
2)route() 函数
这个函数用来指定路由和恳求办法。能够运用多个 route()
函数来界说多个路由。
@app.route('/')
def hello_world():
return 'Hello, World!'
3)jsonify() 函数
这个函数能够将 Python 目标转换为 JSON 格局的呼应目标。
from flask import jsonify
@app.route('/users')
def get_users():
users = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 35}
]
return jsonify(users)
4)render_template() 函数
这个函数用来渲染模板并回来 HTML 呼应目标。能够运用模板引擎来动态生成 HTML。
from flask import render_template
@app.route('/profile/<username>')
def profile(username):
return render_template('profile.html', name=username)
5)redirect() 函数
这个函数能够将恳求重定向到另一个 URL。
from flask import redirect
@app.route('/redirect')
def redirect_to_home():
return redirect('/')
6)url_for() 函数
这个函数用于生成 URL,能够运用视图函数的称号作为参数。
from flask import url_for
@app.route('/profile/<username>')
def profile(username):
return f'Hello, {username}! Your profile URL is {url_for("profile", username=username)}.'
7)before_request() 函数
这个函数用来注册一个函数,在每个恳求之前履行。
@app.before_request
def before_request():
if 'user_id' not in session and request.endpoint not in ['login', 'static']:
return redirect(url_for('login'))
8)after_request() 函数
这个函数用来注册一个函数,在每个恳求之后履行。
@app.after_request
def after_request(response):
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
return response
9)abort() 函数
这个函数用于在视图函数中引发反常,并回来一个过错呼应。
from flask import abort
@app.route('/users/<int:user_id>')
def get_user(user_id):
user = User.query.get(user_id)
if user is None:
abort(404)
return jsonify(user.to_dict())
10)send_file() 函数
这个函数用于发送文件作为呼应,能够将文件作为字节省或者文件途径来发送。
from flask import send_file
@app.route('/download')
def download_file():
file_path = '/path/to/file'
return send_file(file_path, as_attachment=True)
三、常用目标解说
1)request 目标
这个目标表示客户端发出的恳求,包含恳求头和恳求体等信息。能够运用 request
目标来获取客户端发送的数据。
from flask import request
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
return f'Hello, {username}! Your password is {password}.'
2)session 目标
这个目标能够用来存储用户会话数据,例如用户 ID 等。
from flask import session
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
if username == 'admin' and password == 'password':
session['user_id'] = 1
return redirect('/')
else:
return 'Invalid username or password.'
四、Flask 中的 cookies 与 session
1)cookies 与 session 的介绍与区别
在 Flask 中,Cookies 和 Session 都是用来盯梢用户状况的机制。
-
Cookie
是一小段文本数据,当一个用户拜访你的网站时,服务器能够经过设置cookie
把一些数据存储在用户的核算机上。当用户再次拜访网站时,浏览器会发送cookie
数据给服务器,以便服务器能够运用该数据来识别用户。Flask 运用 Flask-Cookie 来处理cookies
,运用它能够设置、获取和删除cookies
。 -
Session
是一种在服务器端存储的状况数据,与Cookie
不同,Session
数据不会存储在用户的核算机上,而是存储在服务器端。当一个用户拜访你的网站时,服务器会为该用户创立一个仅有的Session ID
,并将该ID
存储在一个cookie
中,然后服务器运用该Session ID
来识别用户。Flask 运用Flask-Session
来处理Session
,运用它能够设置、获取和删除Session
数据。 -
一般来说,
Session
更加安全,由于数据存储在服务器端,而且用户无法直接修改数据。Cookie
的优点是能够存储很多数据,而且能够在不同的页面之间同享。在实际运用中,开发者能够根据需要挑选运用Cookie
或Session
。
以下是在 Flask 中运用 Cookies 和 Session 的示例:
2)示例解说
1、运用 Flask-Cookie 设置 Cookie
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/')
def index():
response = make_response('Hello, World!')
response.set_cookie('name', 'value')
return response
if __name__ == '__main__':
app.run()
在上面的比如中,咱们运用 Flask 的 make_response
函数创立一个呼应目标,然后运用 set_cookie
办法设置了一个名为 name,值为 value
的 cookie
。
2、运用 Flask-Cookie 获取 Cookie
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
name = request.cookies.get('name')
return f'Hello, {name}!'
if __name__ == '__main__':
app.run()
在上面的比如中,咱们运用 Flask 的 request
目标获取了名为 name
的 cookie
的值,然后将其回来给用户。
3、运用 Flask-Session 设置和获取 Session
from flask import Flask, session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
@app.route('/')
def index():
session['name'] = 'value'
name = session.get('name')
return f'Hello, {name}!'
if __name__ == '__main__':
app.run()
在上面的比如中,咱们运用 Flask 的 session 目标设置了一个名为 name,值为 value 的 Session,并运用 get 办法获取了该 Session 的值,然后将其回来给用户。
需要留意的是,为了运用
Flask-Session
,需要在应用程序中设置一个SECRET_KEY
。该密钥用于加密Session
数据,以保证数据不被篡改。
Python Flask 常用的API函数、类目标以及 cookies 和 session 的解说与示例演示就先到这里了,有任何疑问欢迎给我留言,也可关注我的公众号【大数据与云原生技能共享】深化技能交流或私信交流哦~