Spaces:
Runtime error
Runtime error
| from project import db, login_manager | |
| from datetime import datetime | |
| from itsdangerous import URLSafeTimedSerializer | |
| from flask_login import UserMixin | |
| from flask import current_app | |
| def load_user(user_id): | |
| return db.session.get(User, int(user_id)) | |
| class User(db.Model, UserMixin): | |
| id = db.Column(db.Integer, primary_key=True) | |
| username = db.Column(db.String(20), unique=True, nullable=False) | |
| email = db.Column(db.String(120), unique=True, nullable=False) | |
| image_file = db.Column(db.String(20), nullable=False, default='ae33c584ff50ba15.png') | |
| password = db.Column(db.String(60), nullable=False) | |
| posts = db.relationship('Post', backref='author', lazy=True) | |
| def get_reset_token(self): | |
| s = URLSafeTimedSerializer(current_app.config['SECRET_KEY']) | |
| return s.dumps({'user_id': self.id}, salt='password-reset') | |
| def verify_reset_token(token, expires_sec=1800): | |
| s = URLSafeTimedSerializer(current_app.config['SECRET_KEY']) | |
| try: | |
| data = s.loads( | |
| token, | |
| salt='password-reset', | |
| max_age=expires_sec | |
| ) | |
| except Exception: | |
| return None | |
| return db.session.get(User, data['user_id']) | |
| def __repr__(self): | |
| return f"User('{self.username}', '{self.email}', '{self.image_file}')" | |
| class Post(db.Model): | |
| id = db.Column(db.Integer, primary_key=True) | |
| title = db.Column(db.String(100), nullable=False) | |
| content = db.Column(db.String(500), nullable=False) | |
| date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) | |
| user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) | |
| def __repr__(self): | |
| return f"Post('{self.title}', '{self.date_posted}')" | |