examples/stacks/django/README.md
devbox shell to install your packages and run the init_hook. This will activate your virtual environment and install Django.devbox run initdb.devbox services up postgresql. You can start it in the background using devbox services up -b postgresql.devbox run create_db to create the database and run your Django migrationsdevbox run server to start the server. You can access the Django example at localhost:8000Install Devbox.
Run devbox create --template django to create a new Devbox project in your directory.
Install Python and PostgreSQL with devbox install. This will also install the Devbox plugins for pip (which sets up your .venv directory) and PostgreSQL.
Copy the requirements.txt and todo_project directory into the root folder of your project
Start a devbox shell with devbox shell. This will activate your virtual environment and install your requirements using the commands below.
. $VENV_DIR/bin/activate
pip install -r requirements.txt
These lines are already added to your init_hook to automatically activate your venv.
The Django example uses a database. To set up the database, we will first create a new PostgreSQL database cluster, create the todo_db and user, and run the Django migrations.
Initialize your Postgres database cluster with devbox run initdb.
Start the Postgres service by running devbox services start postgres
In your devbox shell, create the empty todo_db database and user with the following commands.
createdb todo_db
psql todo_db -c "CREATE USER todo_user WITH PASSWORD 'secretpassword';"
You can add this as a devbox script in your devbox.json file, so you can replicate the setup on other machines.
Run the Django migrations to create the tables in your database.
python todo_project/manage.py makemigrations
python todo_project/manage.py migrate
Your database is now ready to use. You can add these commands as a script in your devbox.json if you want to automate them for future use. See create_db in the projects devbox.json for an example.
You can now start your Django server by running the following command.
python todo_project/manage.py runserver
This should start the development server.