web-dev-qa-db-ja.com

Python Flask)を使用してプログレッシブウェブアプリを構築する

FlaskでPWAを構築することは可能ですか?より具体的には、Flaskテンプレートレンダリングを使用してサービスワーカーを登録することは可能ですか?もしそうなら、誰かがそれを実行する方法やいくつかのリソースを指す方法についての情報を提供できますか?何か見つけてくれてありがとう.

11
suplolx

アプリの構造

app
    static
        css
            page.css
        js
            app.js
        sw.js

    templates
        index.html

    app.py

app.py

from flask import Flask, render_template, url_for

app = Flask(__name__)

@app.route('/', methods=['GET'])
def index():
    return render_template('index.html')

@app.route('/sw.js', methods=['GET'])
def sw():
    return app.send_static_file('sw.js')

if __name__=='__main__':
    app.run(debug=True)

index.html

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="../static/css/page.css">
</head>
<body>
    <h1>Hello World!</h1>
</body>
    <script type="text/javascript" src="../static/js/app.js"></script>
    <script type="text/javascript">
        if ('serviceWorker' in navigator) {
            window.addEventListener('load', function() {
                navigator.serviceWorker.register("../sw.js").then(function(registration) {
                    // Registration was successful
                    console.log('ServiceWorker registration successful with scope: ', registration.scope);
                }, function(err) {
                    // registration failed :(
                    console.log('ServiceWorker registration failed: ', err);
                });
            });
        }
    </script>
</html>

お役に立てれば。

8
Stefan Piazza