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

来源:5-6 网易新闻数据新增

oldbang

2018-04-20

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)

//img.mukewang.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('提交')


写回答

1回答

NavCat

2018-04-20

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

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

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

0
1
oldbang
那我提交的时候就直接 title = form.title.data这样提交不创建对象 提交数据库里时候再创建对象new_obj可以吗 像这个项目里应该是提交图片的url到数据库吧
2018-04-20
共1条回复

Python操作三大主流数据库-MySQL+MongoDB+Redis

一次实战同时掌握Python操作MySQL,MongoDB,Redis 三大数据库使用技巧

2024 学习 · 376 问题

查看课程