Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import MySQLdb
- from flask import Flask
- from flask import render_template, request, session, redirect, escape, url_for
- import hashlib
- db = MySQLdb.connect(
- host = 'localhost',
- user = 'root',
- passwd = '',
- db = 'logowanie',)
- cur = db.cursor()
- app = Flask(__name__)
- @app.route('/', methods=['GET', 'POST'])
- def index():
- if 'username' in session:
- return 'Logged as {}.'.format(escape(session['username']))
- return 'You are not logged in'
- @app.route('/login', methods=['GET', 'POST'])
- def login():
- error = None
- class ServerError(Exception):pass
- if request.method == 'POST':
- if request.form["action"] == "Log in":
- try:
- username_form = request.form['username']
- cur.execute('SELECT COUNT(1) FROM users WHERE nickname=%s', (username_form,))
- if not cur.fetchone()[0]:
- raise ServerError('Bledna nazwa uzytkownika')
- password_form = request.form['password']
- cur.execute('SELECT password FROM users WHERE nickname=%s', (username_form,))
- for row in cur.fetchall():
- if hashlib.md5(password_form.encode('utf-8')).hexdigest() == row[0]:
- session['username'] = request.form['username']
- return redirect(url_for('index'))
- raise ServerError('Bledne haslo')
- except ServerError as e:
- error=str(e)
- return render_template('login.html', error=error)
- def valid_login(name, passw):
- return name == 'siemka' and passw == 'narka'
- @app.route('/register', methods=['GET', 'POST'])
- def register():
- error_register = None
- success_register = None
- class ServerError(Exception):pass
- if request.method == 'POST':
- if request.form["action"] == "Register":
- _username = request.form['username']
- _password = request.form['password']
- _email = request.form['email']
- _hashpassword = hashlib.md5(_password.encode('utf-8')).hexdigest()
- try:
- cur.execute('SELECT COUNT(1) FROM users WHERE nickname=%s', (_username,))
- if cur.fetchone()[0]:
- raise ServerError('Nazwa uzytkownika zajeta')
- else:
- cur.execute('INSERT INTO users (id,nickname,password,email) VALUES (NULL,%s,%s,%s)', (_username, _hashpassword, _email))
- db.commit()
- success_register = 'Zarejestrowales sie!'
- except ServerError as e:
- error_register = str(e)
- return render_template('register.html',error_register=error_register, success_register=success_register)
- @app.route('/logout')
- def logout():
- session.pop('username', None)
- return redirect(url_for('index'))
- if __name__ == '__main__':
- app.secret_key = 't4jn3Has3lko'
- app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement