Flask extension that serves static file handlers in Google App Engine app.yaml files
Project description
flask-gae-static
Flask extension for Google App Engine that serves static file handlers from app.yaml
files.
App Engine's built in static file serving is better in most ways than serving static files via app code: it uses Google Cloud's CDN, which is generally faster, cheaper, more scalable, and more secure. However, App Engine's dev_appserver
local server is deprecated and degrading, and Google hasn't provided a replacement for local development that supports app.yaml
-based static file handlers. This extension fills that gap.
Inspired by Andreas H. Kelch's app_server project.
License: This project is placed in the public domain. You may also use it under the CC0 public domain dedication.
Usage
Install with pip install flask-gae-static
. Use with eg:
from flask import Flask
import flask_gae_static
app = Flask(..., static_folder=None)
flask_gae_static.init_app(app)
...
(static_folder=None
is required to disable Flask's built in static file handling so that flask-gae-static can handle static files under any URL path prefix.)
flask-gae-static also includes a custom URL route converter that supports regular expressions. After calling init_app()
, you can use it with regex
inside a variable route part, eg:
@app.route('/<regex("(abc|def)"):letters>')
def handle(letters):
...
Development
After cloning the repository, set up a local virtualenv with:
python3 -m venv local
source local/bin/activate
pip install -e .
Run tests with:
python -m unittest discover
Changelog
1.0 - 2021-08-09
Breaking changes
Require the Flask
app to be constructed with static_folder=None
.
Before this, flask-gae-static tried to disable Flask's static file handling itself, but since it couldn't control the Flask
initialization, it had to resort to workarounds that depended on Flask and werkzeug internal implementation details, and it broke when those details changed. This avoids that.
0.2 - 2021-12-31
Add support for regexp url
s and regexp replacement strings in static_files
.
0.1 - 2021-12-30
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.