Beginner programmer here. Trying to create a flask app which users can post into. I am looking to create a "home page" where users can see their posts rather than every users posts.
Here is my code:
routes.py
@app.route("/home")
def home():
posts = Post.query.all()
return render_template('home.hmtl', posts=posts)
models.py
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='default.jpg')
password = db.Column(db.String(60), nullable=False)
posts = db.relationship('Post', backref='author', lazy=True)
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)
date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
content = db.Column(db.Text, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
def __repr__(self):
return f"Post('{self.title}', '{self.date_posted}')"
Any help would be greatly appreciated!
First of all get, get the current user using session or jwt's . Then you can now query your database to get posts by the current user only.
You can use current_user case
@app.route("/home", methods=['GET', 'POST'])
def home():
posts = current_user.posts
return render_template('home.html', posts=posts)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.