Если я правильно понимаю ваш вопрос - скелетная версия вашей страницы будет выглядеть примерно так
<!DOCTYPE html>
<html>
<body>
<p>INTRODUCING MY AWESOME SITE AND 2 DIVS YOU CAN CLICK</p>
<div id="apt_1_modal">
<input id="apt_1_text"></input>
<a onclick="myFunction(event)">Submit</a>
</div>
<div id="apt_2_modal">
<input id="apt_2_text"></input>
<a onclick="myFunction(event)">Submit</a>
</div>
</body>
</html>
Вам потребуется JavaScript
для обработки взаимодействия с пользователем - скрипт будет выглядеть примерно так,Вы можете либо добавить этот сценарий непосредственно к выводу render_template
, либо добавить его в файл.
Сценарий будет выполнять 2 действия: сначала захватить то, что вводит пользователь, а затем отправить эти данные на flask
<script>
function myFunction(e) {
//FIRST WE CAPTURE THE VALUE THAT THE USER INPUTS
let userInput = {toSend: e.currentTarget.previousElementSibling.value}
//THEN WE SEND IT TO THE FLASK BACKEND USING AJAX (Fetch API)
fetch("/api/path/to/flask/route", {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(userInput)
}
</script>
Теперь вам нужна функция, которая может обрабатывать userInput
data
Backend
from flask import Flask, request #import main Flask class and request object
@app.route('/api/path/to/flask/route', methods=['POST'])
def capture_userinput():
req_data = request.get_json()
recd_data = req_data['toSend']
your_code_to_push_data_to_db(recd_data) #Depends on your ORM/DB
Я надеюсь, что дал вам представление о том, как это сделать - вам, безусловно, придется изменить способ захватаuserInput
, настройте fetch
вызов и отправьте / перехватите дополнительные данные в вашем flask
API.