使用flask不在bootstrap表中显示数据

时间:2015-12-22 11:24:44

标签: twitter-bootstrap python-2.7 flask jinja2 bootstrap-modal

你好,我需要一些帮助,我没有数据显示在表格中。 我将数据从引导模式表单发布到sqlite3数据库。

任何帮助都会很棒。

这是视图

    @dashboard.route('/stream/products', methods=['GET', 'POST']) 
    @login_required
    def products():
        product = Product()
        form = ProductForm(product=product)
        if current_user.can(Permission.WRITE_PRODUCTS) and \
            form.validate_on_submit():
            filename = secure_filename(form.image.data.filename)
            form.image.data.save('./app/static/uploads/' + filename)
            product.name=form.name.data
            product.description=form.description.data
            product.part=form.part.data
            product.price=form.price.data
            product.manager=current_user._get_current_object()
            db.session.add(product)
           flash('The product has been updated.')
           return redirect(url_for('.products',name=product.name))
           form.name.data=product.name
           form.description.data=product.description
           form.part.data=product.part
           form.price.data=product.price
           products = Product.query.order_by(Product.name.desc()).all()
       else:
           filename = None
        return render_template('dashboard/content/products.html',form=form,  filename=filename, product=product )

这里是html我似乎无法找到缺少的链接。

    <tbody>
    {% for product in products %}
    <tr>
    <td>{{ product.id }}</td>
    <td colspan="1">{{ product.image(class="img-responsive" ) }}</td>
    <td colspan="3">{{ product.name }}</td>
    <td colspan="1">{{ product.part }}</td>
    <td colspan="2">{{ product.price }}</td>
    <td colspan="1"><button type="button">Edit</button></td>
    <td colspan="1"><button type="button" >Delete</button></td>
    <td colspan="1"><input type="checkbox"></td>
    </tr>
    {% endfor %}
    </tbody>

模型就是这样。

     class Product(db.Model):
         __tablename__ = 'products'
         id = db.Column(db.Integer, primary_key=True)
         name = db.Column(db.String(55))
         description = db.Column(db.Text)
         part = db.Column(db.String(55))
         price = db.Column(db.Integer)
         manager_id = db.Column(db.Integer, db.ForeignKey('users.id'))

2 个答案:

答案 0 :(得分:0)

您需要在db.session.commit()

之后致电db.session.add(product)

commit()刷新挂起的更改并提交当前事务。

如果您未能拨打电话,那么您的更改将被回滚。

答案 1 :(得分:0)

行后的代码:    return redirect(url_for('.products',name=product.name)) 死了返回离开当前函数,因此后面的行中的代码直到else:从未执行,因此数据不会显示在表单中。

相关问题