Advertisement
Guest User

Untitled

a guest
Jul 20th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. from sqlalchemy.exc import IntegrityError
  2. from flask import flash, redirect, url_for, render_template
  3. from flask_login import login_user
  4.  
  5. from . import blueprint as auth, User, db
  6. from .forms import RegisterForm
  7.  
  8.  
  9. @auth.route('/register', methods=['GET', 'POST'])
  10. def register():
  11. form = RegisterForm()
  12. if form.validate_on_submit():
  13. try:
  14. user = User(name=form.username.data,
  15. password=form.password.data)
  16. db.session.add(user)
  17. db.session.commit()
  18. login_user(user)
  19. return redirect(url_for('index'))
  20. except IntegrityError:
  21. flash('User "{}" already exists.'.format(form.username.data),
  22. 'auth')
  23. return redirect(url_for('auth.register'))
  24. return render_template('register.html', form=form)
  25.  
  26. from flask_login import UserMixin
  27. from sqlalchemy.ext.hybrid import hybrid_property
  28.  
  29. from . import db, bcrypt
  30.  
  31.  
  32. class User(db.Model, UserMixin):
  33. __tablename__ = 'user'
  34.  
  35. id = db.Column(db.Integer, primary_key=True)
  36. name = db.Column(db.String(20), unique=True, nullable=False)
  37. _password = db.Column(db.String, nullable=False)
  38.  
  39. @hybrid_property
  40. def password(self):
  41. return self._password
  42.  
  43. @password.setter
  44. def _set_password(self, pwd_text):
  45. self._password = (bcrypt.generate_password_hash(pwd_text)
  46. .decode('utf-8'))
  47.  
  48. def password_is(self, pwd_text):
  49. return bcrypt.check_password_hash(self._password, pwd_text)
  50.  
  51. db=# select * from "user";
  52. id | name | _password
  53. ----+------+-----------
  54. 1 | Bob | bob_pwd_hash
  55. 3 | Joe | joe_pwd_hash
  56. (2 rows)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement