sqlite 如何使用fetchone()代替fetchall()?

8fq7wneg  于 2023-04-30  发布在  SQLite
关注(0)|答案(1)|浏览(151)

它与fetchall工作正常,但我试图找出如何使用fetchone代替。我希望能够存储所有用户输入,但只显示最后一次输入(个人用户的输入)。我正在使用sqlite,python,HTML和flask。

def get_db_connection():
    conn = sqlite3.connect('databse.db')
    conn.row_factory = sqlite3.Row
    return conn

# get all users

@app.route('/')
def index():
    conn = get_db_connection()
    users = conn.execute('SELECT * FROM users').fetchall()
    conn.close()
    return render_template('index.html', users=users)

# add a new user

@app.route('/create', methods=('GET', 'POST'))
def create():
    if request.method == 'POST':
        firstname = request.form['firstname']
        lastname = request.form['lastname']
        email = request.form['email']

        if not firstname:
            flash('firstname is required!')
        elif not lastname:
            flash('lastname is required!')
        elif not lastname:
            flash('email is required!')
        else:
            conn = get_db_connection()
            conn.execute('INSERT INTO users (firstname, lastname, email) VALUES (?, ?, ?)',
                         (firstname, lastname, email))
            conn.commit()
            conn.close()
            return redirect(url_for('index'))

    return render_template('home2.html')

用户应该只看到他们的输入。这是我曾经尝试过的

@app.route('/')
def index():
    conn = get_db_connection()
    user = conn.execute('SELECT * FROM users ORDER BY id DESC LIMIT 1').fetchone()
    conn.close()
    return render_template('index.html', user=user)

# add a new user

@app.route('/create', methods=('GET', 'POST'))
def create():
    if request.method == 'POST':
        firstname = request.form['firstname']
        lastname = request.form['lastname']
        email = request.form['email']

        if not firstname:
            flash('firstname is required!')
        elif not lastname:
            flash('lastname is required!')
        elif not lastname:
            flash('email is required!')
        else:
            conn = get_db_connection()
            conn.execute('INSERT INTO users (firstname, lastname, email) VALUES (?, ?, ?)',
                         (firstname, lastname, email))
            conn.commit()
            conn.close()
            return redirect(url_for('index'))

    return render_template('home2.html')
toiithl6

toiithl61#

可能以列表的形式返回用户。在render_template中尝试users=[user]。

相关问题