SQLALchemy 数据库两个相同的条目
SQLALchemy database two identical entries
我创建了一个电影数据库并在该数据库中添加了一个新条目。
起初 运行,代码在数据库中创建了两个相同的条目,我不知道为什么。
代码:
from flask import Flask, render_template, redirect, url_for, request
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SECRET_KEY'] = '8BYkEfBA6O6donzWlSihBXox7C0sKR6b'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///day64.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
Bootstrap(app)
db = SQLAlchemy(app)
class Movie(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(250), nullable=False)
year = db.Column(db.Integer, nullable=False)
description = db.Column(db.String(250), nullable=False)
rating = db.Column(db.Float, nullable=False)
ranking = db.Column(db.Integer, nullable=False)
review = db.Column(db.String(250), nullable=False)
img_url = db.Column(db.String(250), nullable=False)
db.create_all()
@app.route("/")
def home():
return render_template("index.html")
if __name__ == '__main__':
new_movie = Movie(
title="Phone Booth",
year=2002,
description="Publicist Stuart Shepard.",
rating=7.3,
ranking=10,
review="My favourite.",
img_url="https://image.tmdb.org/t/p/w500/tjrX2oWRCM3Tvarz38zlZM7Uc10.jpg"
)
db.session.add(new_movie)
db.session.commit()
app.run(debug=True)
数据库条目:
Movie table
看起来这是因为 flask 在调试模式下启动的方式。如果您将 use_reloader=False
添加到 app.run
可以解决您的问题,但您将无法实时重新加载。
app.run(debug=True, use_reloader=False)
最好重构它,将电影创作移出 init。
其他栈溢出相关question/answerhere
我创建了一个电影数据库并在该数据库中添加了一个新条目。 起初 运行,代码在数据库中创建了两个相同的条目,我不知道为什么。
代码:
from flask import Flask, render_template, redirect, url_for, request
from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SECRET_KEY'] = '8BYkEfBA6O6donzWlSihBXox7C0sKR6b'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///day64.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
Bootstrap(app)
db = SQLAlchemy(app)
class Movie(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(250), nullable=False)
year = db.Column(db.Integer, nullable=False)
description = db.Column(db.String(250), nullable=False)
rating = db.Column(db.Float, nullable=False)
ranking = db.Column(db.Integer, nullable=False)
review = db.Column(db.String(250), nullable=False)
img_url = db.Column(db.String(250), nullable=False)
db.create_all()
@app.route("/")
def home():
return render_template("index.html")
if __name__ == '__main__':
new_movie = Movie(
title="Phone Booth",
year=2002,
description="Publicist Stuart Shepard.",
rating=7.3,
ranking=10,
review="My favourite.",
img_url="https://image.tmdb.org/t/p/w500/tjrX2oWRCM3Tvarz38zlZM7Uc10.jpg"
)
db.session.add(new_movie)
db.session.commit()
app.run(debug=True)
数据库条目: Movie table
看起来这是因为 flask 在调试模式下启动的方式。如果您将 use_reloader=False
添加到 app.run
可以解决您的问题,但您将无法实时重新加载。
app.run(debug=True, use_reloader=False)
最好重构它,将电影创作移出 init。
其他栈溢出相关question/answerhere