请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

图片用提交文件的方式上传那怎样提交到数据库里呢

def add():
    form=NewsForm()
    if form.validate_on_submit():
        new_obj=News(
            title = form.title.data,
            content = form.content.data,
            types=form.types.data,
            img=form.img.data
        )
        db.session.add(new_obj)
        db.session.commit()
        return redirect(url_for('admin'))
    return render_template('admin/add.html',form=form)

是再到new_obj里再添加一个img_name或者img_url吗?

或者再写个对象new_db 里面保留new_obj前面几项仅对img修改只把图片的名字或者url存进数据库

下面就提交db.session.add(new_db)

//img1.sycdn.imooc.com//szimg/5ad966700001909b18490618.jpg

页面是这样但是点提交没有任何反应 是否要要用flask_uploads实现



form:

class NewsForm(FlaskForm):
    title = StringField(label='新闻标题', validators=[DataRequired('请输入标题')],
    description="请输入标题",
    render_kw={"required":"required","class":"form-control"})
    content = TextAreaField(label='新闻内容',validators=[DataRequired('请输入标题')],
    description='请输入内容',
    render_kw={"required":"required","class":"form-control"})
    types=SelectField('新闻类型',
    choices=[('推荐', '推荐'), ('百家', '百家'), ('本地', '本地'), ('图片', '图片')],
    render_kw={'class': 'form-control'})
    img=FileField(label='新闻图片',validators=[FileAllowed(['jpg','png'],'只能上传图片'),
    FileRequired('文件未选择')])

    submit = SubmitField('提交')


正在回答 回答被采纳积分+3

1回答

NavCat 2018-04-20 14:01:46

贴一下你的form 代码,也可以参考这个:

https://flask-wtf.readthedocs.io/en/stable/form.html#module-flask_wtf.file

上传文件我们只会存储文件的存储路径到数据库,不会直接将文件存到数据库的,其他的像上传文档、上传视频也是一样的

0 回复 有任何疑惑可以回复我~
  • 提问者 oldbang #1
    那我提交的时候就直接 title = form.title.data这样提交不创建对象
    提交数据库里时候再创建对象new_obj可以吗
    像这个项目里应该是提交图片的url到数据库吧
    回复 有任何疑惑可以回复我~ 2018-04-20 14:47:45
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信