Тут я использовал if request.form["btn"] == "Changepass": что бы принимать несколько формы на одной странице
if request.method == 'POST':
if(request.data):
json = request.get_json(force=True)
print(json["id"])
cursor.execute(
"DELETE FROM domains WHERE id='" + json["id"] + "'")
conn.commit()
else:
if request.form["btn"] == "Changepass":
newpass = str(request.form.get('newpass'))
newpass1 = str(generate_password_hash(newpass))
cursor.execute("UPDATE users SET Password='" +
newpass1 + "' WHERE id=?", (id,))
conn.commit()
session.clear()
return redirect('/logout')
else:
if request.form["btn_adddomain"] == "Adddomain":
domain = str(request.form.get('domain'))
cursor.execute("SELECT * FROM domains WHERE domain=?", (domain,))
if cursor.fetchone() is None:
bot.send_message(
config.tc, f"Завка на добавление домена {domain}")
cursor.execute(
f"INSERT INTO domains (user, domain) VALUES (?, ?)", (id, domain,))
conn.commit()
else:
return {
"success": "False",
}
return redirect("/domains")
Вот Html формы
<form action="" method='post' id="AddDomainForm">
<span>Введите домен в формате "example.com"</span>
<p style="margin-top: 5px;">
<input required type="text" class="form__input" placeholder="Домен" name="domain"></p>
</div>
<div class="modal-footer">
<button type="submit" style="border-radius: 6px;" name="btn_adddomain" value="Adddomain">Добавить</button>
Проблема в том что первое условие возвращает
Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 2091, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 2076, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 1518, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.9/dist-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/root/web/panel.py", line 591, in domains
if request.form["btn"] == "Changepass":
File "/usr/local/lib/python3.9/dist-packages/werkzeug/datastructures.py", line 377, in __getitem__
raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'btn'