@alexinkasa

Flask Загрузка фото в базу данных и вывод?

Хочу реализовать простую форму где:

Название недвижимости
Описание
фотография
Цена
Вот что имею

import flask
import flask_sqlalchemy
import flask_migrate
from flask import render_template, request
app = flask.Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///ada.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = flask_sqlalchemy.SQLAlchemy(app)
migrate = flask_migrate.Migrate(app, db)


class User(db.Model):
    __tablename__ = "estate"

    id = db.Column(db.Integer, primary_key=True)
    name_estate = db.Column(db.String, nullable=False)
    description = db.Column(db.String, nullable=False)
    price = db.Column(db.Integer, nullable=False)
    img = ???








@app.route('/sendq')
def about():
    form = """
         <form action="/sendm/" method="post">
          <input type="text" name="estate_name" placeholder="имя">
        <input type="text" name="description" placeholder="Описание">
        <input type="text" name="price" placeholder="price">

      #  <input type="file" name="photo" >

           <input type="submit">
         </form>
       """
    return form


@app.route('/sendm/', methods=['POST'])
def sends():
    db.create_all()
    name_estate = request.form.get("name_estate ")
    description = request.form.get("description ")
    price= request.form.get("price")
  # photo= request.form.get("photo")
    db.session.add_all([estate(name_estate =name_estate , description =description , price=price)])
    db.session.commit()




if __name__=="__main__":
    app.run()


Как реализовать загрузку файла в бд, для последующего отображения? что-бы вывести к примеру обьявление
  • Вопрос задан
  • 424 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
А) Файл переименовать уникальным именем (хэш?), поместить в предназначенный для этих целей каталог. Оригинальное имя файла и его имя для хранения поместить в базу.
Б) Использовать поле типа BLOB (в терминах sqlalchemy - Binary).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы