Name | django-structurator JSON |
Version |
1.2.1
JSON |
| download |
home_page | None |
Summary | A lightweight CLI tool that helps you create Django projects and apps with a clean, scalable architectureβwithout boilerplate or repetitive setup. |
upload_time | 2025-07-24 14:30:35 |
maintainer | None |
docs_url | None |
author | @maulik-0207 |
requires_python | >=3.8 |
license | MIT |
keywords |
django
project-generator
cli
tool
django-cli
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<p align="center">
<img src="https://raw.githubusercontent.com/maulik-0207/django-structurator/master/images/django-structurator_logo.png" alt="django-structurator" width="600"/>
</p>
π **django-structurator** is a lightweight CLI tool that helps you create Django projects and apps with a clean, scalable architectureβwithout boilerplate or repetitive setup.
No extra dependencies. No bloated templates. Just a clean, prompt-driven workflow.
---
## βοΈ Features
- π **Scalable Folder Structure** β Consistent architecture for better maintainability.
- π§© **Modular App Generation** β Create Django apps with optional files: `forms`, `signals`, `validators`, `tasks`, and more.
- π **Optional Add-ons**:
- Django REST Framework (DRF)
- Django Debug Toolbar
- Celery + Redis
- SMTP Email Configuration
- Jazzmin Admin UI
- Custom Django Logger
- π Auto-generates essentials: `.env.example`, `.gitignore`, `requirements/`, and more.
---
## π¦ Installation
```bash
pip install django-structurator
```
---
## β‘ Usage
### π Create a New Django Project
```bash
django-str startproject
```
Interactive CLI will ask:
- Project name and path
- Database: SQLite / PostgreSQL / MySQL
- `.env` management: `django-environ` / `python-dotenv`
- Optional integrations (Debug Toolbar, DRF, Celery, Redis, Logger etc.)
### π§± Create a New Django App
```bash
django-str startapp
```
CLI will prompt for:
- App name
- Optional modules: `forms.py`, `signals.py`, `validators.py`
- Include optional features like:
- Template tags/filters
- Static and templates folders
- API folder structure (DRF)
---
## ποΈ Example Project Structure
```plaintext
test/
β
βββ docs/ # Documentation files
β βββ ARCHITECTURE.md # Project folder architecture guide
β βββ CHANGELOG.md # Change log for the project
β βββ README.md # Main documentation file
β
βββ local_db/ # Local SQLite database for development
β βββ db.sqlite3
β
βββ logs/ # Every level Log files will be here
β βββ critical.log
β βββ debug.log
β βββ error.log
β βββ info.log
β βββ warning.log
|
βββ requirements/ # Dependency management
β βββ base.txt # Core dependencies
β βββ development.txt # Development-specific dependencies
β βββ production.txt # Production-specific dependencies
β βββ test.txt # Testing dependencies
β
βββ src/ # Main source code folder
β βββ apps/ # All Django apps
| | βββ app-1/ # Example Django app
| | β β
| | β βββ api/ # API for app-1
| | β β βββ v1/ # Version 1 of the API
| | β β β βββ __init__.py
| | β β β βββ serializers.py # Serializers for API data
| | β β β βββ urls.py # API URL patterns
| | β β β βββ views.py # API views
| | β β βββ __init__.py
| | β β
| | β βββ migrations/ # Database migrations
| | β β βββ __init__.py
| | β β
| | β βββ templatetags/ # Custom template tags and filters
| | β β βββ __init__.py
| | β β βββ example_filter.py # Custom filter example
| | β β βββ example_tag.py # Custom tag example
| | β β
| | β βββ __init__.py
| | β βββ admin.py # Admin site configuration
| | β βββ apps.py # App configuration
| | β βββ forms.py # App-specific forms (optional)
| | β βββ models.py # App models
| | β βββ signals.py # Signal handlers (optional)
| | β βββ tasks.py # Celery tasks (optional)
| | β βββ tests.py # Unit tests
| | β βββ urls.py # App-specific URL patterns
| | β βββ validators.py # Custom validators (optional)
| | β βββ views.py # App views
| | β
| | βββ app-2/ # Another app
| | βββ app-3/
| | βββ ...
| | βββ app-4/
β β
β βββ common/ # Shared utilities, constants, and helpers
β β βββ __init__.py
β β βββ constants.py # Commonly used constants
β β βββ helpers.py # Utility functions
β β
β βββ config/ # Project configuration
β β βββ settings/ # Environment-specific settings
β β β βββ __init__.py
β β β βββ base.py # Base settings
β β β βββ development.py # Development environment settings
β β β βββ production.py # Production environment settings
β β βββ __init__.py
β β βββ .env # Environment variables (in config directory)
β β βββ .env.example # Example env file (in config directory)
β β βββ asgi.py # ASGI configuration
β β βββ celery.py # Celery configuration file if used
β β βββ urls.py # URL configuration
β β βββ wsgi.py # WSGI configuration
β β
β βββ media/ # Uploaded media files
β β
β βββ static/ # Static files
β β βββ css/ # CSS files
β β βββ js/ # JavaScript files
β β βββ images/ # Image files
β β βββ favicon.ico # Favicon
β β
β βββ templates/ # HTML templates
β β βββ base.html # Base HTML template
β β βββ index.html # Default landing page template
β β
β βββ manage.py # Django's management script
β
βββ .gitignore # Git ignore file
```
---
## β
Requirements
- Python 3.8+
- Django 3.2+
---
## π§ Why Use It?
- π₯ Save time and skip repetitive setup
- π§Ό Enforce consistency across teams
- β‘ Fast, interactive, zero-bloat generator
---
## π License
MIT License - See the [LICENSE](https://github.com/maulik-0207/django-structurator/blob/main/LICENSE)
---
## π Links
- GitHub Repo: [maulik-0207/django-structurator](https://github.com/maulik-0207/django-structurator)
- PyPI Package: [django-structurator](https://pypi.org/project/django-structurator/)
Raw data
{
"_id": null,
"home_page": null,
"name": "django-structurator",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "django, project-generator, cli, tool, django-cli",
"author": "@maulik-0207",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/27/b9/bd7e9cee5c79d9b219a7e5da42711f2af7f405a68b9fccc37a5bb6ef7285/django_structurator-1.2.1.tar.gz",
"platform": null,
"description": "\r\n<p align=\"center\">\r\n <img src=\"https://raw.githubusercontent.com/maulik-0207/django-structurator/master/images/django-structurator_logo.png\" alt=\"django-structurator\" width=\"600\"/>\r\n</p>\r\n\r\n\ud83d\ude80 **django-structurator** is a lightweight CLI tool that helps you create Django projects and apps with a clean, scalable architecture\u2014without boilerplate or repetitive setup.\r\n\r\nNo extra dependencies. No bloated templates. Just a clean, prompt-driven workflow.\r\n\r\n---\r\n\r\n## \u2699\ufe0f Features\r\n\r\n- \ud83d\udcc1 **Scalable Folder Structure** \u2013 Consistent architecture for better maintainability.\r\n- \ud83e\udde9 **Modular App Generation** \u2013 Create Django apps with optional files: `forms`, `signals`, `validators`, `tasks`, and more.\r\n- \ud83d\udd0c **Optional Add-ons**:\r\n - Django REST Framework (DRF)\r\n - Django Debug Toolbar\r\n - Celery + Redis\r\n - SMTP Email Configuration\r\n - Jazzmin Admin UI\r\n - Custom Django Logger\r\n- \ud83d\udcc4 Auto-generates essentials: `.env.example`, `.gitignore`, `requirements/`, and more.\r\n\r\n---\r\n\r\n## \ud83d\udce6 Installation\r\n\r\n```bash\r\npip install django-structurator\r\n```\r\n\r\n---\r\n\r\n## \u26a1 Usage\r\n\r\n### \ud83d\udcc2 Create a New Django Project\r\n\r\n```bash\r\ndjango-str startproject\r\n```\r\n\r\nInteractive CLI will ask:\r\n- Project name and path\r\n- Database: SQLite / PostgreSQL / MySQL\r\n- `.env` management: `django-environ` / `python-dotenv`\r\n- Optional integrations (Debug Toolbar, DRF, Celery, Redis, Logger etc.)\r\n\r\n### \ud83e\uddf1 Create a New Django App\r\n\r\n```bash\r\ndjango-str startapp\r\n```\r\n\r\nCLI will prompt for:\r\n- App name\r\n- Optional modules: `forms.py`, `signals.py`, `validators.py`\r\n- Include optional features like:\r\n - Template tags/filters\r\n - Static and templates folders\r\n - API folder structure (DRF)\r\n\r\n---\r\n\r\n## \ud83c\udfd7\ufe0f Example Project Structure\r\n\r\n```plaintext\r\ntest/ \r\n\u2502\r\n\u251c\u2500\u2500 docs/ # Documentation files\r\n\u2502 \u251c\u2500\u2500 ARCHITECTURE.md # Project folder architecture guide\r\n\u2502 \u251c\u2500\u2500 CHANGELOG.md # Change log for the project\r\n\u2502 \u2514\u2500\u2500 README.md # Main documentation file\r\n\u2502\r\n\u251c\u2500\u2500 local_db/ # Local SQLite database for development\r\n\u2502 \u2514\u2500\u2500 db.sqlite3\r\n\u2502\r\n\u251c\u2500\u2500 logs/ # Every level Log files will be here\r\n\u2502 \u251c\u2500\u2500 critical.log \r\n\u2502 \u251c\u2500\u2500 debug.log \r\n\u2502 \u251c\u2500\u2500 error.log \r\n\u2502 \u251c\u2500\u2500 info.log \r\n\u2502 \u2514\u2500\u2500 warning.log \r\n|\r\n\u251c\u2500\u2500 requirements/ # Dependency management\r\n\u2502 \u251c\u2500\u2500 base.txt # Core dependencies\r\n\u2502 \u251c\u2500\u2500 development.txt # Development-specific dependencies\r\n\u2502 \u251c\u2500\u2500 production.txt # Production-specific dependencies\r\n\u2502 \u2514\u2500\u2500 test.txt # Testing dependencies\r\n\u2502\r\n\u251c\u2500\u2500 src/ # Main source code folder\r\n\u2502 \u251c\u2500\u2500 apps/ # All Django apps\r\n| | \u251c\u2500\u2500 app-1/ # Example Django app\r\n| | \u2502 \u2502\r\n| | \u2502 \u251c\u2500\u2500 api/ # API for app-1\r\n| | \u2502 \u2502 \u251c\u2500\u2500 v1/ # Version 1 of the API\r\n| | \u2502 \u2502 \u2502 \u251c\u2500\u2500 __init__.py\r\n| | \u2502 \u2502 \u2502 \u251c\u2500\u2500 serializers.py # Serializers for API data\r\n| | \u2502 \u2502 \u2502 \u251c\u2500\u2500 urls.py # API URL patterns\r\n| | \u2502 \u2502 \u2502 \u2514\u2500\u2500 views.py # API views\r\n| | \u2502 \u2502 \u2514\u2500\u2500 __init__.py\r\n| | \u2502 \u2502\r\n| | \u2502 \u251c\u2500\u2500 migrations/ # Database migrations\r\n| | \u2502 \u2502 \u2514\u2500\u2500 __init__.py\r\n| | \u2502 \u2502\r\n| | \u2502 \u251c\u2500\u2500 templatetags/ # Custom template tags and filters\r\n| | \u2502 \u2502 \u251c\u2500\u2500 __init__.py\r\n| | \u2502 \u2502 \u251c\u2500\u2500 example_filter.py # Custom filter example\r\n| | \u2502 \u2502 \u2514\u2500\u2500 example_tag.py # Custom tag example\r\n| | \u2502 \u2502\r\n| | \u2502 \u251c\u2500\u2500 __init__.py\r\n| | \u2502 \u251c\u2500\u2500 admin.py # Admin site configuration\r\n| | \u2502 \u251c\u2500\u2500 apps.py # App configuration\r\n| | \u2502 \u251c\u2500\u2500 forms.py # App-specific forms (optional)\r\n| | \u2502 \u251c\u2500\u2500 models.py # App models\r\n| | \u2502 \u251c\u2500\u2500 signals.py # Signal handlers (optional)\r\n| | \u2502 \u251c\u2500\u2500 tasks.py # Celery tasks (optional)\r\n| | \u2502 \u251c\u2500\u2500 tests.py # Unit tests\r\n| | \u2502 \u251c\u2500\u2500 urls.py # App-specific URL patterns\r\n| | \u2502 \u251c\u2500\u2500 validators.py # Custom validators (optional)\r\n| | \u2502 \u2514\u2500\u2500 views.py # App views\r\n| | \u2502\r\n| | \u251c\u2500\u2500 app-2/ # Another app\r\n| | \u251c\u2500\u2500 app-3/\r\n| | \u251c\u2500\u2500 ...\r\n| | \u2514\u2500\u2500 app-4/\r\n\u2502 \u2502\r\n\u2502 \u251c\u2500\u2500 common/ # Shared utilities, constants, and helpers\r\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\r\n\u2502 \u2502 \u251c\u2500\u2500 constants.py # Commonly used constants\r\n\u2502 \u2502 \u2514\u2500\u2500 helpers.py # Utility functions\r\n\u2502 \u2502\r\n\u2502 \u251c\u2500\u2500 config/ # Project configuration\r\n\u2502 \u2502 \u251c\u2500\u2500 settings/ # Environment-specific settings\r\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 __init__.py\r\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 base.py # Base settings\r\n\u2502 \u2502 \u2502 \u251c\u2500\u2500 development.py # Development environment settings\r\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 production.py # Production environment settings\r\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\r\n\u2502 \u2502 \u251c\u2500\u2500 .env # Environment variables (in config directory)\r\n\u2502 \u2502 \u251c\u2500\u2500 .env.example # Example env file (in config directory)\r\n\u2502 \u2502 \u251c\u2500\u2500 asgi.py # ASGI configuration\r\n\u2502 \u2502 \u251c\u2500\u2500 celery.py # Celery configuration file if used\r\n\u2502 \u2502 \u251c\u2500\u2500 urls.py # URL configuration\r\n\u2502 \u2502 \u2514\u2500\u2500 wsgi.py # WSGI configuration\r\n\u2502 \u2502\r\n\u2502 \u251c\u2500\u2500 media/ # Uploaded media files\r\n\u2502 \u2502\r\n\u2502 \u251c\u2500\u2500 static/ # Static files\r\n\u2502 \u2502 \u251c\u2500\u2500 css/ # CSS files\r\n\u2502 \u2502 \u251c\u2500\u2500 js/ # JavaScript files\r\n\u2502 \u2502 \u2514\u2500\u2500 images/ # Image files\r\n\u2502 \u2502 \u2514\u2500\u2500 favicon.ico # Favicon\r\n\u2502 \u2502\r\n\u2502 \u251c\u2500\u2500 templates/ # HTML templates\r\n\u2502 \u2502 \u251c\u2500\u2500 base.html # Base HTML template\r\n\u2502 \u2502 \u2514\u2500\u2500 index.html # Default landing page template\r\n\u2502 \u2502\r\n\u2502 \u2514\u2500\u2500 manage.py # Django's management script\r\n\u2502\r\n\u2514\u2500\u2500 .gitignore # Git ignore file\r\n```\r\n\r\n---\r\n\r\n## \u2705 Requirements\r\n\r\n- Python 3.8+\r\n- Django 3.2+\r\n\r\n---\r\n\r\n## \ud83e\udde0 Why Use It?\r\n\r\n- \ud83d\udd25 Save time and skip repetitive setup\r\n\r\n- \ud83e\uddfc Enforce consistency across teams\r\n\r\n- \u26a1 Fast, interactive, zero-bloat generator\r\n\r\n---\r\n\r\n## \ud83d\udcc4 License\r\n\r\nMIT License - See the [LICENSE](https://github.com/maulik-0207/django-structurator/blob/main/LICENSE)\r\n\r\n---\r\n\r\n## \ud83d\udd17 Links\r\n\r\n- GitHub Repo: [maulik-0207/django-structurator](https://github.com/maulik-0207/django-structurator)\r\n- PyPI Package: [django-structurator](https://pypi.org/project/django-structurator/)\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A lightweight CLI tool that helps you create Django projects and apps with a clean, scalable architecture\u2014without boilerplate or repetitive setup.",
"version": "1.2.1",
"project_urls": {
"Documentation": "https://github.com/maulik-0207/django-structurator/blob/master/docs/README.md",
"Source": "https://github.com/maulik-0207/django-structurator"
},
"split_keywords": [
"django",
" project-generator",
" cli",
" tool",
" django-cli"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b35a5817d0c932dd654fb992e32f99bd73450c3b18797ff37c3ace13ad3c568e",
"md5": "289765c6795a510c726102e20049e75a",
"sha256": "d12b65585261d79b7deb54d3626f2820491e4b79e2db72cde5b07484c590c20d"
},
"downloads": -1,
"filename": "django_structurator-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "289765c6795a510c726102e20049e75a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 110367,
"upload_time": "2025-07-24T14:30:34",
"upload_time_iso_8601": "2025-07-24T14:30:34.385197Z",
"url": "https://files.pythonhosted.org/packages/b3/5a/5817d0c932dd654fb992e32f99bd73450c3b18797ff37c3ace13ad3c568e/django_structurator-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "27b9bd7e9cee5c79d9b219a7e5da42711f2af7f405a68b9fccc37a5bb6ef7285",
"md5": "b196bccba6953420a1692e87f4a690da",
"sha256": "43c98e86480ecf53e05200509764e063afd53df3b314462d93bcada180fe9640"
},
"downloads": -1,
"filename": "django_structurator-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "b196bccba6953420a1692e87f4a690da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 95154,
"upload_time": "2025-07-24T14:30:35",
"upload_time_iso_8601": "2025-07-24T14:30:35.665829Z",
"url": "https://files.pythonhosted.org/packages/27/b9/bd7e9cee5c79d9b219a7e5da42711f2af7f405a68b9fccc37a5bb6ef7285/django_structurator-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-24 14:30:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "maulik-0207",
"github_project": "django-structurator",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "django-structurator"
}