У меня есть таблица HTML, заполненная данными из файла JSON.Файл JSON получает данные из базы данных SQLite через Flask-SQLAlchemy.Таблица называется Test и содержит столбцы для имени, адреса электронной почты и идентификатора.
Когда я удаляю все данные для Test.Это дает мне пустой список.Файл JSON читает таблицу Test, и она должна быть пустой, как и таблица HTML, но в них по-прежнему отображаются те же данные, которые я удалил.Есть идеи, почему это так?Любая помощь приветствуется.
Файл JSON, созданный во Flask.Test - это таблица, созданная с использованием Flask-SQLAlchemy
@app.route("/user_test_json")
def user_test_json():
user_test_json = []
test = Test.query.all()
if test != []:
length = len(test)
name = ["name" for i in range(length)]
email = ["email" for i in range(length)]
questions = ["question" for i in range(length)]
timestamps = ["timestamp" for i in range(length)]
edit = ["edit" for i in range(length)]
for i in range(length):
user_test_json.append({"id": i+1,
name[i]: test[i].name,
email[i]: test[i].email, edit[i]: "Edit_{}".format(i+1),
questions[i]: "Ask_Question",
timestamps[i]: test[i].timestamp })
return jsonify(user_test_json)
else:
return None
JSON-данных, созданных представленной выше функцией представления user_test_json.
[
{
"edit": "Edit_1",
"email": "Akira@gmail.com",
"id": 1,
"name": "Akira",
"question": "Ask_Question",
"timestamp": "2019-03-20 13:47:08"
},
{
"edit": "Edit_2",
"email": "ryo@gmail.com",
"id": 2,
"name": "ryo",
"question": "Ask_Question",
"timestamp": "2019-03-20 13:47:29"
},
{
"edit": "Edit_3",
"email": "jessica@gmail.com",
"id": 3,
"name": "Jessica",
"question": "Ask_Question",
"timestamp": "2019-03-20 13:52:24"
},
{
"edit": "Edit_4",
"email": "john@gmail.com",
"id": 4,
"name": "john",
"question": "Ask_Question",
"timestamp": "2019-03-20 13:52:36"
},
{
"edit": "Edit_5",
"email": "peter@gmail.com",
"id": 5,
"name": "peter",
"question": "Ask_Question",
"timestamp": "2019-03-20 13:52:52"
}
]
Когда я запускаю некоторый код для Test и очищаю список.
from models import Test, db
Test.query.all()
#OUTPUT SOME USERS IN TEST TABLE
[<Test 'alita'>, <Test 'bob'>, <Test 'Jessica'>, <Test 'jim'>]
Test.query.delete()
db.session.commit()
test = Test.query.all()
test
#OUTPUT EMPTY LIST
[]
Мой HTML / JS
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="/static/images/neptune-icon2.png" type="image/png" sizes="16x16">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script>
type="text/javascript"
src="//code.jquery.com/jquery-1.9.1.js"
</script>
<title>Test 1</title>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
.test-table-header{
font-weight: bold;
text-align:center;
}
</style>
</head>
<body>
<center>
<table id="table-test">
<tr><th>Numbers</th><th>Link</th></tr>
</table>
<br>
<table id="test-table">
<tr><th class= "test-table-header">ID</th>
<th class= "test-table-header">Name</th>
<th class= "test-table-header">Email</th>
<th class= "test-table-header">Edit</th>
<th class="test-table-header">Question</th>
<th class="test-table-header">TimeStamp</th>
</tr>
</table>
</center>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<script type="text/javascript">
$.get("/user_test_json").then(function(data){
var table = document.getElementById("test-table");
for(var i =0; i < data.length; i++){
table.innerHTML += "<td style='text-align:center;' class='ids' id='row-id'>" +
data[i]["id"] +"</td><td style='text-align:center;'>" +
data[i]["name"] + "</td><td =style='text-align:center;'>" + data[i]["email"]+
"</td><td style='text-align:center;'><a href='#' class='popper' data-popbox='pop1'>"+
data[i]["edit"] +
"</a></td><td><button id='Approved' type='submit'>" + data[i]["question"]
+ "</button></td><td style='text-align:center;'>" +data[i]["timestamp"] + "</td>";
}
});
</script>
</body>
</html>