#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 %} © 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/