Как добавить изображения в базу данных, используя SQL Alchemy? - PullRequest
0 голосов
/ 03 мая 2020

Итак, я пытался создать веб-сайт, следуя учебному пособию Кори Шафера . Сейчас я нахожусь в точке своего проекта, где я хочу, чтобы у меня была возможность добавлять изображения глав моих вебтонов вместо постов, как в учебном пособии.

Проблема, с которой я столкнулся, заключается в том, что я попытался жестко кодировать изображение файла, и в результате этого происходит: enter image description here

Но я хочу иметь возможность добавить в соответствующую картинку для каждой главы.

Сначала я создаю модель глав, используя Flask для их хранения: models.py

class Chapters(db.Model):
     id = db.Column(db.Integer,primary_key=True)
     title= db.Column(db.String(100), primary_key=True, nullable=False)
     date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
     image_file = db.Column(db.String(20),nullable=False)

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

Затем в моем я отображаю это в моем routes.py:

Я использую список для отображения глав и даты публикации

chapters = [
    {
    'author': 'Benson Jin',
    'title': 'Chapter 1',
    'date_posted': 'April 20,2018'

    },

    {
    'author': 'Benson Jin',
    'title': 'Chapter 2',
    'date_posted': 'April 21,2018'

    }

]

Моя домашняя страница затем отображается через

@app.route('/')
@app.route('/home')
def home():
    return render_template('home.html',chapters=chapters)

home.html:

{% extends "layout.html" %}
{% block content %}
{% for chapters in chapters %}
<article class="media content-section">
  <div class="media-body">
    <div class="article-metadata">
      <a class="mr-2" href="#">{{ chapters.author }}</a>
      <small class="text-muted">{{ chapters.date_posted }}</small>
    </div>
    <h2><a class="article-title" href="#">{{ chapters.title }}</a></h2>
    <img   src="/static/chapter_images/chapter1.png" width="500" height="300"  >
  </div>
</article>
{% endfor  %}
{% endblock content %}

Как вы можете видеть из моего html, он использует a для l oop, чтобы распечатать информацию о главах (дата, название, имя). Однако, поскольку я жестко закодировал изображение в html, это приводит к тому, что изображение печатается дважды Будет ли мой подход хранить мои изображения в базе данных или что-то еще? Пожалуйста, дайте мне знать, если вам нужно больше деталей. Я впервые строю веб-сайт, так что да ..: (

1 Ответ

0 голосов
/ 04 мая 2020

Измените путь к изображению следующим образом.

<img src="/static/chapter_images/{{ chapters.image_file }}" width="500" height="300">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...