Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1.1" 404 -
- /usr/local/lib/python2.7/site-packages/Werkzeug-0.11.11-py2.7.egg/werkzeug/files ystem.py:63: BrokenFilesystemWarning: Detected a misconfigured UNIX filesystem: Will use UTF-8 as filesystem encoding instead of 'ANSI_X3.4-1968'
- BrokenFilesystemWarning)
- 10.0.2.2 - - [15/Nov/2017 18:23:13] "POST /signin HTTP/1.1" 500 -
- Traceback (most recent call last):
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 2000, in __call__
- return self.wsgi_app(environ, start_response)
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 1991, in wsgi_app
- response = self.make_response(self.handle_exception(e))
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 1567, in handle_exception
- reraise(exc_type, exc_value, tb)
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 1988, in wsgi_app
- response = self.full_dispatch_request()
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 1641, in full_dispatch_request
- rv = self.handle_user_exception(e)
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 1544, in handle_user_exception
- reraise(exc_type, exc_value, tb)
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 1639, in full_dispatch_request
- rv = self.dispatch_request()
- File "/usr/local/lib/python2.7/site-packages/Flask-0.11.1-py2.7.egg/flask/app. py", line 1625, in dispatch_request
- return self.view_functions[rule.endpoint](**req.view_args)
- File "/home/tc/lynch_matthew_set09103_coursework2/src/index.py", line 136, in signin
- complete = validate(username, password)
- File "/home/tc/lynch_matthew_set09103_coursework2/src/index.py", line 39, in v alidate
- cur = db.execute("SELECT * FROM users")
- NameError: global name 'db' is not defined
- 10.0.2.2 - - [15/Nov/2017 18:23:14] "GET /signin?__debugger__=yes&cmd=resource&f =style.css HTTP/1.1" 200 -
- 10.0.2.2 - - [15/Nov/2017 18:23:14] "GET /signin?__debugger__=yes&cmd=resource&f =jquery.js HTTP/1.1" 200 -
- 10.0.2.2 - - [15/Nov/2017 18:23:14] "GET /signin?__debugger__=yes&cmd=resource&f =debugger.js HTTP/1.1" 200 -
- 10.0.2.2 - - [15/Nov/2017 18:23:15] "GET /signin?__debugger__=yes&cmd=resource&f =ubuntu.ttf HTTP/1.1" 200 -
- 10.0.2.2 - - [15/Nov/2017 18:23:15] "GET /signin?__debugger__=yes&cmd=resource&f =console.png HTTP/1.1" 200 -
- 10.0.2.2 - - [15/Nov/2017 18:23:15] "GET /signin?__debugger__=yes&cmd=resource&f =console.png HTTP/1.1" 200 -
- import sqlite3
- import os
- import sqlite3 as sql
- from flask import Flask, g, render_template, url_for, request, redirect, session, escape, flash, abort
- from hashlib import md5
- from functools import wraps
- app = Flask(__name__)
- app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
- db_location = 'var/wish_db.db'
- def required(f):
- @wraps(f)
- def decorator(*args, **kwargs):
- status = session.get('username', False)
- if not status:
- return redirect(url_for('signin'))
- return f(*args, **kwargs)
- return decorator
- def get_db():
- db = getattr(g, 'db', None)
- if db is None:
- db = sqlite3.connect(db_location)
- g.db = db
- return db
- def check_password(hashed_password, user_password):
- return hashed_password == hashlib.md5(user_password.encode()).hexdigest()
- print hashed_password
- def validate(username, password):
- con = sqlite3.connect(db_location)
- complete = False
- with con:
- cur = con.cursor()
- cur = db.execute("SELECT * FROM users")
- rows = cur.fetchall()
- for row in rows:
- userdb = row[0]
- passdb = row[2]
- if userdb == username:
- complete = check_password(passdb, password)
- return complete
- @app.teardown_appcontext
- def close_db_connection(exception):
- db = getattr(g, 'db', None)
- if db is not None:
- db.close()
- def init_db():
- with app.app_context():
- db = get_db()
- with app.open_resource('var/schema.sql', mode='r') as f:
- db.cursor().executescript(f.read())
- db.commit()
- #The Sign Up Route
- @app.route('/signup', methods=['GET','POST'])
- def signup():
- error = None
- if request.method == 'POST':
- db = get_db()
- cur = db.execute('INSERT INTO users (username,email,password) VALUES(?,?,?)',
- [request.form['username'], request.form['email'], request.form['password']])
- db.commit()
- return redirect(url_for('dashboard'))
- else:
- error = "Somthing Went Wrong. Try Again!"
- return render_template('signup.html', title='Sign Up')
- return render_template('signin.html', title='Sign Up', error=error)
- #The Homepage Route
- @app.route("/")
- def home():
- return render_template('home.html', title='Home')
- #The Dashboard Route
- @app.route('/dashboard')
- def dashboard():
- #db = get_db()
- #if 'username' in session:
- # sess = escape(session['username']).capitalize()
- # return render_template('dashboard.html', session_user=sess, title='Dashboard')
- #return redirect(url_for('dashboard'))
- db = get_db()
- cur = db.execute('select title, quantity, price, details from wishlists order by wish desc')
- wishlists = [dict(title=row[0], quantity=row[1], price=row[2], details=row[3]) for row in cur.fetchall()]
- db.close()
- return render_template('dashboard.html', wishlists=wishlists)
- #The Adds a Dream Itam to the List
- @app.route('/add', methods=['GET','POST'])
- def add():
- if not session.get('username'):
- abort(401)
- db = get_db()
- db.execute('INSERT INTO wishlists (title,quantity,price,details) VALUES(?,?,?,?)',
- [request.form['title'], request.form['quantity'], request.form['price'], request.form['details']])
- db.commit()
- flash('Your wish has been added to your list')
- return redirect(url_for('dashboard'))
- #The Removes a Dream Itam to the List
- @app.route('/remove', methods=['GET'])
- def remove():
- delete = request.args.get('wishid', '')
- print delete
- db = get_db()
- db.execute('DELETE FROM wishlists WHERE title=?', [delete])
- db.commit()
- cur = db.execute("select * from wishlists")
- row = cur.fetchall()
- flash('Your wish has been removed from your list')
- return render_template("dashboard.html",row=row)
- #The About Route
- @app.route('/about', methods=['GET', 'POST'])
- def about():
- return render_template('about.html', songs=songs, title='About')
- #The Signs In Route
- @app.route('/signin', methods=['GET','POST'])
- def signin():
- db = get_db()
- if 'username' in session:
- return redirect(url_for('dashboard'))
- error = None
- if request.method == 'POST':
- username = request.form['username']
- password = request.form['password']
- complete = validate(username, password)
- if complete == False:
- error = 'Incorrect Username or Password. Please try again.'
- else:
- return redirect(url_for('dashboard'))
- if request.form['username'] != 'admin' or request.form['password'] != 'adminAWT':
- error = 'Incorrect Username or Password, Please try again.'
- else:
- session['username'] = True
- flash('Welcome! You Can Now View Your WounderList')
- return redirect(url_for('dashboard'))
- return render_template('signin.html', error=error, title='Sign In')
- #Signs Out The User from Their Account
- @app.route('/signout')
- def signout():
- session.pop('username', None)
- flash('You Have Successful Signed Out')
- return redirect(url_for('home'))
- #Error Page
- @app.errorhandler(404)
- def page_not_found(error):
- return "We couldn't answer your request. Please try again later or this page might not exist. </br> Please, check your URL", 404
- if __name__ == "__main__":
- app.run(host='0.0.0.0', debug=True)
- DROP TABLE if EXISTS users;
- DROP TABLE if EXISTS wishlists;
- CREATE TABLE users (
- id integer primary key autoincrement,
- username text not null,
- email text not null,
- password text not null
- );
- CREATE TABLE wishlists (
- wish integer primary key autoincrement,
- title text not null,
- quantity number not null,
- price text not null,
- details text not null
- );
- from index import init_db
- init_db()
Add Comment
Please, Sign In to add comment