嗯,我的烧瓶应用程序中有这个:
@app.route("/changeip/<ip>")
def change_ip(ip) :
return ip
现在如果我调用它:
http://127.0.0.1:5000/changeip?ip=1.2.2.2
它吐出“未找到网址”......我在这里做错了什么?
答案 0 :(得分:6)
第一个路由描述了一个url,其值为url的一部分。第二个url描述了一个没有变量的路由,但在url中有一个查询参数。
如果您使用的是第一条路线,则网址应如http://127.0.0.1/changeip/1.2.2.2
。
如果您使用的是第二个网址,则路线应该如/changeip
,该功能应为def change_ip():
,并且应该从request.args['ip']
读取该值。
通常路由应该描述应该始终存在的任何参数,并且表单或查询参数应该用于用户提交的数据。
答案 1 :(得分:0)
您应该使用:
app.route('/something/<ip>')
def function(ip):
在使用url_for时,还应该传递ip的值:
url_for('function', ip='your_ip_address')
答案 2 :(得分:-1)
接受的答案是正确的,但我想添加看起来 OP 最初在他的 http 请求中尝试的方法。
另一种传入变量的方法是通过在 url 中分隔变量的问号,并使用请求。
import requests
然后在方法中,
@app.route("/changeip")
def change_ip():
return requests.args.get('ip', '')
对于 url,您使用问号分隔符传递变量,这是您最初尝试的方式。
http://127.0.0.1:5000/changeip?ip=1.2.2.2