我想向ip:port/this1234
发出HTTP GET请求,并在Python代码中使用“1234”作为变量。 “1234”是一个任意的int。如何将int作为我的视图的参数?
@app.route('/stop####')
def stop####():
global stopped
if stopped:
call(["./stop.sh"], shell = True)
stopped = False
return "started"
return "already started"
答案 0 :(得分:3)
您需要查看Quickstart guide。
同时,您可以使用
获取POST数据myvar = request.form["myvar"]
并使用
获取myvar = request.args.get("myvar")
然后,指南继续提及一些错误处理建议,并引用更深入的request object page。
我们建议使用get或捕获KeyError来访问URL参数,因为用户可能会更改URL并向他们显示400个错误的请求页面,在这种情况下用户不友好。
有关请求对象的方法和属性的完整列表,请转到 到请求文档。
您可能还想稍微查看routing。我不确定你要用你的路由中的英镑符号来完成什么(编辑:我看到你重新阅读的意思;见底部的编辑)。请注意以下来自SitePoint上的comment的引用。
浏览器在请求页面时不会将HTTP的
#whatever
部分发送到服务器中
好的,所以如果你想传递URI中的值,我建议更像是:example.com/this/1234
,你的路由规则看起来就像@app.route('/this/<myVar>')
最后,在某种程度上,基于http请求杀死任何进程看起来都很糟糕,但你知道你的环境最好,而且据我所知,它甚至可能都没有暴露在互联网上。古德勒克,别忘了对此保持安全。
答案 1 :(得分:0)
我认为显而易见的方法是:
@app.route('/kill/<int:pid>')
def kill(pid):
.....