Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.97 KB | None | 0 0
  1. import os
  2.  
  3. from flask import Flask, session, flash, redirect, render_template, request, url_for
  4. from flask_session import Session
  5. from sqlalchemy import create_engine
  6. from sqlalchemy.orm import scoped_session, sessionmaker
  7. from werkzeug.exceptions import default_exceptions
  8. from werkzeug.security import check_password_hash, generate_password_hash
  9.  
  10. app = Flask(__name__)
  11.  
  12. # Check for environment variable
  13. if not os.getenv("DATABASE_URL"):
  14.     raise RuntimeError("DATABASE_URL is not set")
  15.  
  16. # Configure session to use filesystem
  17. app.config["SESSION_PERMANENT"] = False
  18. app.config["SESSION_TYPE"] = "filesystem"
  19. Session(app)
  20.  
  21. # Set up database
  22. engine = create_engine(os.getenv("DATABASE_URL"))
  23. db = scoped_session(sessionmaker(bind=engine))
  24.  
  25. #Configure goodreads api
  26.  
  27.  
  28. @app.route("/")
  29. def index():
  30.     return render_template("index.html")
  31.  
  32. @app.route("/register", methods==["GET", "POST"])
  33. def register():
  34.     """Register User"""
  35.  
  36.     if request.method=="POST":
  37.  
  38.         #hygiene check
  39.         if not request.form.get("username"):
  40.             flash("Please provide username")
  41.         elif not request.form.get("password"):
  42.             flash("Please provide password")
  43.         elif not request.form.get("password")==request.form.get("confirmation"):
  44.             flash("Passwords don't match")
  45.  
  46.         #hash password and create user in db
  47.         hash = generate_password_hash(request.form.get("password"))
  48.         new_user_id = db.execute("INSERT INTO users (username,hash) VALUES(:username, :hash)",
  49.         username=request.form.get("username"), hash=hash)
  50.  
  51.         #must be unique username
  52.         if not new_user_id:
  53.             flash("Username not available")
  54.  
  55.         # Remember which user has logged in
  56.         session["user_id"] = new_user_id
  57.  
  58.         # Display a flash message
  59.         flash("Registered!")
  60.  
  61.         # Redirect user to home page
  62.         return redirect(url_for("index"))
  63.  
  64.     else:
  65.         return render_template("register.html")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement