Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sqlalchemy.exc import IntegrityError
- from flask import flash, redirect, url_for, render_template
- from flask_login import login_user
- from . import blueprint as auth, User, db
- from .forms import RegisterForm
- @auth.route('/register', methods=['GET', 'POST'])
- def register():
- form = RegisterForm()
- if form.validate_on_submit():
- try:
- user = User(name=form.username.data,
- password=form.password.data)
- db.session.add(user)
- db.session.commit()
- login_user(user)
- return redirect(url_for('index'))
- except IntegrityError:
- flash('User "{}" already exists.'.format(form.username.data),
- 'auth')
- return redirect(url_for('auth.register'))
- return render_template('register.html', form=form)
- from flask_login import UserMixin
- from sqlalchemy.ext.hybrid import hybrid_property
- from . import db, bcrypt
- class User(db.Model, UserMixin):
- __tablename__ = 'user'
- id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(20), unique=True, nullable=False)
- _password = db.Column(db.String, nullable=False)
- @hybrid_property
- def password(self):
- return self._password
- @password.setter
- def _set_password(self, pwd_text):
- self._password = (bcrypt.generate_password_hash(pwd_text)
- .decode('utf-8'))
- def password_is(self, pwd_text):
- return bcrypt.check_password_hash(self._password, pwd_text)
- db=# select * from "user";
- id | name | _password
- ----+------+-----------
- 1 | Bob | bob_pwd_hash
- 3 | Joe | joe_pwd_hash
- (2 rows)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement