Guest User

Untitled

a guest
Dec 24th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. import os
  2.  
  3. from flask import Flask, session
  4. from flask_session import Session
  5. from sqlalchemy import create_engine
  6. from sqlalchemy.orm import scoped_session, sessionmaker
  7. from flask import Flask, render_template, request, redirect
  8.  
  9. app = Flask(__name__)
  10.  
  11. # Check for environment variable
  12. if not os.getenv("DATABASE_URL"):
  13. raise RuntimeError("DATABASE_URL is not set")
  14.  
  15. # Configure session to use filesystem
  16.  
  17. app.secret_key = 'key'
  18. app.config["SESSION_PERMANENT"] = False
  19. app.config["SESSION_TYPE"] = "filesystem"
  20.  
  21.  
  22. # Set up database
  23. engine = create_engine(os.getenv("DATABASE_URL"))
  24. db = scoped_session(sessionmaker(bind=engine))
  25.  
  26. @app.route("/")
  27. def index():
  28.  
  29. return render_template('index.html', navbar=True)
  30.  
  31. @app.route("/register",methods=['GET','POST'])
  32. def register():
  33.  
  34. if request.method == 'POST':
  35.  
  36. username = request.form.get('username')
  37. password = request.form.get('password')
  38. cpassword = request.form.get('cpassword')
  39.  
  40. if not password == cpassword:
  41. return render_template('error.html', message='Passwords do not match')
  42.  
  43. avail = db.execute('SELECT username FROM userdetails WHERE username=:username',
  44. {'username': username}).fetchone()
  45.  
  46. if avail:
  47. return render_template('error.html', message='Username Already Exists')
  48.  
  49. db.execute('INSERT INTO userdetails(username, password) VALUES(:username, :password)',
  50. {'username': username, 'password': password})
  51. db.commit()
  52.  
  53. session["username"] = username
  54.  
  55. return redirect('/')
  56.  
  57. else:
  58. return render_template('register.html')
  59.  
  60. @app.route("/login", methods=['GET', 'POST'])
  61. def login():
  62.  
  63. if request.method == 'POST':
  64.  
  65. username = request.form.get('username')
  66. password = request.form.get('password')
  67.  
  68. user = db.execute('SELECT * FROM userdetails WHERE (username=:username AND password=:password)',
  69. {'username': username, 'password': password}).fetchone()
  70.  
  71. if user is None:
  72. return render_template('error.html', message='Entered credentials not valid!')
  73.  
  74. session["username"] = username
  75.  
  76. return redirect('books')
  77.  
  78. else:
  79. return render_template('login.html', navbar=False)
  80.  
  81.  
  82.  
  83. @app.route("/books", methods=['GET', 'POST'])
  84. def books():
  85.  
  86. isbn = request.form.get('isbn')
  87. title = request.form.get('title')
  88. author = request.form.get('author')
  89.  
  90. result = db.execute('SELECT * FROM books WHERE (isbn=:isbn AND title=:title AND author=:author)',
  91. {'isbn': isbn, 'title': title, 'author': author}).fetchall()
  92.  
  93.  
  94. return render_template('books.html')
  95.  
  96. @app.route("/result", methods=['GET', 'POST'])
  97. def results():
  98. if request.method == 'POST':
  99. result = request.form()
  100. return render_template("result.html",result = result)
  101.  
  102. <html>
  103. <head>
  104. <title>Books</title>
  105. </head>
  106. <form method="POST" action="/login">
  107. <input type="number" name="isbn" placeholder="isbn">
  108. <input type="text" name="title" placeholder="title">
  109. <input type="text" name="author" placeholder="author">
  110. <input type="submit" value="Submit">
  111. </form>
  112. </html>
  113.  
  114. <html>
  115. <head>
  116. </head>
  117. <body>
  118. {{result}}
  119. </body>
  120. </html>
Add Comment
Please, Sign In to add comment