在Flask wtfform上获取“bytes类型的对象不是JSON可序列化的”

2024-05-23 21:44:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想让CRUD应用程序可以添加、查看和编辑书籍,但是当我实例化从flask创建的Livro(Book)类时,我得到了“TypeError:Object of type bytes is not JSON serializable”_wtf表格班级。你知道吗

我已经搜索了很多问题,但什么都没有,我不明白为什么我会得到一个JSON错误,如果我没有在Flask中使用JSON对象?你知道吗

你知道吗路线.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')

我希望这条路能呈现出注册员.html(显示窗体)。你知道吗


Tags: fromimportformjsonflaskdbvalidatorsloja