如果单击按钮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
答案 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