@app.route("/robots.txt") def robots(): return Response(render_template("robots.txt"),mimetype="text/plain") @app.route('/pygments.css') def pygments_css(): return pygments_style_defs('tango'), 200, {'Content-Type': 'text/css'} def urlf(url): remove = ["img", "js", "style", "font"] return not any(url.startswith("/static/%s" % x) for x in remove) other_urls = list([u for u in freezer.all_urls() if urlf(u)]) page_urls = ["/blog/%s" % p.path for p in pages] @app.route('/sitemap.xml') def sitemap(): url_root = r"http://randlet.com" rules = page_urls + other_urls return Response(render_template('sitemap.xml', url_root=url_root, rules=rules),mimetype="text/xml" ) @app.errorhandler(404) def page_not_found(e): return render_template("404.html")
# http://pythonhosted.org/Frozen-Flask/#api-reference freezer = Freezer( app, # with_no_argument_rules=False # ignore all other url's log_url_for=False) @freezer.register_generator def all_urls(): df = kipoi.get_source("kipoi").list_models() model = df.model urls = set() for m in model: while m: urls.add(m) m = os.path.dirname(m) groups = {x for x in urls if get_view(x, df)[0] == "group_list"} # exclude the final models groups = groups - set(model) return ["/", "/groups/"] + ["/groups/{0}/".format(x) for x in groups ] + ["/models/{0}/".format(x) for x in urls] if __name__ == '__main__': urls = list(freezer.all_urls()) for x in tqdm(freezer.freeze_yield(), total=len(urls)): pass print("Done!")
from flask_frozen import Freezer from application import create_app import os """ Build a static version of the fandomstats site. (no direct use anymore, retained as a backup option) """ os.environ['F_STATIC'] = 'True' app = create_app() app.config.update( FREEZER_RELATIVE_URLS=True, FREEZER_DESTINATION='../../build' ) freezer = Freezer(app) if __name__ == '__main__': print(freezer.all_urls()) freezer.freeze()