Я создал следующую таблицу в SQLite 3, используя SQLAlchemy в своей программе на Python.
класс Movie(db.Model):
Код: Выделить всё
id: Mapped[int] = mapped_column(Integer, primary_key=True)
title: Mapped[str] = mapped_column(String(250), unique=True, nullable=False)
year: Mapped[int] = mapped_column(Integer, nullable=False)
description: Mapped[str] = mapped_column(String(250), nullable=False)
rating: Mapped[float] = mapped_column(Float, nullable=True)
ranking: Mapped[int] = mapped_column(Integer, nullable=True, autoincrement=True)
review: Mapped[str] = mapped_column(String(250), nullable=True)
img_url: Mapped[str] = mapped_column(String(250), nullable=False)
@app.route("/find")
def find_movie():
Код: Выделить всё
movie_api_id = request.args.get("id")
if movie_api_id:
movie_api_url = f"{MOVIE_DB_INFO_URL}/{movie_api_id}"
response = requests.get(movie_api_url, params={"api_key": MOVIES_API_KEYS, "language": "en
US"})
data = response.json()
new_movie = Movie(
title=data["title"],
year=data["release_date"].split("-")[0],
img_url=f"https://image.tmdb.org/t/p/w500{data['poster_path']}",
description=data["overview"]
)
db.session.add(new_movie)
db.session.commit()
return redirect(url_for("rate_movie", id=new_movie.id))
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) Ошибка ограничения NOT NULL: Movie.rating
[SQL: INSERT INTO фильм (название, год, описание, рейтинг, рейтинг, обзор, img_url) ЗНАЧЕНИЯ (?, ?, ?, ?, ?, ?, ?)]
[ параметры: («Гладиатор», «2000», «В 180 году смерть императора Марка Аврелия повергает Римскую империю в хаос. Максимус — один из самых способных и доверенных лиц римской армии... (168 символов сокращено) . .. е торговцы. Переименованный в испанца и вынужденный стать гладиатором, Максимус должен сражаться насмерть с другими людьми ради развлечения платящей публики.", Нет, Нет, Нет, 'https://image.tmdb.org/t /p/w500/ty8TGRuvJLPUmAR1H1nRIsgwvim.jpg')]
(Справочная информация об этой ошибке: https://sqlalche.me/e/20/gkpj)
Подробнее здесь: https://stackoverflow.com/questions/782 ... raint-fail