DEV Community

M
M

Posted on

new way thinking. python + data-star

Tiny example in python what https://data-star.dev does.

Realtime clock example in python:

from flask import Flask, Response
import time

app = Flask(__name__)

def get_time():
    return '<div id="time">{}</div>'.format(time.strftime('%H:%M:%S'))

@app.route('/')
def index():
    return """
    <!DOCTYPE html>
    <html>
        <head>
            <script type="module" defer src="https://cdn.jsdelivr.net/npm/@sudodevnull/datastar"></script>
        </head>
        <body>
            <div data-on-load="$$get('/events')">
               <h1>Clock</h1>
                {}    
            </div>
        </body>
    </html>
    """.format(get_time())

@app.route('/events')
def events():
    def generate():
        while True:
            yield 'event: datastar-fragment\n'
            yield 'data:  fragment {}\n\n'.format(get_time())
            time.sleep(1)

    return Response(generate(), content_type='text/event-stream')

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

Top comments (2)

Collapse
 
chris_davis_b9ef279fa755e profile image
Chris Davis

Very cool. I just spent an hour trying to get the FastAPI and FastHTML examples to work with the SDK to no avail while yours gets it done without it.

Thanks for sharing.

Collapse
 
artydev profile image
artydev

Nice thank you :-)