它与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')
1条答案
按热度按时间toiithl61#
可能以列表的形式返回用户。在render_template中尝试users=[user]。