Login.py is a simple library for Flask that makes you able to handle login easily without getting plenty of useless lines of code.
SOON
You can find the full demo of login.py here. You can also find the source code of login.py here.
This function is used to create the User
class. Having this function is necessary for the rest of the program. Without this, the Users cannot get stored into the database.
from flask import Flask, request
from flask_login import UserMixin
from flask_sqlalchemy import SQLAlchemy
from login import *
# Create the "app" and "db" variables
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SECRET_KEY'] = 'aghzi vnguierhtrutizo hard to guess indeeed'
db = SQLAlchemy(app)
# Create the User class and add it to the database
User = initLogin(app, db)
db.create_all()
This function is used to sign up a new user into the database. This is an example of usage:
@app.route('/register/post', methods=['POST'])
def register():
try:
createUser(request.form['username'], request.form['password'], db, User)
return "New user created you are now logged in as " + current_user.username
except:
return "This username is already taken"
This function is used to login a user, that means that the user must already be in the database.
@app.route('/login/post', methods=['POST'])
def login():
try:
loginUser(request.form['username'], request.form['password'], User)
return "You are now logged in as " + current_user.username
except:
return "Invalid username or password"
This is not a function from login.py, but a function from flask_login. The usage of this function is very simple:
@app.route('/logout')
def logout():
logout_user()
return "You are now logged out."
When you add this line under a url route, it locks the page to the logged in users. The users that are not logged will have a Unauthorized
error showing up.
@app.route('/locked')
@login_required # Using login_required to make a page private
def locked():
return "Hello " + current_user.username + " welcome to your private page."