使用HTML按钮运行python脚本

时间:2018-05-11 17:43:20

标签: python html

如果单击按钮html文件,如何调用python脚本? 我试图通过单击按钮来更改网站的语言。这是我到目前为止所做的,但当我点击按钮时出现错误"页面未找到"和"当前的URL,foo,没有匹配任何这些。"我做错了什么

的login.html

<form action="/foo" method="post">
<input type="submit" name = "first_button" value="French">
<input type="submit" name = "second_button" value="Spanish">
</form>

views.py

from app import foo

def get_language_from_client(request):   
new_lang= foo()
if new_lang=="fr":
    client_lang="fr"
else:
    client_lang = translation.get_language_from_request(request)
print "client_lang:", client_lang
if "en" in client_lang:
    return 0
elif "nl" in client_lang:
    return 1
elif "fr" in client_lang:
    return 2
elif "pl" in client_lang:
    return 3
elif "ru" in client_lang:
    return 4
else:
    print "Unknown language code:", client_lang
    return 2

app.py

from flask import Flask, render_template
app = Flask(__name__)

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

@app.route('/foo')
def foo():
    return "fr"

if __name__ == '__main__':
    app.run()

我的目录结构类似于

scriboxapp
-templates
  -login.html
-views.py
-app.py

1 个答案:

答案 0 :(得分:2)

我建议您使用here

以下是您可以做的一个示例:

index.html

<form action="/foo" method="POST">
    <input type="submit" value="French">
</form>

app.py

from flask import Flask, render_template

app = Flask(__name__)

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

@app.route('/foo', methods=['GET', 'POST'])
def foo():
    '''execute whatever code you want when the button gets clicked here'''
    return

if __name__ == '__main__':
    app.run()

当您运行app.py文件并导航到运行Flask网络服务器的URL(在本例中为localhost)时,您将看到index.html文件。

在上面的示例中,您可以看到包含值French的按钮将执行您的/foo路由。您可以使用正确的路径装饰器/foo执行所需的代码。

要使其正常工作,您的目录结构应如下所示:

- app
    - templates
        - index.html
    - app.py