Я создаю приложение в фляге, чтобы узнать python и sqlite3. Я столкнулся с проблемой: моя аутентификация входа в систему не проверяет записи в базе данных и позволяет каждому пользователю входить в систему. И данные пользователя хранятся в базе данных во время User signUp, поэтому база данных и таблицы не пусты. Я много пробовал, но не мог придумать никаких исправлений. Нужна помощьSqlite3: Не удалось аутентифицировать
Вот требуемый фрагмент кода. проблема находится в блоке '/ login'.
app.py
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()
@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('/login', methods=['GET', 'POST'])
def login():
error = None
#show = 10
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
cur = g.db.execute('select username,password from users where
username=? AND password=? ',[username,password])
g.db.commit()
if cur is None:
error = 'No such user'
else:
session['logged_in'] = True
flash('You are logged in')
return redirect(url_for('show_entries'))
# return ;
return render_template('login.html', error=error)
login.html
{% extends "layout.html" %}
{% block body %}
<h2>Login</h2>
{% if error %}<p class=error><strong>Error:</strong> {{ error }}{% endif %}
<form action="{{ url_for('login') }}" method=post>
<dl>
<dt>Username:
<dd><input id="name" type=text name=username>
<dt>Password:
<dd><input id="pass" type=password name=password>
<dd><input id="login" type=submit value=Login>
</dl>
</form>
{% endblock %}
Вы должны исправить свой html-код: поместите двойные кавычки, если требуется. – doru
@doru вы можете указать эти области для справки. – Cyclotron3x3