Validating Login Form
#main.py
import config
from flask import Flask
from controllers.index import Index

app = Flask(__name__)
app.secret_key = config.vdict['secret_key']

Index.register(app, route_base='/')

if __name__ == '__main__':
  app.run(debug=True)
<!--templates/login.html-->
<!DOCTYPE html>
<html>
  <head>
    {% block head %}
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <meta name="description" content="This blog engine is built for e-learning">
    <meta name="robots" content="index, follow">
    <meta name='keywords' content='e-learning, learning, school, math, programming'>
    <title>{{data['blog_title']}}</title>
    <script src="/static/scripts/jQuery.js"></script>
    <script src='/static/scripts/login.js'></script>
    <link href="/static/styles/base.css" rel="stylesheet">
    <link href="/static/styles/login.css" rel="stylesheet">
    <link href="/static/fonts/setup.css" rel='stylesheet'>
    <link href="/static/images/site_logo.png" rel="icon">
    {% endblock %}
  </head>
  <body>
    <div id="main" class="main region">
      <div id="form-title">ទំរង់បែបបទ​ចុះ​ឈ្មោះ</div>
      <form id="content" method="post" action="/login/">
        {% block content %}
        <a>Email:</a><input type="email" name="femail" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" required />
        <a>ពាក្យ​សំងាត់ៈ</a><input type="password" name="fpassword" required />
        <a></a><input type="submit" value="ចុះឈ្មោះ" />
        {% endblock %}
      </form>
    </div>

    <div id="footer" class="footer region">
      {% block footer %}
      &copy; Copyright 2020 by <a href="https://www.khmerweb.app/">Khmer Web</a>.
      <script>var base = new Base();</script>
      {% endblock %}
    </div>
  </body>
</html>
#controllers/index.py
import config, copy
from flask import render_template, request, session, redirect
from flask_classful import FlaskView, route
from models.userdb import Userdb

class Index(FlaskView):
    def __init__(self):
        self.vdict = copy.deepcopy(config.vdict)
        self.userdb = Userdb()

    @route('/')
    def index(self):
        return render_template('index.html', data=self.vdict)

    @route('/login/', methods=['GET', 'POST'])
    def login(self):
        if request.method == 'POST':
            email = request.form['femail']
            password = request.form['fpassword']

            if(self.userdb.check_user(email, password)):
                session['email'] = email
                return render_template('dashboard.html', data=self.vdict)
        
        return render_template('login.html', data=self.vdict)

    @route('/logout/')
    def logout(self):
        session.pop('email', None)
        return redirect('/')

GitHub: "https://github.com/Sokhavuth/E-Learning
Heroku: https://khmerweb-elearning.herokuapp.com/