How do you organize the code in your Django project?
26th September 2012
My answer to How do you organize the code in your Django project? on Quora
For http://lanyrd.com/ our layout looks something like this:
lanyrd/—parent directory, this is our root git repository
requirements.txt—our pip requirements file
app1/
app2/
app3/
management/
commands/—commands related to a specific app live inside that app
homepage/—one of our apps is responsible for our homepage
common/—some common code for the whole site, e.g. custom middleware
configs/
urls.py—our main URLs module
common_settings.py—settings common between dev and production
dev/
settings.py—our dev settings
manage.py—the manage.py script we use in dev
static/—our static assets
css/
js/
img/
templates/
base.html
homepage.html
app1/—templates relating to individual apps
app2/
app3/
We have a separate repository called “deploy” which contains our puppet recipes, our production settings and .tar.gz files for each of our pip requirements (since we don’t like our deploys to depend on files on the internet that might 404 some day).
I hope that’s helpful—let me know if you have any questions.
More recent articles
- Weeknotes: Llama 3, AI for Data Journalism, llm-evals and datasette-secrets - 23rd April 2024
- Options for accessing Llama 3 from the terminal using LLM - 22nd April 2024
- AI for Data Journalism: demonstrating what we can do with this stuff right now - 17th April 2024
- Three major LLM releases in 24 hours (plus weeknotes) - 10th April 2024
- Building files-to-prompt entirely using Claude 3 Opus - 8th April 2024
- Running OCR against PDFs and images directly in your browser - 30th March 2024
- llm cmd undo last git commit - a new plugin for LLM - 26th March 2024
- Building and testing C extensions for SQLite with ChatGPT Code Interpreter - 23rd March 2024
- Claude and ChatGPT for ad-hoc sidequests - 22nd March 2024
- Weeknotes: the aftermath of NICAR - 16th March 2024