Мой файл Filefield в базе данных правильно и успешно сохранить в каталоге, когда я отображаю этот файл, он не работает - PullRequest
0 голосов
/ 04 апреля 2020
My form:
class BlogForm(FlaskForm):
    title = StringField('title', validators=[DataRequired('Please fill the title field')])
    author = StringField('author', validators=[DataRequired('Please fill the author field')])
    description = TextAreaField('description', validators=[DataRequired('Please fill the description field')])
    image = FileField('image', validators=[FileAllowed(['jpg', 'png', 'jpeg', 'gif'])])

My model:


class Blog(db.Model):
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True, nullable=True)
    title = db.Column(db.String(50), nullable=False)
    author = db.Column(db.String(128), nullable=False)
    description = db.Column(db.String(200), nullable=False)
    image = db.Column(db.String(), nullable=True)
    date = db.Column(db.Date(), nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))

My function:


@app.route('/add_blog', methods=['GET', 'POST'])
@csrf.exempt
def add_blog():
    if request.method == 'POST' and session['user_id']:
        form = BlogForm()
        if form.validate_on_submit() and request.files:
            title = request.form['title']
            author = request.form['author']
            description = request.form['description']
            image = request.files['image']
            filename = secure_filename(image.filename)
            image.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            url = image.filename
            user_id = session['user_id']
            blog = Blog(date= datetime.now(), title=title, author=author, description=description, image=url, user_id=user_id)
            db.session.add(blog)
            db.session.commit()
            flash("Blog added successfully ")
            return redirect('/blog')
    else:
        form = BlogForm()
    return render_template('add_blog.html', title='Add blog', form=form)

My html:
{% extends 'layout.html' %}

{% block body %}
<h1>Dashboard <small> Welcome, {{ session['user'] }}!
<a class="btn btn-success pull-right" href="/add_blog">Add Blog</a>
</small>
</h1>

<ul class="list-group">
  {% for blogs in blog %}
  <a href="/delete_blog/{{blogs.id}}" class="btn btn-danger pull-right">Delete</a>
  <a href="/edit/{{blogs.id}}" class="btn btn-success pull-right">Edit</a>

<div>
        <img class="img-circle" src= "{{ blogs.image.url }}" height="200" width="200">
    <style>
        .img-circle {
            border-radius: 50%;
        }
    </style>
  <h1>Title: {{blogs.title}}

  </h1>
</div>

<div>
<small>Author: Written by {{blogs.author}} on {{blogs.date}} 
</small>
</div>
<hr>

<div>
Description: 
<h5>{{blogs.description | safe}}</h5>
</div>
</ul>
{% endfor %}

{% endblock %} 

Not display image. Please check my code. IMage successfully saved in database and directory. Why it is not displaying.Please help. When i inspect in browser error: Unknown source.

Не отображать изображение. Пожалуйста, проверьте мой код. IMage успешно сохранен в базе данных и каталоге. Почему это не отображается. Пожалуйста, помогите. Когда я проверяю в браузере ошибку: неизвестный источник. Не отображать изображение. Пожалуйста, проверьте мой код. IMage успешно сохранен в базе данных и каталоге. Почему это не отображается. Пожалуйста, помогите. Когда я проверяю в браузере ошибку: неизвестный источник.

...