Get started with the DjangoLDP server
What is behind the DjangoLDP server ?
Startin’Blox is a front framework, based on a server named DjangoLDP and based on Django.The DjangoLDP server is adapted to be compatible with Linked Data’s convention.
As a reminder and as specified in Startin’Blox presentation, Startin’Blox is data source agnostic, i.e. it adapts to data sources that are compatible with the Linked Data Platform conventions.
DjangoLDP server, used in production, is the most operational solution today. However, it is currently still in development, so there is no guarantee that it is complete. Also, work in progress on compatibility of Startin’Blox with Virtual Assembly’s SemApps and Inrupt’s Community server.
Go to Server Architecture to know more about it.
And check the References guide to know all the details.
Requirements
The DjangoLDP server requires:
python 3.11
pip and virtualenv installed
postgresql database (for production)
sqlite3 (for development)
Django 4.2
Note
If you’re working on many project in Python, we advice you to use a virtual environment.
Optional: Set your virtual environment
If you want to set a virtual environment, you can do it with the following commands:
cd /path/to/your/project
python -m venv myenv
source myenv/bin/activate
Install DjangoLDP
From the virtual environment, get the last version of DjangoLDP:
python -m pip install djangoldp
Initiate a new server
Create a server workdir:
djangoldp initserver sibserver
cd sibserver
All the command must be issued from this working directory.
Add a package to your settings.yml file, let’s start with djangoldp_account:
dependencies:
- djangoldp-account
ldppackages:
- djangoldp_account
The server section should work out of the box. Check the reference guide for details on the settings file.
Install the dependencies you just added:
djangoldp install
This downloads the djangoldp-account distribution from pypi.org.
Configure your backend to support the new package:
djangoldp configure --with-dummy-admin
This will also create a local admin user (not suited for production use).
Then launch the server:
djangoldp runserver
Then go to http://localhost:8000/admin/ to acces to your Django administration with the admin user and admin password.
You should be able to get you api at http://localhost:8000/abc/ where abc is the model of data you want to get.
Start your own DjangoLDP package
Note
A bug in with the local package loading breaks the Django migrations directory recognition. To workaround it, you need to start or move your DjangoLDP package outside the server workdir and make a symlink inside the working directory.
Start a new package in the server workdir parent directory:
djangoldp startpackage mypkg
From the server workdir create a symlink to the package python module:
cd sibserver
ln -s ../mypkg/mypkg mypkg
Then reference your new package in the ldppackages section:
ldppackages:
- mypkg
Don’t forget to run the configure command if your package load django migrations.