Flask 路由和视图函数
在Flask中,路由和视图函数是两个核心概念,它们协同工作以处理用户请求并生成响应。
一、路由 (Routing)
路由是URL到Python函数的映射。当用户访问一个URL时,Flask会根据这个映射找到对应的处理函数。在Flask中,可以使用装饰器@app.route()来定义路由。
from flask import Flask
app = Flask(__name__)@app.route('/')
def home():return 'Hello, World!'
这里定义了一个路由,将根URL(‘/’)映射到名为home的函数。当用户访问应用程序的根URL时,它将返回’Hello, World!'。
二、视图函数 (View Functions)
视图函数是处理用户请求并生成响应的Python函数。它们通常与路由一起使用,接收请求、处理数据并返回响应。视图函数可以返回多种响应类型,如文本、HTML、JSON等。
在上面的示例中,home()函数就是一个视图函数。它处理用户请求并返回一个简单的文本响应。
三、动态路由
Flask支持动态路由,允许将URL中的某些部分作为参数传递给视图函数。可以在路由装饰器中使用尖括号(<>)包含参数名称。
@app.route('/user/<username>')
def show_user_profile(username):return 'User: %s' % username
这个示例定义了一个动态路由,将包含在URL中的用户名传递给show_user_profile函数。例如,访问’/user/john’将显示’User: john’。
四、HTTP方法
默认情况下,Flask视图函数只处理GET请求。但是,可以通过指定methods参数来处理其他HTTP方法,如POST、PUT、DELETE等。
@app.route('/login', methods=['GET', 'POST'])
def login():if request.method == 'POST':return 'Processing login...'else:return 'Displaying login form...'
这个示例中的login函数可以处理GET和POST请求。当用户提交登录表单时,它将处理POST请求并返回 ‘Processing login…’。
五、总结
在Flask中,路由是用于将URL映射到视图函数的机制。视图函数负责处理用户请求并生成响应。通过定义路由、编写视图函数并处理HTTP方法,可以构建出功能丰富的Web应用程序。