使用Python Flask构建渐进式Web应用程序

时间:2017-09-23 15:20:15

标签: python flask service-worker progressive-web-apps

是否可以使用Flask构建PWA?更具体地说,是否可以使用Flask模板渲染注册服务工作者?如果是这样,有人可以提供一些有关如何去做或指向某些资源的信息吗?因为我找不到任何东西。谢谢。

1 个答案:

答案 0 :(得分:5)

App结构

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>

希望这会有所帮助。