Этого можно достичь с помощью API выборки ( см. Поддерживаемые браузеры ), которое не зависит от Jquery.
Основываясь на этом другом полезном ответе , вы можетеиметь шаблон на templates/index.html
:
<html>
<body>
<button type="button" id='generate'>Click Me!</button>
<script type='text/javascript'>
var List = [
{ load: "2", location: "3" },
{ load: "2", location: "4" },
{ load: "2", location: "8" },
];
document.getElementById('generate').addEventListener('click', event => {
fetch("/", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(List)
}).then(res => {
console.log("Request complete! response:", res);
});
});
</script>
</body>
</html>
Файл фляги должен выглядеть следующим образом:
from flask import Flask , request, render_template, jsonify
app = Flask(__name__)
@app.route('/',methods =['GET','POST'])
def index():
if request.method == 'POST':
req = request.get_json()
print(req)
return jsonify({'status':'success'})
else:
return render_template('index.html')
if __name__=='__main__':
app.run(host='0.0.0.0')
Обратите внимание, что это также обрабатывает логику на основе метода запроса:
- POST-запрос выведет полезную нагрузку json (
req
) на консоль сервера, а затем вернет ответ, используя функцию Flask jsonify
. - Любой другой запрос отобразит шаблон
templates/index.html
. (отобразить пользовательский интерфейс с кнопками для пользователя)
Когда вы нажимаете кнопку в интерфейсе, вы видите это на консоли сервера:
[{'load': '2', 'location': '3'}, {'load': '2', 'location': '4'}, {'load': '2', 'location': '8'}]