【发布时间】:2020-07-28 20:23:36
【问题描述】:
这是我的桌子。我正在使用 SQLite 数据库。
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(120), unique=True, nullable=False)
username = db.Column(db.String(30), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
date_joined = db.Column(db.DateTime, nullable=False,
default=datetime.utcnow)
posts = db.relationship('Post', backref='author',
lazy=True, passive_deletes=True)
def __repr__(self):
return f"User('{self.email}', '{self.username}', '{self.date_joined}')"
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
body = db.Column(db.Text, nullable=False)
link = db.Column(db.String(300))
date_posted = db.Column(db.DateTime, nullable=False,
default=datetime.utcnow)
user_id = db.Column(db.Integer, db.ForeignKey(
'user.id', ondelete='CASCADE'), nullable=False)
def __repr__(self):
return f"Post('{self.title}', '{self.body}', '{self.link}', '{self.date_posted}')"
这是“USER”路由的删除,它会删除用户但不会删除用户创建的帖子。
@login_required
@app.route('/delete/account', methods=['GET', 'POST'])
def delete_account():
if current_user.is_authenticated:
db.session.query(User).filter_by(id=current_user.id).delete()
db.session.commit()
flash('Your account has been deleted!', 'success')
return redirect(url_for('home'))
return render_template('settings.html', title='Account Settings')
【问题讨论】:
标签: python database sqlite flask flask-sqlalchemy