198人参与 • 2025-06-19 • ar
先来看一个总览表格,对比三种主要获取方式:
| 获取方式 | 适用场景 | 示例url | 代码示例 |
|---|---|---|---|
| 路由参数 <int:aid> | url路径中的变量部分 | /detail/123 | def detail(aid): |
| request.args | url查询字符串(?后面的键值对) | /publish?title=hello | request.args.get('title') |
| request.form | post表单提交的数据 | 表单提交(无直接url体现) | request.form.get('title') |
@app.route('/detail/<int:aid>')
def detail(aid):
return f"文章id是: {aid}"
识别特征:url路径中用< >包裹的部分
获取方式:直接作为函数参数
示例:
@app.route('/search')
def search():
keyword = request.args.get('q')
return f"搜索关键词: {keyword}"
识别特征:url中?后面的部分,形如key=value,多个参数用&连接
获取方式:request.args.get('key')
示例:
访问url: /search?q=flask&page=2
获取:
/search?q=flask&page=2
↑ ↑
| request.args.get('page') → "2"
request.args.get('q') → "flask"
@app.route('/login', methods=['post'])
def login():
username = request.form.get('username')
password = request.form.get('password')
return f"用户{username}登录中..."
识别特征:通过<form>表单提交的数据
获取方式:request.form.get('field_name')
示例表单:
<form action="/login" method="post"> <input type="text" name="username"> <input type="password" name="password"> <button>提交</button> </form>
表单提交 → 请求体:
username=admin&password=123456
↓
request.form.get('username') → "admin"
request.form.get('password') → "123456"
错误做法:
@app.route('/detail/<int:aid>')
def detail():
aid = request.args.get('aid') # 这样获取不到!
正确做法:
@app.route('/detail/<int:aid>')
def detail(aid): # 直接从参数获取
return str(aid)
错误做法:
# 访问url: /api?user=john
user = request.form.get('user') # 返回none
正确做法:
user = request.args.get('user') # 返回"john"
错误做法:
# 提交了一个登录表单
username = request.args.get('username') # 返回none
正确做法:
username = request.form.get('username')
1.看url结构:
2.http方法联想:
3.开发时的小技巧:
print(request.args) # 查看所有查询参数 print(request.form) # 查看所有表单数据
from flask import flask, request
app = flask(__name__)
# 路由参数 + 查询参数
@app.route('/user/<int:user_id>')
def user_profile(user_id):
action = request.args.get('action', 'view') # 带默认值
return f"用户{user_id}的个人资料,操作: {action}"
# 表单处理
@app.route('/register', methods=['get', 'post'])
def register():
if request.method == 'post':
username = request.form.get('username')
email = request.form.get('email')
return f"注册成功: {username} ({email})"
return '''
<form method="post">
用户名: <input name="username"><br>
邮箱: <input name="email"><br>
<button>注册</button>
</form>
'''
记住:观察url结构是第一步,然后根据参数所在位置选择正确的获取方法。
到此这篇关于flask请求参数获取常用方式详解的文章就介绍到这了,更多相关flask获取请求参数内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论