Advertisement
Guest User

Untitled

a guest
Dec 4th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. from flask import Flask, render_template, flash, request, url_for, redirect, session
  2. from wtforms import Form, BooleanField, TextField, PasswordField, validators
  3. from passlib.hash import sha256_crypt
  4. from MySQLdb import escape_string as thwart
  5. import gc
  6.  
  7.  
  8. class RegistrationForm(Form):
  9. username = TextField('Username', [validators.Length(min=4, max=20)])
  10. email = TextField('Email Address', [validators.Length(min=6, max=50)])
  11. password = PasswordField('New Password', [
  12. validators.Required(),
  13. validators.EqualTo('confirm', message='Passwords must match')
  14. ])
  15. confirm = PasswordField('Repeat Password')
  16.  
  17.  
  18. @app.route('/register/', methods=["GET", "POST"])
  19. def register_page():
  20. try:
  21. form = RegistrationForm(request.form)
  22.  
  23. if request.method == "POST" and form.validate():
  24. username = form.username.data
  25. email = form.email.data
  26. password = sha256_crypt.encrypt((str(form.password.data)))
  27. c, conn = connection()
  28.  
  29. x = c.execute("SELECT * FROM users WHERE username = (%s)",
  30. (thwart(username)))
  31.  
  32. if int(x) > 0:
  33. flash("That username is already taken, please choose another")
  34. return render_template('register.html', form=form)
  35.  
  36. else:
  37. c.execute("INSERT INTO users (username, password, email, tracking) VALUES (%s, %s, %s, %s)",
  38. (thwart(username), thwart(password), thwart(email),
  39. thwart("/introduction-to-python-programming/")))
  40.  
  41. conn.commit()
  42. flash("Thanks for registering!")
  43. c.close()
  44. conn.close()
  45. gc.collect()
  46.  
  47. session['logged_in'] = True
  48. session['username'] = username
  49.  
  50. return redirect(url_for('dashboard'))
  51.  
  52. return render_template("register.html", form=form)
  53.  
  54. except Exception as e:
  55. return (str(e))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement