0

I'm learning JavaScript and Python and I wrote a code that creates a file and enters information into it. But the recv_data function does not work - the file is not created. What should I do? The code will be below.

Python

import eel
eel.init("web")
@eel.expose
def recv_data(surname, name, grade):
    f=open("results.txt", "a+")
    f.write(surname, name, grade)
    f.close()
eel.start("index.html", mode="edge", size=(500,500))

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="box">
        <form action="#">
            <input type="text" id="surname" placeholder="Surname">
            <input type="text" id="name" placeholder="Name">
            <input type="text" id="grade" placeholder="Grade">
            <input type="submit" id="btn" value="Register">
        </form>
    </div>
    <script>
        let btn = document.querySelector("#btn");
        btn.addEventListener("click", sendData);
        async function sendData() {
            let surname = document.querySelector("#surname").value;
            let name = document.querySelector("#name").value;
            let klass = document.querySelector("#grade").value;
            await eel.recv_data(surname, name, grade);
        }
    </script>
</body>
</html>

css

* {
    margin: 0;
    padding: 0;
}

body {
    background-color: #131517;
}

.box {
    margin: 100px auto;
    text-align: center;
    background-color: #1f2429;
    font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    width: 300px;
    padding: 20px;
}

#surname, #name, #grade, #btn {
    padding: 10px;
    margin: 10px;
    background-color: #252e38;
    color: #fff;
    outline: 0;
    border: 0;
    border-bottom: 2px solid #2484f2;
    font-size: 1.3em;
}

#btn {
    cursor: pointer;
    width: 250px;
    text-transform: uppercase;
}

#btn:hover {
    color: #fff;
    background-color: #2285f5;
}

I tried to write code, but the function doesn't work in it. I need to make it work.

1 Answers1

0
        async function sendData() {
        let surname = document.querySelector("#surname").value;
        let name = document.querySelector("#name").value;
        let klass = document.querySelector("#grade").value;
        await eel.recv_data(surname, name, grade);
    }

When awaiting async data with eel, you need to use double parentheses like this : await eel.rcv_data(surname, name, grade)();

Medaillek
  • 1
  • 1