从视图中获取url变量

时间:2015-06-29 15:00:49

标签: python http flask

我想向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"

2 个答案:

答案 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>') def my_func(myVar): >

最后,在某种程度上,基于http请求杀死任何进程看起来都很糟糕,但你知道你的环境最好,而且据我所知,它甚至可能都没有暴露在互联网上。古德勒克,别忘了对此保持安全。

答案 1 :(得分:0)

我认为显而易见的方法是:

@app.route('/kill/<int:pid>')
def kill(pid):
    .....