Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pembaruan Flask-SQLAlchemy membuat rekor baru di MySQL

Oke, jadi terima kasih kepada Daniel dan Doobeh karena telah mengarahkan saya ke arah yang benar. Pada dasarnya saya tidak meminta blog_id dengan benar dalam metode POST dari edit_entry. Ini kode baru (dan berfungsi).

def edit_entry():
    form = BlogEntry()
    if request.method == 'POST':
        blog_id = request.form.get('blog_id')
        update = db.session.query(models.Blog).filter_by(id = blog_id).update({
             'title': request.form.get('title'),
             'content': request.form.get('content')
        })
        db.session.commit()
        return redirect(url_for('blog'))
    elif request.method == 'GET':
        blog_id = int(request.args['blog_id'])
        post = models.Blog.query.filter_by(id = blog_id).first_or_404()
        context = {
            'copyright': COPYRIGHT,
            'form': form,
            'blog_id': blog_id
        }
        form.title.data = post.title
        form.content.data = post.content
        return render_template('edit_entry.html', **context)

Akhirnya ada dua masalah utama. Tinju adalah kekeliruan:ketika saya menyalin template edit_entry dari template new_entry, saya lupa mengubah tindakan formulir, jadi formulir itu sebenarnya diposting ke rute new_entry, jadi duplikasi. Setelah saya menemukan masalah itu, saya juga menyadari bahwa sementara blog_id diteruskan di request.args ke metode 'GET', itu tidak diteruskan dalam metode 'POST' (karena posting tidak berasal dari pengalihan), jadi Saya sebenarnya membuat bidang baru di template edit_entry untuk meneruskan blog_id kembali ke POST.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Salin/duplikat database tanpa menggunakan mysqldump

  2. Ikon Wampserver tidak sepenuhnya hijau, layanan mysql tidak memulai?

  3. Cara Menggunakan Tampilan di Database MySQL

  4. MySql, menggabungkan kolom tanggal dan waktu menjadi cap waktu

  5. Pengecualian 'tidak dapat menemukan driver' saat migrasi di yii2