从HTML调用Python函数不起作用

时间:2018-02-24 18:24:32

标签: python html flask

在我的HTML页面中,我有一个按钮。当我点击按钮时,它应该调用一个Python函数,它接受截图并将其保存在同一目录中。我尝试了我的Python方法,它在本地工作正常。但是当我使用Flask从HTML按钮调用该函数时,它什么都不做,并且没有错误。如何获取截图图片?

Python Flask:
@app.route('/')
def index():
    return render_template('index.html')

# Function to take the screenshot and save it
def takesc():
    with mss() as sct:
        sct.shot()

@app.route('/takeScreenshot')
def takeScreenshot():
    return takesc()

我的HTML

<button onclick="{{ takeScreenshot }}">ScreenShoot</button>

我还尝试使用“url_for”,但仍未发生任何事情:

<button onclick="{{ url_for('takeScreenshot') }}">ScreenShoot</button>

1 个答案:

答案 0 :(得分:3)

使用href

代替按钮,而不是按钮
<a href='/takeScreenshot' class='my_button_class'>ScreenShoot</a>

然后,您可以使用css在.my_button_class类下添加样式。

但是,要使用按钮,您需要指定重定向:

<button type="button" onclick="window.location.href='{{url_for( 'takeScreenshot') }}';">Display Table Y</button>

此外,takeScreenshot不会返回要在屏幕上呈现的文本。 takesc不会返回任何内容,因此,应该在路由返回响应之前调用它:

@app.route('/takeScreenshot')
def takeScreenshot():
   takesc()
   return "screen shot saved"