フラスコベースのブログで削除機能を実装するのに少し苦労しています。私はここで関連する記事を検索し、コメントをまとめて一緒にしようとしましたが、まだ動作していません。エントリIDがURLに通らないコードを実行すると思われます。それは私に 'ページが見つかりません'というエラーを出す。なぜこれが起こるのかについて助けを得ることは素晴らしいでしょう!フラスコ削除関数 - sqliteからローを削除する
これは私のPYです:
@app.route('/delete_entry/<entry_id>', methods=['POST'])
def delete_entry():
if not session.get('logged_in'):
abort(401)
db = get_db()
db.execute('delete from entries where id=' + entry_id)
db.commit()
flash('Entry deleted')
return redirect(url_for('show_entries'))
、これが私のshow_entriesのPYです:
{% extends "layout.html" %}
{% block body %}
{% if session.logged_in %}
<form action="{{ url_for('add_entry') }}" method=post class=add-entry>
<dl>
<dt>Title:
<dd><input type=text size=30 name=title>
<dt>Text:
<dd><textarea name=text rows=5 cols=40></textarea>
<dd><input type=submit value=Share>
</dl>
</form>
{% endif %}
<ul class=entries>
{% for entry in entries %}
<li><h2>{{ entry.title }}</h2><h6>{{ entry.dt }}<h6><p>{{ entry.text|safe }}</p><p><{{ entry.id }}</p></li>
<form action="{{ url_for('delete_entry', entry_id = entry.id) }}" method=post class=delete-entry>
<input type="hidden" name="entry_id" value="{{ entry.id }}">
<input type="submit" value="Delete" />
</form>
{% else %}
<li><em>Unbelievable. No entries here so far</em></li>
{% endfor %}
</ul>
{% endblock %}
これはdelete_entry.htmlです:
{% extends "layout.html" %}
{% block body %}
<ul class=entries>
{% for entry in entries %}
<li><a>{{entry.title }}</a>
<pre>{{ entry.text }}</pre>
{% if session.logged_in %}
<form action="{{ url_for('delete_entry') }}" method=post class=delete-entry>
<input type=hidden value="{{ entry.id }}"name=movie_to_delete"></input>
<input type=submit></input>
</form>
{% endif %}
{% endfor %}
</ul>
{% endblock %}