Изображение не будет отображаться после редактирования значений с помощью wt-форм в Flask

99
9

Я новичок в Python/Flask.Here моя проблема в том, что я не использовал wt-формы для размещения значений на сервере. Но я использую wt-формы для редактирования значений. К сожалению, это work.but проблема не отображается после редактирования значений. Когда я добавляю изображение в браузере, проверяем элементы, которые будут показаны на фотографии. это может быть проблема в шаблоне. Может ли кто-нибудь помочь мне.

Вот код шаблона driver_edit.html

<div class="form-group">
<label>name: </label>
<input name="name" type="text" class="form-control" placeholder="enter name">
</div>
<div class="form-group">
<label>photo: </label>
<input name="photo" type="file" class="form-control" placeholder="upload photo">
</div>
<div class="form-group">
<label>Aadhar: </label>
<input name="aadhar" type="file" class="form-control" placeholder="up_load photo">
</div>

Вот код view.html.

 <thead>
<tr>
<th>
name
</th>
<th>
photo
</th>
<th>
aadhar
</th>
</tr>
</thead>
{% for values in driver %}
<tr>
<td>{{values.name}}</td>
<td>{{values.id}}</td> **here it is working {{values.id}}**
<td><a href="assets/images/{{values.photo}}"><img src="assets/images/{{values.photo}}" height="40" width="30"/></a>{{values.photo}}</td>
<td><a href="assets/images/{{values.aadhar}}"><img src="assets/images/{{values.aadhar}}" width="30" height="40" width="30"/></a>{{values.photo}}</td>
</tr>
{% endfor %}

Вот код Python для отправки значений в базу данных из веб-интерфейса.

def driver(request):  
file2=request.files['photo']
file3=request.files['aadhar']
if file2.filename and file3.filename == None:
flash('No selected file')
return redirect(request.url)
filename=''
if file2:
filename = secure_filename(file2.filename)
file2.save(os.path.join(app.config['UPLOAD_FOLDER'], file2.filename))
if file3:
filename = secure_filename(file3.filename)
file3.save(os.path.join(app.config['UPLOAD_FOLDER'], file3.filename))

newdriver=Driver(name=request.form['name'],photo=file2.filename,aadhar=file3.filename,
status=request.form['status'],lastlogin=request.form['lastlogin'])

sqlsession.add(newdriver)
sqlsession.commit()

@app.route('/static/driver')
def driversearch():
if session['username']:
return render_template('driversearching.html',user=session['username'],Truck_company=get_truckdetails().all())
else:
flash('login first')
return main()

@app.route('/static/driverdetails')
def driverdetails():
if session['username']:
users=getdriver()
if users.first()==None:
return render_template('empty.html',user=session['username'])
else:
return render_template('driverdetails.html',user=session['username'],driver=users.all())

Вот формы wtf code.py:

class DriverForm(FlaskForm):
name=StringField('name')
photo=StringField('photo')
aadhar=StringField('aadhar')

@app.route('/newoneedit')
def newoneedit():
form=DriverForm()
if form.validate_on_submit():
details={

'photo':'form.photo.data',
'aadhar':'form.aadhar.data',

}
sqlsession.add(details)
return redirect(url_for('driverdetails'))
return render_template('driver_edit.html',form=form)

@app.route('/control/editdriver/<int:id>',methods=['GET','POST'])
def edituser(id):
qry=sqlsession.query(Driver).filter(Driver.id==id).first()
form=DriverForm(request.form,obj=qry)
if request.method=='POST' or 'GET' and form.validate_on_submit():
form.populate_obj(qry)
sqlsession.add(qry)
sqlsession.commit()
return redirect(url_for('driverdetails'))
return render_template('driver_edit.html',form=form,car_id=id,Truck_company=get_truckdetails().all(),driver=driver)

Вот класс модели базы данных:

class Driver(Base):
__tablename__=='driver'
name=Column(String(100))
photo= Column(String(100),nullable=True)
aadhar=Column(String(50),nullable=True)

Здесь я использую строковое поле в формах wt для фотографий и для базы данных, использую строку.

спросил(а) 2018-02-23T15:42:00+03:00 2 года, 8 месяцев назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема