提供东莞网站建设价格,如何自建公司网站,上海房产网官网,设计制作活动内容的原则在 Flask 中#xff0c;可以从 request 对象中获取各种类型的参数。以下是全面整理的获取参数的方式及示例代码。 1. 获取 URL 查询参数#xff08;Query String Parameters#xff09;
URL 中的查询参数通过 ?keyvaluekey2value2 的形式传递#xff0c;使用 reques…在 Flask 中可以从 request 对象中获取各种类型的参数。以下是全面整理的获取参数的方式及示例代码。 1. 获取 URL 查询参数Query String Parameters
URL 中的查询参数通过 ?keyvaluekey2value2 的形式传递使用 request.args 获取。
示例
from flask import Flask, requestapp Flask(__name__)app.route(/query)
def get_query_params():param1 request.args.get(param1, defaultNone, typestr) # 获取单个参数param2 request.args.getlist(param2) # 获取多个同名参数return fparam1: {param1}, param2: {param2}# 测试 URL: http://127.0.0.1:5000/query?param1value1param2value2param2value32. 获取表单数据Form Data
当请求方法为 POST 或 PUT 时可以通过 request.form 获取表单数据。
示例
app.route(/form, methods[POST])
def get_form_data():name request.form.get(name, defaultNone, typestr) # 获取单个参数age request.form.get(age, default0, typeint) # 获取并转换为整数return fname: {name}, age: {age}# 测试使用 Postman 或 curl 提交表单数据3. 获取 JSON 数据
当客户端发送 JSON 格式的数据时可以使用 request.json 获取解析后的字典。
示例
app.route(/json, methods[POST])
def get_json_data():data request.json # 获取 JSON 数据name data.get(name, None)age data.get(age, 0)return fname: {name}, age: {age}# 测试使用 Postman 或 curl 提交 JSON 数据
# 请求头Content-Type: application/json
# 请求体{name: Alice, age: 25}4. 获取文件上传File Uploads
当上传文件时可以通过 request.files 获取文件对象。
示例
app.route(/upload, methods[POST])
def upload_file():file request.files.get(file) # 获取上传的文件if file:filename file.filenamefile.save(f./{filename}) # 保存文件到本地return fFile uploaded: {filename}return No file uploaded# 测试使用 Postman 或 curl 提交文件5. 获取路径参数Route Parameters
路径参数是通过 URL 路径定义的动态部分使用 variable_name 定义并在函数中接收。
示例
app.route(/user/username)
def get_user(username):return fHello, {username}!# 测试 URL: http://127.0.0.1:5000/user/Alice6. 获取原始请求体Raw Body
如果需要直接获取请求的原始内容可以使用 request.data 或 request.get_data()。
示例
app.route(/raw, methods[POST])
def get_raw_data():raw_data request.data.decode(utf-8) # 获取并解码原始数据return fReceived raw data: {raw_data}# 测试提交任意格式的原始数据7. 获取 Headers
通过 request.headers 获取请求头信息。
示例
app.route(/headers)
def get_headers():user_agent request.headers.get(User-Agent) # 获取 User-Agenthost request.headers.get(Host) # 获取 Hostreturn fUser-Agent: {user_agent}, Host: {host}# 测试访问任意 URL8. 获取 Cookies
通过 request.cookies 获取客户端发送的 Cookie。
示例
app.route(/cookies)
def get_cookies():session_id request.cookies.get(session_id, defaultNone) # 获取 Cookiereturn fSession ID: {session_id}# 测试设置 Cookie 并访问9. 获取 Method 类型
通过 request.method 获取当前请求的方法类型如 GET, POST 等。
示例
app.route(/method, methods[GET, POST])
def get_method():return fRequest method: {request.method}# 测试分别用 GET 和 POST 方法访问10. 获取完整的 URL
通过 request.url 获取完整的请求 URL。
示例
app.route(/url)
def get_full_url():return fFull URL: {request.url}# 测试访问任意 URL总结
方式使用场景属性/方法查询参数URL 中的键值对request.args表单数据HTML 表单提交request.formJSON 数据客户端发送 JSON 格式数据request.json文件上传文件上传request.files路径参数动态路由中的参数函数参数原始请求体获取未解析的请求体request.dataHeaders获取请求头信息request.headersCookies获取客户端发送的 Cookierequest.cookiesMethod 类型获取请求方法类型request.method完整 URL获取完整的请求 URLrequest.url
以上方法涵盖了 Flask 中从 request 对象获取参数的主要方式根据实际需求选择合适的方式即可。