Как удалить все записи из таблицы sqlite3 после получения данных - PullRequest
0 голосов
/ 02 июня 2019

У меня есть этот бутылочный файл, который получает запрос POST с файлом JSON, который хранит данные в базе данных. Данные - это информация об устройствах, подключенных к точке доступа WIFI. Затем с помощью шаблона эти данные печатаются на веб-сайте. Как я могу удалить все записи базы данных после печати? Это способ проверить, отключено ли устройство.

bottle.py

#!/usr/bin/env python
from bottle import route, run, template, request, SimpleTemplate, Bottle,abort,debug
import sqlite3
import json
import time

@route('/', method='POST')
def index():
    body = request.body.read().decode('utf8') # read directly HTTP input
    get_dict = json.loads(body) # decode json and get native python dict
    maclist = get_dict.get('maclist')
    signallist = get_dict.get('signallist')

    data_list = list(zip(maclist, signallist))
    conn = sqlite3.connect('db/users.db')
    c = conn.cursor()
    try:
        c.executemany("INSERT INTO users (MAC,SIGNAL) VALUES(?,?)", data_list)
    except Exception as exc:
        c.executemany("REPLACE INTO users (MAC,SIGNAL) VALUES(?,?)", data_list)
    conn.commit()

    return "Items added."

@route('/data', method='GET')
def index():
    conn = sqlite3.connect('db/users.db')
    c = conn.cursor()
    isEmpty = c.execute('SELECT count(*) from users')

    if (isEmpty != 0):
       c.execute('SELECT * FROM users')


    return template('simple.tpl', rows = c.fetchall())

simple.tpl

<!DOCTYPE>
<html>
<head>
</head>
<body>
    <table id="myTable">
        <tr>
            <td>MAC address</td>
            <td>Signal</td>
        </tr>
        %for row in rows:
            <tr>
                <td>{{ row[1] }}</td>
                <td>{{ row[2] }}</td>
            </tr>
        %end
    </table>
</body>
</html>
...