2017-09-23 139 views
1

使用Flask构建PWA有可能吗?更具体地说,是否可以使用Flask模板渲染注册服务工作人员?如果是这样,任何人都可以提供一些关于如何去做或指向某些资源的信息?因为我无法找到任何东西。谢谢。使用Python Flask构建渐进式Web应用程序

回答

1

应用结构

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> 

希望这有助于。