Python function call with button

I want to be able to click on a button in html and call the python function. I tried this and it works, but only for text. And I saw here that you can use the function name in action for buttons, but this does not work, and I don't know why: /

And I don’t want to go to another page after clicking the button, I want to stay on one 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: Now I know that tkinter will not work in web browsers

+2
source share
2 answers

HTML.

<form action="/upload">
    <input type="file" name="fileupload" value="fileupload" id="fileupload">
    <label for="fileupload"> Select a file to upload</label>
    <input type="submit" value="Klik">
</form>

Flask,

+1

:

<button action="{{ url_for('uploaduj') }}">Klik</button> 

:

<a href="{{ url_for('uploaduj') }}">Klik</a> 

, :

return (''), 204
+2

Source: https://habr.com/ru/post/1671479/


All Articles