前言:
眼前大家对“http get请求带参数”大体比较注重,你们都需要知道一些“http get请求带参数”的相关内容。那么小编同时在网上汇集了一些有关“http get请求带参数””的相关资讯,希望咱们能喜欢,看官们快快来学习一下吧!简介
上一篇文章我们介绍了flask的基本使用,编写了flask的第一个脚本。在本文中,我们将详细介绍如何使用Flask进行HTTP请求。我们将学习如何创建Flask应用程序,并通过不同的HTTP方法(GET、POST、PUT、DELETE等)发送请求。
app.route()
要使用不同的http方法发送请求,我们要先了解flask是如何创建路由的,我们可以查看app.route()的源代码,对这一方法先进行了解,鼠标悬停至app.route()处,按住ctrl+鼠标左键即可查看源代码。源代码如下:
python复制代码@setupmethod def route(self, rule: str, **options: t.Any) -> t.Callable[[T_route], T_route]: """Decorate a view function to register it with the given URL rule and options. Calls :meth:`add_url_rule`, which has more details about the implementation. .. code-block:: python @app.route("/") def index(): return "Hello, World!" See :ref:`url-route-registrations`. The endpoint name for the route defaults to the name of the view function if the ``endpoint`` parameter isn't passed. The ``methods`` parameter defaults to ``["GET"]``. ``HEAD`` and ``OPTIONS`` are added automatically. :param rule: The URL rule string. :param options: Extra options passed to the :class:`~werkzeug.routing.Rule` object. """ def decorator(f: T_route) -> T_route: endpoint = options.pop("endpoint", None) self.add_url_rule(rule, endpoint, f, **options) return f return decoratorCalls:meth: add_url_ruleend_poiont 如果未传递 endpoint 参数,则路由的端点名称默认为视图函数的名称,如果已为注册函数,则会引发错误methods 参数默认值是 ["GET"],所以当你不传 methods 参数时,只有发送 GET 请求才能匹配上对应的路由创建http请求创建get请求
上面我们提到了,methods参数默认值是'get',所以我们不加参数也可以直接实现get请求,代码如下:
python复制代码# 不指定 methods,默认就是 GET@app.route('/', methods=['GET'])def index(): return 'Hello, Flask!'@app.route('/get', methods=["GET"])def get_(): # 返回字符串 return '这是get请求'创建post请求
python复制代码@app.route('/api/data', methods=['POST'])def post_data(): data = request.json # 处理POST请求数据并返回响应 return jsonify({"message": "Data received successfully!", "data": data})创建PUT、DELETE 请求
python复制代码@app.route('/putordelete', methods=['PUT', 'DELETE'])def update_or_delete_data(id): if request.method == 'PUT': # 处理PUT请求并更新数据 return jsonify({"message": f"Data with ID {id} updated successfully!"}) elif request.method == 'DELETE': # 处理DELETE请求并删除数据 return jsonify({"message": f"Data with ID {id} deleted successfully!"})
注:视图函数的返回值类型只能是 string、dict、tuple,若返回的是其他类型的数据,将会报错。
注:post请求和put、delete请求需要导入flask的request和jsonify方法
验证请求
我们上面用代码创建了各种请求,现在我们要验证我们的请求是否构造成功了,我们可以使用postman来验证请求,也可以使用requests来验证我们是否成功构造了请求,代码如下:
python复制代码import requestsbase_url = ';# GET请求response = requests.get(base_url)print(response.text)response = requests.get(base_url+ '/get')print(response.text)# POST请求data = {'name': 'John', 'age': 30}response = requests.post(base_url+'/api/data', json=data)print(response.json())# PUT请求response = requests.put(base_url+'/api/data/1', json={'name': 'Updated Data'})print(response.json())# DELETE请求response = requests.delete(base_url+'/api/data/1')print(response.json())###################运行脚本,结果如下:Hello, Flask!这是get请求{'data': {'age': 30, 'name': 'John'}, 'message': 'Data received successfully!'}{'message': 'Data with ID 1 updated successfully!'}{'message': 'Data with ID 1 deleted successfully!'}总结
本文主要介绍了使用Flask进行HTTP请求的基本过程。你可以根据自己的需求在视图函数中处理数据、数据库交互等。Flask提供了强大的扩展和中间件,使得构建功能丰富的Web应用程序变得更加简单。
获取更多技术资料,请点击!> 霍格沃兹测试开发学社|免费学习资料大放送,助你事半功倍! - 公众号 - 测试人社区
标签: #http get请求带参数