cari

Rumah  >  Soal Jawab  >  teks badan

Fail input mendapatkan semula rekod image_URL ke pangkalan data

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 untuk

URL_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)
P粉277305212P粉277305212300 hari yang lalu465

membalas semua(1)saya akan balas

  • P粉148434742

    P粉1484347422024-02-26 18:57:14

    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:

    current_image_URL = smartphones[0][11]
    

    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:

    if form.image_URL.data == "":
       image_URL = current_image_URL
    else:
       image_URL = form.image_URL.data
    

    Anda boleh lihat di atas bahawa kami menyimpan hasil semakan ini image_URL 中。然后,您只需在数据库更新语句中将 form.image_URL.data 替换为 image_URL Itu sahaja:

    conn.execute('UPDATE Smartphone SET ... image_URL = ? ...',(..., image_URL, ...))
    

    Juga, dalam editSmartphoneForm 内部,请确保删除 image_URL 上的 DataRequired() pengesah.

    Semoga ini membantu, atau sekurang-kurangnya membawa anda ke landasan yang betul!

    balas
    0
  • Batalbalas