Python 页面加载后清空烧瓶DB

Python 页面加载后清空烧瓶DB,python,database,sqlite,flask,Python,Database,Sqlite,Flask,我有一个Flask应用程序,可以从本地数据库读取数据。因为它里面没有任何数据,所以我用我编写的add_to_db方法给它播了一次种子。当我在一行之后检查数据库时,它有数据。 但是,当我删除add_to_db行并重新加载页面时,数据库是空的。基本上,数据库在页面加载后会自动清除 import sqlite3, datetime from flask import Flask, request, session, g, redirect, url_for, \ abort, render_

我有一个Flask应用程序,可以从本地数据库读取数据。因为它里面没有任何数据,所以我用我编写的add_to_db方法给它播了一次种子。当我在一行之后检查数据库时,它有数据。 但是,当我删除add_to_db行并重新加载页面时,数据库是空的。基本上,数据库在页面加载后会自动清除

import sqlite3, datetime
from flask import Flask, request, session, g, redirect, url_for, \
     abort, render_template, flash
from contextlib import closing
# configuration
DATABASE = 'valids.db'
DEBUG = False
SECRET_KEY = 'development key'
USERNAME = 'admin'
PASSWORD = 'default'
app = Flask(__name__)
app.config.from_object(__name__)
def connect_db():
    return sqlite3.connect(DATABASE)


def init_db():
    with closing(connect_db()) as db:
        with app.open_resource('schema.sql', mode='r') as f:
            db.cursor().executescript(f.read())
        db.commit()


def add_to_db(seq):
    g.db.execute("insert into emergencies (sequence, begin) values (?, ?);",(seq,datetime.datetime.now()))


@app.before_request
def before_request():
    g.db = connect_db()


@app.teardown_request
def teardown_request(exception):
    db = getattr(g, 'db', None)
    if db is not None:
        db.close()


@app.route('/<seq>',methods=['GET'])
def show_entries(seq):
    print(list(g.db.execute('select * from emergencies')))

    add_to_db(seq)
    print(list(g.db.execute('select * from emergencies')))

    statement="select * from emergencies where sequence = '%s';"%seq
    cur = g.db.execute(statement).fetchall()
    if len(cur)>0:
        cur=cur[0]
    else:
        return render_template('notfound.html')
    if cur[3] is None:
        return render_template('house.html')
    else:
        return render_template('notfound.html')


if __name__ == '__main__':
    app.run()
您需要提交更改:

def add_to_db(seq):
    g.db.execute("insert into emergencies (sequence, begin) values (?, ?);",(seq,datetime.datetime.now()))
    g.db.commit()
或使用在成功时自动提交:

def add_to_db(seq):
    with g.db:
        g.db.execute("insert into emergencies (sequence, begin) values (?, ?);",(seq,datetime.datetime.now()))