编辑和更新方法是 working.But,如何在编辑现有值的同时从数据库中检索值

Edit and Update method is working.But,how to retrieve the values from database while editing the existing values

我正在创建小型 Web Interface.I 在 Web Interface.But 中创建了编辑按钮,它不是 working.It 在 Database.Can 中作为新条目创建任何人帮助me.One 更重要的是如何在编辑现有 values.Thanks 的同时从数据库中检索值。

这是 Python 代码:

class UserForm(FlaskForm):
   type=StringField('type')

@app.route('/newuser', methods=['GET', 'POST'])
   def add_user():

     form = UserForm()
     if form.validate_on_submit():
         user_details = {
        'type': form.type.data

    }
    sqlsession.add(user_details)
    return redirect(url_for('vehicle_type'))
return render_template('vehicletype.html', form=form)

@app.route('/control/edit/<int:id>',methods=['POST','GET'])
def edit(id):
    qry=sqlsession.query(Vehicletype).filter(Vehicletype.id==id).first()
    form = UserForm(request.form, object=qry)
    if form.validate_on_submit():
    form.populate_obj(qry)
    sqlsession.update(qry)
    sqlsession.commit()
    return redirect(url_for('vehicle_type'))
return render_template('vehicletype.html', form=form)

这是 vehicletype.html 代码的模板:

  {% extends "base.html" %}
  {% block head %}
  {{super()}}
  {% endblock %}

  {% block navbar %}
  {{super()}}
  {% endblock %}


 {% block content %}

  <div class="row">
 <ol class="breadcrumb">
    <li><a href="#">
        <em class="fa fa-home"></em>
    </a></li>
    <li class="active">Vehicletype > Create Vehicletype</li>
</ol>
</div><!--/.row-->
<div class="row">
<div class="col-md-6">
<form role="form" action="/post/vehicletype" method="post">

<div class="form-group">
    <label>VehicleType: </label>
    <input name="type" class="form-control" placeholder="enter vehicletype">
</div>

<input type="submit" class="btn btn-primary" value="Submit   ">
<input type="reset" class="btn btn-default" value="Reset">
</form>
</div>
</div>
{% endblock %}

这里是 vehicletypedetails.html 代码:

  {% extends "base.html" %}
  {% block head %}
  {{super()}}
  {% endblock %}


  {% block navbar %}
  {{super()}}
  {% endblock %}


  {% block content %}

  <div class="row">
  <ol class="breadcrumb">
    <li><a href="#">
        <em class="fa fa-home"></em>
    </a></li>
    <li class="active">Vehicletype>View</li>
</ol>
</div><!--/.row-->
<div class="row">
<div class="col-md-12">
<table class="table table-striped table-hover">

<thead>
<tr>
    <th>
        Id
    </th>
    <th>
       VehicleType
    </th>

    <th>
        Dateofsub
    </th>

    <!--<th>
        Control
    </th>-->
    <th>
        Delete
    </th>
</tr>
</thead>
{% for values in vehicletype   %}
<tr>
    <th>{{values.id}}</th>
    <td>{{values.type}}</td>
    <td>{{values.dateofsub}}</td>
    <!--<td><a href="/Control/resetuserpass/{{values.id}}" class="btn btn-info">Reset Password</a></td>-->
    <td><a href=" /vehicletype/deleteuser/{{values.id}}" class="btn btn-danger">Delete</a></td>
    <td><a href=" /control/edit/{{values.id}}" class="btn btn-danger">edit</a></td>
</tr>
{% endfor %}
</table>
<a href = "/page/vehicletype"> <em class="fa fa-xl fa-plus-circle color-blue" ></em> </a>
</div>
</div>
{% endblock %}

我已经尝试解决这个问题 6 天了。但我找不到任何解决方案。请你能帮助我任何人。

您用于编辑现有条目的代码具有 /control/edit/<int:id> 的路由,但您用于提交 user-changes 的表单指向位于 /post/vehicletype 的不同路由.

您需要将 return 更改为:

 return render_template('vehicletype.html', form=form)

至:

 return render_template('vehicletype.html', form=form, car_id=id)

然后将您的 html 代码更改为:

<form role="form" action="/post/vehicletype" method="post">

至:

<form role="form" action="{{ url_for('edit', id=car_id) }}" method="post">

有了它,您的表单代码将被提交到正确的处理路径。