Techno Blender
Digitally Yours.

How to store username and password in Flask

0 50


from flask import *

from flask_mysqldb import MySQL

import MySQLdb.cursors

import re

  

app = Flask(__name__)

app.secret_key = 'GeeksForGeeks'

  

app.config['MYSQL_HOST'] = 'localhost'

app.config['MYSQL_USER'] = 'root'

app.config['MYSQL_PASSWORD'] = ''

app.config['MYSQL_DB'] = 'user-table'

  

mysql = MySQL(app)

  

  

@app.route('/')

@app.route('/login', methods=['GET', 'POST'])

def login():

    mesage = ''

    if request.method == 'POST' and 'email' in

    request.form and 'password' in request.form:

        email = request.form['email']

        password = request.form['password']

        cursor = mysql.connection.cursor

                (MySQLdb.cursors.DictCursor)

        cursor.execute(

            'SELECT * FROM user WHERE email = % s AND password = % s',

                  (email, password, ))

        user = cursor.fetchone()

        if user:

            session['loggedin'] = True

            session['userid'] = user['userid']

            session['name'] = user['name']

            session['email'] = user['email']

            mesage = 'Logged in successfully !'

            return render_template('user.html',

                                   mesage=mesage)

        else:

            mesage = 'Please enter correct email / password !'

    return render_template('login.html',

                           mesage=mesage)

  

  

@app.route('/logout')

def logout():

    session.pop('loggedin', None)

    session.pop('userid', None)

    session.pop('email', None)

    return redirect(url_for('login'))

  

  

@app.route('/register', methods=['GET', 'POST'])

def register():

    mesage = ''

    if request.method == 'POST' and 'name' in request.form

            and 'password' in request.form and 'email' in request.form:

        userName = request.form['name']

        password = request.form['password']

        email = request.form['email']

        cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)

        cursor.execute('SELECT * FROM user WHERE email = % s', (email, ))

        account = cursor.fetchone()

        if account:

            mesage = 'Account already exists !'

        elif not re.match(r'[^@]+@[^@]+\.[^@]+', email):

            mesage = 'Invalid email address !'

        elif not userName or not password or not email:

            mesage = 'Please fill out the form !'

        else:

            cursor.execute(

                'INSERT INTO user VALUES (NULL, % s, % s, % s)'

                      (userName, email, password ))

            mysql.connection.commit()

            mesage = 'You have successfully registered !'

    elif request.method == 'POST':

        mesage = 'Please fill out the form !'

    return render_template('register.html', mesage=mesage)

  

  

if __name__ == "__main__":

    app.run(debug=True)


from flask import *

from flask_mysqldb import MySQL

import MySQLdb.cursors

import re

  

app = Flask(__name__)

app.secret_key = 'GeeksForGeeks'

  

app.config['MYSQL_HOST'] = 'localhost'

app.config['MYSQL_USER'] = 'root'

app.config['MYSQL_PASSWORD'] = ''

app.config['MYSQL_DB'] = 'user-table'

  

mysql = MySQL(app)

  

  

@app.route('/')

@app.route('/login', methods=['GET', 'POST'])

def login():

    mesage = ''

    if request.method == 'POST' and 'email' in

    request.form and 'password' in request.form:

        email = request.form['email']

        password = request.form['password']

        cursor = mysql.connection.cursor

                (MySQLdb.cursors.DictCursor)

        cursor.execute(

            'SELECT * FROM user WHERE email = % s AND password = % s',

                  (email, password, ))

        user = cursor.fetchone()

        if user:

            session['loggedin'] = True

            session['userid'] = user['userid']

            session['name'] = user['name']

            session['email'] = user['email']

            mesage = 'Logged in successfully !'

            return render_template('user.html',

                                   mesage=mesage)

        else:

            mesage = 'Please enter correct email / password !'

    return render_template('login.html',

                           mesage=mesage)

  

  

@app.route('/logout')

def logout():

    session.pop('loggedin', None)

    session.pop('userid', None)

    session.pop('email', None)

    return redirect(url_for('login'))

  

  

@app.route('/register', methods=['GET', 'POST'])

def register():

    mesage = ''

    if request.method == 'POST' and 'name' in request.form

            and 'password' in request.form and 'email' in request.form:

        userName = request.form['name']

        password = request.form['password']

        email = request.form['email']

        cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)

        cursor.execute('SELECT * FROM user WHERE email = % s', (email, ))

        account = cursor.fetchone()

        if account:

            mesage = 'Account already exists !'

        elif not re.match(r'[^@]+@[^@]+\.[^@]+', email):

            mesage = 'Invalid email address !'

        elif not userName or not password or not email:

            mesage = 'Please fill out the form !'

        else:

            cursor.execute(

                'INSERT INTO user VALUES (NULL, % s, % s, % s)'

                      (userName, email, password ))

            mysql.connection.commit()

            mesage = 'You have successfully registered !'

    elif request.method == 'POST':

        mesage = 'Please fill out the form !'

    return render_template('register.html', mesage=mesage)

  

  

if __name__ == "__main__":

    app.run(debug=True)

FOLLOW US ON GOOGLE NEWS

Read original article here

Denial of responsibility! Techno Blender is an automatic aggregator of the all world’s media. In each content, the hyperlink to the primary source is specified. All trademarks belong to their rightful owners, all materials to their authors. If you are the owner of the content and do not want us to publish your materials, please contact us by email – [email protected]. The content will be deleted within 24 hours.

Leave a comment