[Flask框架] sqlalchemy.exc.InterfaceError-错误绑定参数4-可能不受支持的类型

问题描述

我正在开发我的烧瓶博客,并且在尝试将图像文件上传到站点时遇到了这个问题。

这是我的route.py文件

import os
import secrets
from PIL import Image
from flask import render_template,url_for,flash,redirect,request,abort
from flaskblog import app,db,bcrypt
from flaskblog.forms import RegistrationForm,LoginForm,UpdateAccountForm,PostForm
from flaskblog.models import User,Post
from flask_login import login_user,current_user,logout_user,login_required

def save_post_picture(form_picture):
    random_hex = secrets.token_hex(8)
    _,f_ext = os.path.splitext(form_picture.filename)
    picture_fn = random_hex + f_ext
    picture_path = os.path.join(app.root_path,'static/post_pics',picture_fn)

    output_size = (125,125)
    i = Image.open(form_picture)
    i.thumbnail(output_size)
    i.save(picture_path)

    return picture_fn

@app.route("/post/new",methods=['GET','POST'])
@login_required
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        if form.post_picture.data:
            picture_file = save_post_picture(form.post_picture.data)
            # post.post_image_file = url_for('static',filename='post_pics/' + post.post_image_file)
            post = Post(title=form.title.data,content=form.content.data,author=current_user,post_image_file=form.post_picture.data)
            db.session.add(post)
            db.session.commit()
            post.post_image_file = url_for('static',filename='post_pics/' + post.post_image_file)
        else:
            post = Post(title=form.title.data,author=current_user)
            db.session.add(post)
            db.session.commit()
        flash('Your post has been created!','success')
        return redirect(url_for('home'))
    return render_template('create_post.html',title='New Post',form=form,legend='New Post')

这是我的forms.py文件

from flask_wtf import FlaskForm
from flask_wtf.file import FileField,FileAllowed
from flask_login import current_user
from wtforms import StringField,PasswordField,SubmitField,BooleanField,TextAreaField
from wtforms.validators import DataRequired,Length,Email,EqualTo,ValidationError
from flaskblog.models import User

class PostForm(FlaskForm):
    title = StringField('Title',validators=[DataRequired()])
    content = TextAreaField('Content',validators=[DataRequired()])
    post_picture = FileField('Add post image',validators=[FileAllowed(['jpg','png'])])
    submit = SubmitField('Post')

这是我的models.py文件

from datetime import datetime
from flaskblog import db,login_manager
from flask_login import UserMixin

class Post(db.Model):
    id = db.Column(db.Integer,primary_key=True)
    title = db.Column(db.String(100),nullable=False)
    date_posted = db.Column(db.DateTime,nullable=False,default=datetime.utcnow)
    content = db.Column(db.Text,nullable=False)
    user_id = db.Column(db.Integer,db.ForeignKey('user.id'),nullable=False)
    post_image_file = db.Column(db.String(20),nullable=True)

    def __repr__(self):
        return f"Post('{self.title}','{self.date_posted}','{self.post_image_file}')"

关于这些,当我用图像文件创建新帖子时,您认为我如何解决以下问题?

问题:

ew

注意:我可以将图像文件保存到static / post_pics目录

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...