From 4a58e1be4e7b9b7855ccdcb7d84dc76bab72e9d8 Mon Sep 17 00:00:00 2001 From: Mohammad Rameen Date: Wed, 3 Sep 2025 06:00:31 +0530 Subject: [PATCH] Added FlaskSecrets --- .../day-61-flask-secrets-end/main.py | 48 +++++++++++++++++++ .../day-61-flask-secrets-end/requirements.txt | 5 ++ .../templates/base.html | 18 +++++++ .../templates/denied.html | 9 ++++ .../templates/index.html | 12 +++++ .../templates/login.html | 9 ++++ .../templates/success.html | 9 ++++ .../main.py | 26 ++++++++++ .../requirements.txt | 5 ++ .../templates/denied.html | 13 +++++ .../templates/index.html | 17 +++++++ .../templates/login.html | 13 +++++ .../templates/success.html | 13 +++++ 13 files changed, 197 insertions(+) create mode 100644 Visual Studio Code Projects/day-61-flask-secrets-end/main.py create mode 100644 Visual Studio Code Projects/day-61-flask-secrets-end/requirements.txt create mode 100644 Visual Studio Code Projects/day-61-flask-secrets-end/templates/base.html create mode 100644 Visual Studio Code Projects/day-61-flask-secrets-end/templates/denied.html create mode 100644 Visual Studio Code Projects/day-61-flask-secrets-end/templates/index.html create mode 100644 Visual Studio Code Projects/day-61-flask-secrets-end/templates/login.html create mode 100644 Visual Studio Code Projects/day-61-flask-secrets-end/templates/success.html create mode 100644 Visual Studio Code Projects/day-61-starting-files-flask-secrets/main.py create mode 100644 Visual Studio Code Projects/day-61-starting-files-flask-secrets/requirements.txt create mode 100644 Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/denied.html create mode 100644 Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/index.html create mode 100644 Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/login.html create mode 100644 Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/success.html diff --git a/Visual Studio Code Projects/day-61-flask-secrets-end/main.py b/Visual Studio Code Projects/day-61-flask-secrets-end/main.py new file mode 100644 index 0000000..68a44e1 --- /dev/null +++ b/Visual Studio Code Projects/day-61-flask-secrets-end/main.py @@ -0,0 +1,48 @@ +from flask import Flask, render_template +from flask_wtf import FlaskForm +from wtforms import StringField, PasswordField, SubmitField +from wtforms.validators import DataRequired, Email, Length # pip install email-validator +from flask_bootstrap import Bootstrap5 # pip install bootstrap-flask + +''' +Red underlines? Install the required packages first: +Open the Terminal in PyCharm (bottom left). + +On Windows type: +python -m pip install -r requirements.txt + +On MacOS type: +pip3 install -r requirements.txt + +This will install the packages from requirements.txt for this project. +''' + + +class LoginForm(FlaskForm): + email = StringField('Email', validators=[DataRequired()]) + password = PasswordField('Password', validators=[DataRequired()]) + submit = SubmitField(label="Log In") + + +app = Flask(__name__) +app.secret_key = "any-string-you-want-just-keep-it-secret" +bootstrap = Bootstrap5(app) + +@app.route("/") +def home(): + return render_template('index.html') + + +@app.route("/login", methods=["GET", "POST"]) +def login(): + login_form = LoginForm() + if login_form.validate_on_submit(): + if login_form.email.data == "admin@email.com" and login_form.password.data == "12345678": + return render_template("success.html") + else: + return render_template("denied.html") + return render_template("login.html", form=login_form) + + +if __name__ == '__main__': + app.run(debug=True, port=5001) diff --git a/Visual Studio Code Projects/day-61-flask-secrets-end/requirements.txt b/Visual Studio Code Projects/day-61-flask-secrets-end/requirements.txt new file mode 100644 index 0000000..2185543 --- /dev/null +++ b/Visual Studio Code Projects/day-61-flask-secrets-end/requirements.txt @@ -0,0 +1,5 @@ +Bootstrap_Flask==2.2.0 +Flask==2.3.2 +WTForms==3.0.1 +Flask_WTF==1.2.1 +Werkzeug==3.0.0 \ No newline at end of file diff --git a/Visual Studio Code Projects/day-61-flask-secrets-end/templates/base.html b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/base.html new file mode 100644 index 0000000..07b7e00 --- /dev/null +++ b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/base.html @@ -0,0 +1,18 @@ + + + + + + + {% block styles %} + + {{ bootstrap.load_css() }} + {% endblock %} + + {% block title %}{% endblock %} + + + {% block content %}{% endblock %} + + + \ No newline at end of file diff --git a/Visual Studio Code Projects/day-61-flask-secrets-end/templates/denied.html b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/denied.html new file mode 100644 index 0000000..a4753b9 --- /dev/null +++ b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/denied.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} +{% block title %}Access Denied{% endblock %} +{% block content %} +
+

Access Denied

+ +

via GIPHY

+
+{% endblock %} diff --git a/Visual Studio Code Projects/day-61-flask-secrets-end/templates/index.html b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/index.html new file mode 100644 index 0000000..39f1c77 --- /dev/null +++ b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/index.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} +{% block title %}Secrets{% endblock %} +{% block content %} + +
+
+

Welcome

+

Are you ready to discover my secret?

+ Login +
+
+{% endblock %} \ No newline at end of file diff --git a/Visual Studio Code Projects/day-61-flask-secrets-end/templates/login.html b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/login.html new file mode 100644 index 0000000..8f3868c --- /dev/null +++ b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/login.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} +{% from 'bootstrap5/form.html' import render_form %} +{% block title %}Login{% endblock %} +{% block content %} +
+

Login

+ {{ render_form(form) }} +
+{% endblock %} diff --git a/Visual Studio Code Projects/day-61-flask-secrets-end/templates/success.html b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/success.html new file mode 100644 index 0000000..4173d4c --- /dev/null +++ b/Visual Studio Code Projects/day-61-flask-secrets-end/templates/success.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} +{% block title %}Access Granted{% endblock %} +{% block content %} +
+

Top Secret

+ +

via GIPHY

+
+{% endblock %} diff --git a/Visual Studio Code Projects/day-61-starting-files-flask-secrets/main.py b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/main.py new file mode 100644 index 0000000..da2e4a3 --- /dev/null +++ b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/main.py @@ -0,0 +1,26 @@ +from flask import Flask, render_template + +''' +Red underlines? Install the required packages first: +Open the Terminal in PyCharm (bottom left). + +On Windows type: +python -m pip install -r requirements.txt + +On MacOS type: +pip3 install -r requirements.txt + +This will install the packages from requirements.txt for this project. +''' + + +app = Flask(__name__) + + +@app.route("/") +def home(): + return render_template('index.html') + + +if __name__ == '__main__': + app.run(debug=True) diff --git a/Visual Studio Code Projects/day-61-starting-files-flask-secrets/requirements.txt b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/requirements.txt new file mode 100644 index 0000000..cc0938d --- /dev/null +++ b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/requirements.txt @@ -0,0 +1,5 @@ +Bootstrap_Flask==2.2.0 +Flask==2.3.2 +WTForms==3.0.1 +Flask_WTF==1.2.1 +Werkzeug==3.0.0 diff --git a/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/denied.html b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/denied.html new file mode 100644 index 0000000..0fd51d2 --- /dev/null +++ b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/denied.html @@ -0,0 +1,13 @@ + + + + Access Denied + + +
+

Access Denied

+ +

via GIPHY

+
+ + \ No newline at end of file diff --git a/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/index.html b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/index.html new file mode 100644 index 0000000..7fdf62d --- /dev/null +++ b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/index.html @@ -0,0 +1,17 @@ + + + + Secrets + + +
+
+

Welcome

+

Are you ready to discover my secret?

+ Login +
+
+ + diff --git a/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/login.html b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/login.html new file mode 100644 index 0000000..2a370a9 --- /dev/null +++ b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/login.html @@ -0,0 +1,13 @@ + + + + + Login + + +
+

Login

+ +
+ + \ No newline at end of file diff --git a/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/success.html b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/success.html new file mode 100644 index 0000000..d7df023 --- /dev/null +++ b/Visual Studio Code Projects/day-61-starting-files-flask-secrets/templates/success.html @@ -0,0 +1,13 @@ + + + + Success + + +
+

Top Secret

+ +

via GIPHY

+
+ + \ No newline at end of file