Saya cuba mengedit butiran telefon pintar dan semua medan input mempunyai pengesahan dataRequired(). Walau bagaimanapun, fail input untuk imej kosong secara lalai. Apabila saya cuba mengedit medan lain, seperti jenama, saya juga perlu memasukkan fail input untuk imej untuk mengedit dengan jayanya. Bagaimanakah saya boleh mendapatkan fail input secara automatik mengambil image_URL daripada pangkalan data selepas menyerahkan borang?
Masukkan fail untukURL_gambar
{% for smartphone in smartphones %} <div class="form-floating mb-4 justify-content-between"> <img src="{{ url_for('static',filename = smartphone['image_URL']) }}" style="height: 250px;"> <input type="file" id="image_URL" name="image_URL" accept="image/*"> </div> {% endfor %}Bahagian belakang dalam
app.py
@app.route('/editSmartphone/<int:id>',methods = ['GET','POST']) def editSmartphone(id): smartphoneID = id conn = get_db_connection() smartphones = conn.execute('SELECT * FROM Smartphone WHERE id = ?',(smartphoneID,)).fetchall() form = editSmartphoneForm(request.form) if request.method == 'POST' and form.validate(): conn.execute('UPDATE Smartphone SET brand = ?,model = ?,processor = ?, ram = ?, colour = ?, battery = ?, lowprice = ?, highprice = ?, screenSize = ?, refreshRate = ?, description = ?, image_URL = ? WHERE id = ?',(form.brand.data, form.model.data, form.processor.data, form.ram.data, form.colour.data, form.battery.data, form.lowprice.data, form.highprice.data, form.screenSize.data, form.refreshRate.data, form.description.data, form.image_URL.data, smartphoneID)) conn.commit() conn.close() message = "Smartphone detail has been modified successfully" flash(message,'edited') return redirect('/manageSmartphone') return render_template('editSmartphone.html',smartphones = smartphones, form = form)
Soalan anda kelihatan agak serupa dengan soalan ini, jadi saya akan meminjam beberapa elemen daripada jawapan itu di sini.
Anda telah lulus
smartphones
列表获取当前的智能手机,因此您正在编辑的手机的当前image_URL
Ia sepatutnya kelihatan seperti:Kaedah saya adalah untuk menyemak sama ada
editSmartphone
路由上编辑手机时检查form.image_URL.data
kosong. Anda boleh menulis beberapa logik untuk menyemak ini sebelum memanggil kenyataan kemas kini pangkalan data:Anda boleh lihat di atas bahawa kami menyimpan hasil semakan ini
image_URL
中。然后,您只需在数据库更新语句中将form.image_URL.data
替换为image_URL
Itu sahaja:Juga, dalam
editSmartphoneForm
内部,请确保删除image_URL
上的DataRequired()
pengesah.Semoga ini membantu, atau sekurang-kurangnya membawa anda ke landasan yang betul!