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 (0)