Guest User

Untitled

a guest
Oct 14th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. from flask import render_template, url_for, flash, redirect
  2. from flaskblog.forms import RegistrationForm, LoginForm
  3. from flaskblog.models import User, Post
  4. from flaskblog import app, db, bcrypt
  5. from flask_login import login_user
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12. @app.route("/")
  13. @app.route("/home")
  14. def home():
  15. return render_template('home.html', posts=posts)
  16.  
  17.  
  18. @app.route("/about")
  19. def about():
  20. return render_template('about.html', title='About')
  21.  
  22.  
  23. @app.route("/register", methods=['GET', 'POST'])
  24. def register():
  25. form = RegistrationForm()
  26. if form.validate_on_submit():
  27. hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
  28. user = User(username =form.username.data, email=form.email.data, password=hashed_password)
  29. db.session.add(user)
  30. db.session.commit()
  31. flash('Your account has been created! you are now able to log in', 'success')
  32. return redirect(url_for('login'))
  33. return render_template('register.html', title='Register', form=form)
  34.  
  35.  
  36. @app.route("/login", methods=['GET', 'POST'])
  37. def login():
  38. form = LoginForm()
  39. if form.validate_on_submit():
  40. user = User.query.filter_by(email=form.email.data).first()
  41. if user and bcrypt.check_password_hash(user.password, form.password.data):
  42. login_user(user, remember = form.remember.data)
  43. return redirect(url_for('home'))
  44. else:
  45. flash('Login Unsuccessful. Please check email and password', 'danger')
  46. return render_template('login.html', title='Login', form=form)
  47.  
  48. from datetime import datetime
  49. from flaskblog import db, login_manager
  50. from flask_login import UserMixin
  51.  
  52.  
  53. @login_manager.user_loader
  54. def load_user(user_id):
  55. return User.query.get(int(user_id))
  56.  
  57.  
  58. class User(db.Model, UserMixin):
  59. id = db.Column(db.Integer, primary_key=True)
  60. username = db.Column(db.String(20), unique=True, nullable=False)
  61. email = db.Column(db.String(120), unique=True, nullable=False)
  62. image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
  63. password = db.Column(db.String(60), nullable=False)
  64. posts = db.relationship('Post', backref='author', lazy=True)
  65.  
  66. def __repr__(self):
  67. return f"User('{self.username}', '{self.email}', '{self.image_file}')"
  68.  
  69.  
  70. class Post(db.Model):
  71. id = db.Column(db.Integer, primary_key=True)
  72. title = db.Column(db.String(100), nullable=False)
  73. date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
  74. content = db.Column(db.Text, nullable=False)
  75. user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
  76.  
  77. def __repr__(self):
  78. return f"Post('{self.title}', '{self.date_posted}')"
Add Comment
Please, Sign In to add comment