在Flask wtf表单上获取“字节类型的对象不可JSON序列化”

时间:2019-05-06 03:29:08

标签: python flask-wtforms

我只是试图制作一个CRUD应用程序,您可以在其中添加,查看和编辑书籍,但是当我实例化Livro(Book)类时,却收到了“ TypeError:字节类型的对象不可JSON可序列化”的信息。我是从flask_wtf.Form类创建的。

我已经搜索了很多问题,但是什么也没找到,如果我不使用Flask中的JSON对象,为什么我会收到JSON错误?

routes.py

from flask import Flask, render_template, flash, redirect, url_for

from loja_livros import app
from loja_livros.forms import RegistrarLivroForm
from loja_livros.models import Livro
from loja_livros import db


@app.route("/registrar", methods=['GET', 'POST'])
def registrar_livro():

    form = RegistrarLivroForm()  # this is where the StackTrace points to...

    if form.validate_on_submit():
        livro = Livro(titulo = form.titulo.data, autor = form.autor.data, ano = form.ano.data)  # passando os dados para o modelo e salvando no bando de dados
        db.session.add(livro)
        db.session.commit()

        flash('Livro adicionado com sucesso', 'success')
        return redirect(url_for('home_page'))

    return render_template('registrar.html', pag_title = "Adicionar Livro", form = form, legenda = 'Inserir novo livro')

这是表格。py

from flask_wtf import Form
from wtforms import StringField, SubmitField, TextField
from wtforms.validators import DataRequired, Length


class RegistrarLivroForm(Form):
    titulo = StringField('Titulo', validators = [DataRequired()])

    autor = StringField('Autor', validators = [DataRequired()])

    ano = StringField('Ano', validators = [DataRequired(), Length(min = 3, max = 4)])

    add_livro_btn = SubmitField('Adicionar')

我希望该路由能够呈现registrar.html(显示表单)。

0 个答案:

没有答案