Is still experimental...
This module implements a DAL database model inspired to the OpenstreetMap database, optimized for storing informations, with a very flexible json structure able to host and model any kind of data.
It supports OpenstreetMap and geojson as main data structures for import.
pip install py4geo
Use Py4geo in custom py4web applications
Py4web applications are nothing more than native python modules, Py4geo tools can be imported from them and for integration you just need to overwrite few basic setting variables.
-
Define in your application settings subsequent variables with values adapted to your needs:
# db settings # WARNING! Commented out variables are optional. # DB_FOLDER = DB_URI = "postgres://<PG user>:<password>@<host name>/<db name>" # DB_POOL_SIZE = 10 # DB_MIGRATE = True # Actually True is the default if not specified. # MATERIALIZED_VIEWS = []
-
Create your own setup script (
setup.py
) in theroot
of your application:from . import settings from py4geo import settings as py4geo_settings py4geo_settings.DB_URI = settings.DB_URI py4geo_settings.DB_FOLDER = settings.DB_FOLDER py4geo_settings.MATERIALIZED_VIEWS = settings.MATERIALIZED_VIEWS from py4geo.setup import initdb initdb() # WARNING! These imports must follow the call of the previous initdb function. from py4geo.setup.setup import modelsetup # Importing the model defined tables are automatically created from py4geo.models import db # This will create necessary geometry views. modelsetup()
-
Go to your
apps
folder and run:cd path/to/apps python -m <yourAppName>.setup
WARNING the script will ask for necessary PostgreSQL power user credentials that you must know.
You have two options
-
Overwrite the settings variable
DB_URI
with a valid PostgreSQL connection string to a PostGIS dtabase. -
Overwrite the
db
variable in thecommon
module with a DAL object connected to a PostGIS database.