flask客户端测试使用设置cookie参数

今天在对flask客户端进行测试,然后看到我们服务器端用请求前钩子写了这样的代码

@app.before_request
def before_request():
  
  session = request.cookies.get('P', '')

这段代码的意思是,在将请求发向flask路由的之前先运行这段代码,我们都知道要在requests里面设置cookies的参数只需要

import requests

print requests.request('get', 'http://nuanhi.com', cookies={'P': '123'}).text

只要在request方法里面带上cookies字典就可以让上面语句获得对应内容。

问题是,要如何让flask 测试客户端也能设置上cookies这个参数呢。

self.app_client.set_cookie(domain, cookie_name, cookie_value)

其中 domain 可以自己填,第二个参数是cookie的name 这里就是'P' 然后后面设置上值就行了

 

 

Reference:

http://stackoverflow.com/questions/16282576/flask-unit-test-send-cookies-after-modifying-the-session  flask-unit-test-send-cookies-after-modifying-the-session

http://stackoverflow.com/questions/14890478/how-do-i-send-cookies-with-request-when-testing-flask-applications-through-noset  how-do-i-send-cookies-with-request-when-testing-flask-applications-through-noset

Flask 中,客户端可以使用 GET 或 POST 方法向服务端传递多个参数。其中,GET 方法将参数附加在 URL 后面,POST 方法则将参数放在请求体中。 例如,如果要使用 GET 方法传递两个参数 name 和 age,可以使用以下 URL: ``` http://example.com/api?name=John&age=30 ``` 在服务端中,可以使用 request.args.get() 方法获取这些参数的值: ```python from flask import Flask, request app = Flask(__name__) @app.route('/api', methods=['GET']) def api(): name = request.args.get('name') age = request.args.get('age') # do something with name and age return 'Hello, {}! You are {} years old.'.format(name, age) if __name__ == '__main__': app.run() ``` 如果要使用 POST 方法传递多个参数,可以在客户端使用表单或 JSON 格式发送请求,例如: ```python import requests data = {'name': 'John', 'age': 30} response = requests.post('http://example.com/api', data=data) ``` 在服务端中,可以使用 request.form.get() 或 request.json.get() 方法获取这些参数的值: ```python from flask import Flask, request app = Flask(__name__) @app.route('/api', methods=['POST']) def api(): name = request.form.get('name') age = request.form.get('age') # or: # data = request.get_json() # name = data.get('name') # age = data.get('age') # do something with name and age return 'Hello, {}! You are {} years old.'.format(name, age) if __name__ == '__main__': app.run() ``` 以上代码中的 request.form.get() 方法用于获取表单数据,request.json.get() 方法用于获取 JSON 数据。你可以根据客户端发送的数据类型来选择相应的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值