I want to be able to click on a button in html and call a python function. I have tried this and it works but only for text. And I have seen here that you can use the function name in action for buttons but it does not work and I dont know why :/
And I dont want after the click of the button go to to another page, I want to stay on the same page and just execute the code from the function.
my py file :
from flask import Flask
from flask import render_template
import tkinter as tk
from tkinter import filedialog
import sys
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('hello.html')
@app.route('/upload/')
def uploaduj():
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
return file_path
my html file:
<!doctype html>
<title>Flaskr</title>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
<div class=page>
<h1>Flaskr</h1>
<div class=metanav>
<button action="/upload/">Klik</button>
</div>
I am really new to python and flask so every help is appreciated.
EDIT: i now know that tkinter will not work in web browsers
Try this:
<button action="{{ url_for('uploaduj') }}">Klik</button>
or just use a tag:
<a href="{{ url_for('uploaduj') }}">Klik</a>
To avoid page redirect, you can use this :
return (''), 204
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With