Notes tagged with "Flask"
Notes on Flask
Notes from Armin Ronacher’s Flask for Fun and Profit
create_app
from flask import Flask
def create_app(config=None):
app = Flask(__name__)
app.config.update(config or {})
register_blueprints(app)
register_other_things(app)
return app
register_blueprints
from werkzeug.utils import find_modules, import_string
def register_blueprints(app):
for name in find_modules('myapp.blueprints'):
mod = import_string(name)
if hasattr(mod, 'blueprint'):
app.register_blueprint(mod.blueprint)
Optional Contained App
The idea here is you can separate top level config and functionality that is clearly separated from internal flask related config and functionality. I.e. in the flask app this object is exposed as an attribute on the app, and visa versa.
Web Application Setup - Flask Setup
FLASK SITE SETUP
-
Create virutualenv for you application:
... cd /var/www/appname ... python3 -m virtualenv --python=python3 venv -
Copy the basic application files to your new app directory:
From your development machine:
-
scp manage.py wsgi.py adminusr@server:/var/www/appname
-
scp django.settings.ini adminusr@server:/var/www/appname/config
-
scp requirements.txt adminusr@server:/var/www/appname/packages
-
scp appsite-0.1.0.tar.gz adminusr@server:/var/www/appname/packages
-
scp app-plugin-0.1.0.tar.gz adminusr@server:/var/www/appname/packages
Your directory structure should now look like:
appname ├── config │ ├── django.settings.ini ├── data ├── logs ├── manage.py ├── packages │ ├── appsite-0.1.0.tar.gz │ ├── app-plugin-0.1.0.tar.gz │ ├── requirements.txt ├── static └── wsgi.pyWe’ll describe these files in more detail later.
-