Flask 传参数
Flask 是一个轻量级的 Python Web 开发框架,它提供了一个简单而灵活的方式来构建 Web 应用程序。在开发 Web 应用程序时,经常需要传递参数给视图函数,以便处理用户请求并返回相应的结果。在本篇文章中,我们将详细讨论如何在 Flask 中传递参数给视图函数。
基本概念
在 Flask 中,可以通过 URL 路由和查询参数来传递参数给视图函数。URL 路由参数是将参数直接嵌入到 URL 中,而查询参数是将参数作为键值对添加到 URL 的查询字符串中。下面分别介绍这两种传递参数的方式。
URL 路由参数
通过 URL 路由参数传递参数的方式是将参数直接嵌入到 URL 中,这种方式通常用于传递动态参数,例如用户 ID 或者文章标题等。在 Flask 中,可以通过在路由规则中使用 <variable_name>
的方式定义参数,并在视图函数中接收这些参数。
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def user_profile(username):
return f'User Profile: {username}'
if __name__ == '__main__':
app.run()
在上面的示例中,我们定义了一个 /user/<username>
的路由规则,其中 <username>
是动态参数。当用户访问 /user/john
时,视图函数会接收到 john
作为参数,并返回 User Profile: john
的响应。
查询参数
通过查询参数传递参数的方式是将参数作为键值对添加到 URL 的查询字符串中,这种方式通常用于传递可选参数,例如分页参数或者搜索关键字等。在 Flask 中,可以通过 request.args.get()
方法来获取查询参数。
from flask import Flask, request
app = Flask(__name__)
@app.route('/search')
def search():
keyword = request.args.get('q', '')
return f'Search Results for: {keyword}'
if __name__ == '__main__':
app.run()
在上面的示例中,我们定义了一个 /search
的路由规则,并通过 request.args.get('q', '')
方法获取名为 q
的查询参数,如果用户没有输入查询参数,则默认为空字符串。当用户访问 /search?q=flask
时,视图函数会接收到 q=flask
作为参数,并返回 Search Results for: flask
的响应。
使用示例
下面我们通过一个完整的示例来演示如何在 Flask 中传递参数给视图函数。
from flask import Flask, request
app = Flask(__name__)
@app.route('/hello')
def hello():
name = request.args.get('name', 'Guest')
return f'Hello, {name}!'
if __name__ == '__main__':
app.run()
在上面的示例中,我们定义了一个 /hello
的路由规则,并通过 request.args.get('name', 'Guest')
方法获取名为 name
的查询参数,如果用户没有输入查询参数,则默认为 Guest
。当用户访问 /hello?name=John
时,视图函数会接收到 name=John
作为参数,并返回 Hello, John!
的响应;当用户访问 /hello
时,视图函数会使用默认值 Guest
并返回 Hello, Guest!
的响应。
总结
通过本文的介绍,我们了解了在 Flask 中传递参数给视图函数的两种方式:URL 路由参数和查询参数。使用这些方式可以灵活地处理用户请求并返回相应的结果,是开发 Web 应用程序的常见操作。