> 文章列表 > Flask 路由和视图函数

Flask 路由和视图函数

Flask 路由和视图函数

Flask 路由视图函数

  • 一、路由 (Routing)
  • 二、视图函数 (View Functions)
  • 三、动态路由
  • 四、HTTP方法
  • 五、总结

在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应用程序。