Django
This example demonstrates how to configure and run a Django app using Devbox. It installs Python, PostgreSQL, and uses pip
to install your Python dependencies in a virtual environment.
How to Use
- Install Devbox
- Run
devbox shell
to install your packages and run the init_hook. This will activate your virtual environment and install Django. - Initialize PostgreSQL with
devbox run initdb
. - In the root directory, run
devbox run create_db
to create the database and run your Django migrations. - In the root directory, run
devbox run server
to start the server. You can access the Django example atlocalhost:8000
.
How to Create this Example from Scratch
Setting up the Project
Install Devbox.
Run
devbox init
to create a new Devbox project in your directory.Install Python and PostgreSQL with
devbox install python python310Packages.pip openssl postgresql
. 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 projectStart a devbox shell with
devbox shell
, then activate your virtual environment and install your requirements using the commands below.source $VENV_DIR/bin/activate
pip install -r requirements.txtYou can also add these lines to your
init_hook
to automatically activate your venv whenever you start your shell
Setting up the Database
The Django example uses a Postgres 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 emptytodo_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.
Running the Server
You can now start your Django server by running the following command.
python todo_project/manage.py runserver
This should start the development server.