Почему не работает кнопка удаления? нужна помощь в Python и Flask

from flask import Flask,session,render_template,request,session
from flask_session import Session

app = Flask(__name__)

app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)

Установка заметок в пустой массив:

notes = []

@app.route("/", methods = ["GET" , "POST"])
 #this is the function for submit button
def index():

if request.method == "POST:
    note = request.form.get("note")


    notes.append(note)

Заметка получает HTML-значение заметки, а затем заметки добавляются к заметке:

return render_template("index.html",notes = notes)

@app.route("/",methods =["GET","POST"])
#this is the function for delete function
def delete():
 if request.method = = "POST":
    number = request.form.get("number")
    notes.remove(notes[number])
 return render_template("index.html" , notes = notes)

Я создаю форму, которая принимает или записывает, что я ввожу как текст в разделе формы, который имеет индекс функции.

Другая функция предназначена для кнопки удаления. Он также имеет форму в HTML, в которую можно вводить только числа.

Если я выберу номер 1, он должен удалить первый элемент в списке, но здесь этого не происходит.

Раздел HTML приведен ниже:

      <!DOCTYPE html>
       <html>
       <head>
        <title>Hello world</title>
       </head>
       <body>
       <h1>Notebook</h1>

  <form action = "{{url_for('index')}}" method = "POST">
  <input type = "text" name = "note" placeholder = "Enter the input">
  <button> Submit </button>

 </form>
 <form action = "{{url_for('delete')}}" method = "POST">
 <input type = "number" name = "number">
 <button>Delete</button>
 </form>
 <ul> {%for note in notes%}
 <li>{{note}}</li>
{%endfor%}
</ul>

</body>
</html>

}

🤔 А знаете ли вы, что...
Python поддерживает многозадачность и многопоточность.


730
1

Ответ:

Ваш код кажется немного запутанным, поскольку для индекса есть 2 маршрута приложений, и оба содержат почтовый запрос. Попробуйте что-то вроде следующего: у меня нет доступа ко всему вашему коду, поэтому он не протестирован, при необходимости измените его. Я уверен, что вы поняли:

@app.route("/", methods = ["GET" , "POST"])
def index():
if request.method == "POST:
    if request.form.post['action'] == 'Append':
        note = request.form.get("note")
        notes.append(note)

    if request.form.post['action'] == 'Delete':
        number = request.form.get("number")
        notes.remove(notes[number])

 return render_template("index.html" , notes = notes)

в вашем html поместите кнопки в нужные места примерно так:

<input type  = "submit" name = "action" value = "Append">     
<input type  = "submit" name = "action" value = "Delete">