App flask

This commit is contained in:
2024-04-10 14:25:03 +02:00
parent 6882eb00aa
commit 224a6de528
9 changed files with 128 additions and 0 deletions

2
flask/.env Normal file
View File

@@ -0,0 +1,2 @@
source env/bin/activate
export APP_SETTINGS="config.DevelopmentConfig"

6
flask/README.md Normal file
View File

@@ -0,0 +1,6 @@
https://realpython.com/flask-by-example-part-1-project-setup/
https://realpython.com/introduction-to-flask-part-1-setting-up-a-static-site/
https://realpython.com/introduction-to-flask-part-2-creating-a-login-page/

37
flask/app.py Normal file
View File

@@ -0,0 +1,37 @@
import os
from flask import Flask, render_template, redirect, url_for, request
app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])
print(os.environ['APP_SETTINGS'])
@app.route('/')
def home():
return "Hello World!"
@app.route('/<name>')
def hello_name(name):
return "Hello {}!".format(name)
@app.route('/welcome')
def welcome():
return render_template('welcome.html') # render a template
# Route for handling the login page logic
@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = 'Invalid Credentials. Please try again.'
else:
return redirect(url_for('home'))
return render_template('login.html', error=error)
if __name__ == '__main__':
app.run()

27
flask/config.py Normal file
View File

@@ -0,0 +1,27 @@
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config(object):
DEBUG = False
TESTING = False
CSRF_ENABLED = True
SECRET_KEY = 'this-really-needs-to-be-changed'
class ProductionConfig(Config):
DEBUG = False
class StagingConfig(Config):
DEVELOPMENT = True
DEBUG = True
class DevelopmentConfig(Config):
DEVELOPMENT = True
DEBUG = True
class TestingConfig(Config):
TESTING = True

5
flask/requierements.txt Normal file
View File

@@ -0,0 +1,5 @@
Flask
itsdangerous
Jinja2
requests
Werkzeug

7
flask/static/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

7
flask/static/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,23 @@
<html>
<head>
<title>Flask Intro - login page</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="static/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="container">
<h1>Please login</h1>
<br>
<form action="" method="post">
<input type="text" placeholder="Username" name="username" value="{{
request.form.username }}">
<input type="password" placeholder="Password" name="password" value="{{
request.form.password }}">
<input class="btn btn-default" type="submit" value="Login">
</form>
{% if error %}
<p class="error"><strong>Error:</strong> {{ error }}
{% endif %}
</div>
</body>
</html>

View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<title>Flask Intro</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="container">
<h1>Welcome to Flask!</h2>
<br>
<p>Click <a href="/">here</a> to go home.</p>
</div>
</body>
</html>