5 changed files with 112 additions and 3 deletions
-
57app.py
-
14main.py
-
2requirements.txt
-
16templates/index.html
-
26templates/login.html
@ -0,0 +1,57 @@ |
|||
from flask import Flask, render_template, request, redirect, url_for, jsonify, flash |
|||
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user |
|||
import json |
|||
from main import my_function, load_config |
|||
|
|||
app = Flask(__name__) |
|||
app.secret_key = 'your_secret_key' |
|||
|
|||
login_manager = LoginManager() |
|||
login_manager.init_app(app) |
|||
login_manager.login_view = 'login' |
|||
|
|||
# Utilisateurs fictifs pour l'exemple |
|||
users = {'admin': {'password': 'password'}} |
|||
|
|||
class User(UserMixin): |
|||
def __init__(self, username): |
|||
self.id = username |
|||
|
|||
@login_manager.user_loader |
|||
def load_user(user_id): |
|||
return User(user_id) |
|||
|
|||
@app.route('/login', methods=['GET', 'POST']) |
|||
def login(): |
|||
if request.method == 'POST': |
|||
username = request.form['username'] |
|||
password = request.form['password'] |
|||
if username in users and users[username]['password'] == password: |
|||
user = User(username) |
|||
login_user(user) |
|||
return redirect(url_for('index')) |
|||
else: |
|||
flash('Invalid username or password') |
|||
return render_template('login.html') |
|||
|
|||
@app.route('/logout') |
|||
@login_required |
|||
def logout(): |
|||
logout_user() |
|||
return redirect(url_for('login')) |
|||
|
|||
@app.route('/') |
|||
@login_required |
|||
def index(): |
|||
return render_template('index.html') |
|||
|
|||
@app.route('/run', methods=['POST']) |
|||
@login_required |
|||
def run(): |
|||
filigramme = request.form['filigramme'] |
|||
config = load_config() |
|||
result = my_function({}, filigramme) |
|||
return jsonify(result) |
|||
|
|||
if __name__ == '__main__': |
|||
app.run(debug=True) |
|||
@ -1,3 +1,5 @@ |
|||
Pillow |
|||
piexif |
|||
pdf2image |
|||
flask |
|||
flask-login |
|||
@ -0,0 +1,16 @@ |
|||
<!doctype html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<title>Run Script</title> |
|||
</head> |
|||
<body> |
|||
<h2>Enter Filigramme</h2> |
|||
<form method="POST" action="{{ url_for('run') }}"> |
|||
<label for="filigramme">Filigramme:</label> |
|||
<input type="text" id="filigramme" name="filigramme"><br><br> |
|||
<input type="submit" value="Run"> |
|||
</form> |
|||
<a href="{{ url_for('logout') }}">Logout</a> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,26 @@ |
|||
<!doctype html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<title>Login</title> |
|||
</head> |
|||
<body> |
|||
<h2>Login</h2> |
|||
<form method="POST" action="{{ url_for('login') }}"> |
|||
<label for="username">Username:</label> |
|||
<input type="text" id="username" name="username"><br><br> |
|||
<label for="password">Password:</label> |
|||
<input type="password" id="password" name="password"><br><br> |
|||
<input type="submit" value="Login"> |
|||
</form> |
|||
{% with messages = get_flashed_messages() %} |
|||
{% if messages %} |
|||
<ul> |
|||
{% for message in messages %} |
|||
<li>{{ message }}</li> |
|||
{% endfor %} |
|||
</ul> |
|||
{% endif %} |
|||
{% endwith %} |
|||
</body> |
|||
</html> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue