Last active
March 1, 2025 13:22
-
-
Save kalafut/42bd31b2fdbf7a225da94e320d3e29ba to your computer and use it in GitHub Desktop.
Simple creation of a single-app django project
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Simple creation of a single-app django project, as described in: https://zindilis.com/posts/django-anatomy-for-single-app/ | |
# | |
# ./django_init foo | |
# | |
# This will result is the following flat structure: | |
# | |
# . | |
# └── foo | |
# ├── manage.py | |
# ├── settings.py | |
# ├── urls.py | |
# ├── foo | |
# │ ├── __init__.py | |
# │ ├── admin.py | |
# │ ├── apps.py | |
# │ ├── migrations | |
# │ │ └── __init__.py | |
# │ ├── models.py | |
# │ ├── tests.py | |
# │ └── views.py | |
# └── wsgi.py | |
# | |
# Note: this script assumes a GNU-compatible sed is installed. On macOS you can get this easily with Homebrew. | |
prj=$1 | |
django-admin startproject $prj | |
cd $prj | |
mv $prj/* . | |
rm __init__.py | |
rm -rf $prj | |
sed -i 's/'"${prj}"'\.settings/settings/g' manage.py wsgi.py | |
sed -i 's/'"${prj}"'\.urls/urls/g' settings.py | |
sed -i 's/'"${prj}"'\.wsgi\.application/wsgi.application/g' settings.py | |
sed -i '/BASE_DIR = /s/Path(__file__).resolve().parent.parent/Path(__file__).resolve().parent/' settings.py | |
sed -i 's/'"${prj}"'\.wsgi\.application/wsgi.application/g' settings.py | |
./manage.py startapp ${prj} |
It should be noted that you still need to add ${prj} to INSTALLED_APPS for things like models to be detected.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the verification!