Advertisement
sriyanto

mainsignupsignin

Feb 15th, 2024
1,941
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.07 KB | None | 0 0
  1. # app.py
  2. from flask import Flask, render_template, request, redirect, url_for, session
  3. import sqlite3
  4.  
  5. app = Flask(__name__)
  6. app.secret_key = 'akuhebat'  # Change this to a random value for production use
  7.  
  8. # Initialize the database
  9. conn = sqlite3.connect('users.db', check_same_thread=False)
  10. c = conn.cursor()
  11. c.execute('''CREATE TABLE IF NOT EXISTS users
  12.             (id INTEGER PRIMARY KEY, username TEXT, password TEXT)''')
  13. conn.commit()
  14. conn.close()
  15.  
  16.  
  17. @app.route('/')
  18. def index():
  19.     return render_template('index.html')
  20.  
  21.  
  22. @app.route('/login', methods=['GET', 'POST'])
  23. def login():
  24.     if request.method == 'POST':
  25.         username = request.form['username']
  26.         password = request.form['password']
  27.         conn = sqlite3.connect('users.db')
  28.         c = conn.cursor()
  29.         c.execute("SELECT * FROM users WHERE username=? AND password=?", (username, password))
  30.         user = c.fetchone()
  31.         conn.close()
  32.         if user:
  33.             session['username'] = username
  34.             return redirect(url_for('index'))
  35.         else:
  36.             return render_template('login.html', error='Invalid username or password')
  37.     return render_template('login.html')
  38.  
  39.  
  40. @app.route('/signup', methods=['GET', 'POST'])
  41. def signup():
  42.     if request.method == 'POST':
  43.         username = request.form['username']
  44.         password = request.form['password']
  45.         conn = sqlite3.connect('users.db')
  46.         c = conn.cursor()
  47.         c.execute("SELECT * FROM users WHERE username=?", (username,))
  48.         existing_user = c.fetchone()
  49.         if existing_user:
  50.             conn.close()
  51.             return render_template('signup.html', error='Username already exists')
  52.         else:
  53.             c.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password))
  54.             conn.commit()
  55.             conn.close()
  56.             session['username'] = username
  57.             return redirect(url_for('index'))
  58.     return render_template('signup.html')
  59.  
  60.  
  61. @app.route('/logout')
  62. def logout():
  63.     session.pop('username', None)
  64.     return redirect(url_for('index'))
  65.  
  66.  
  67. if __name__ == '__main__':
  68.     app.run(debug=True)
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement