Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gianlucaiavicoli/django-venv

Whether you are a seasoned Django developer or just starting out, these scripts aim to streamline common tasks and make it easier to get your Django project up and running quickly.
https://github.com/gianlucaiavicoli/django-venv

cassandra django django-docker django-environment django-mysql django-setup docker mysql postgresql scylla

Last synced: 28 days ago
JSON representation

Whether you are a seasoned Django developer or just starting out, these scripts aim to streamline common tasks and make it easier to get your Django project up and running quickly.

Awesome Lists containing this project

README

        

# Django Venv

This repository contains a set of Python and Bash scripts designed to simplify the process of setting up a development environment for Django projects. Whether you are a seasoned Django developer or just starting out, these scripts aim to streamline common tasks and make it easier to get your Django project up and running quickly.

## Table of Contents



  1. About The Project



  2. Getting Started


  3. Upcoming Features

  4. Code of Conduct

  5. Contributing

  6. License

  7. Acknowledgments

## Features
Django-Venv provides the following features:

1. **Virtual Environment Setup**: Automatically creates a virtual environment and installs project dependencies.

2. **Django Project Initialization**: Automates the creation of a Django project, along with additional directories and files such as static files, apps directory, and a base.html template.

3. **Django Settings Configuration**: Edits the `settings.py` file to include various settings, including database configuration (MySQL, PostgreSQL) with docker, htmx setup, SMTP configuration, and other common settings.

4. **Database Setup**: Users have the option to either utilize their own server or have the script generate a Docker container for the specified database. When opting for MySQL or other compatible databases, the script will endeavor to create a Docker container with your chosen database, establish a user profile with the requisite permissions, set up a database, and store the credentials securely in an .env file.

## Built With

![LINUX](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)
![Shell Script](https://img.shields.io/badge/shell_script-%23121011.svg?style=for-the-badge&logo=gnu-bash&logoColor=white)
![Django](https://img.shields.io/badge/django-%23092E20.svg?style=for-the-badge&logo=django&logoColor=white)
![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)
![MySQL](https://img.shields.io/badge/mysql-%2300f.svg?style=for-the-badge&logo=mysql&logoColor=white)
![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white)

(back to top)

## Getting Started

### Prerequisites

Before you begin, please ensure that you have the following dependencies installed on your system:

- **Linux Operating System**: Django-Venv is designed to work on Linux-based systems.

- **Docker**: Django-Venv relies on Docker for certain functionality. Make sure you have Docker installed on your machine. You can find installation instructions for Docker on the [Docker website](https://docs.docker.com/get-docker/).

Once you have these dependencies in place, you can proceed with the installation and usage of Django-Venv.

(back to top)

### Installation
To get started, follow these steps:

1. Create a python venv:

```bash
python -m venv
```

2. Activate the venv:

```bash
source /bin/activate
```

3. Install the package:

```bash
pip install django-venv
```

### Usage
Run the script to set up your Django project:

```bash
django-venv
```

### Command-Line Options
```bash
django-venv [OPTIONS]

Options:
-h, --help Display this help message
-d, --database Specify the database type (required)
Choose between 'mysql' or 'postgre'
--smtp Configure SMTP settings in settings.py
--htmx Configure HTMX settings in settings.py
```

(back to top)

### Usage Example
```bash
django-venv -d mysql --htmx --smtp
```
This will generate [settings.py](./example.settings.py), an '.env' file with all the credentials, a locally running MySQL Docker container if the database is not specified, as well as all the static directories and application directories for the Django project.

(back to top)

## Upcoming Features

1. **Cassandra Support with Docker**: Integrate support for Cassandra databases with Docker.
2. **Scylla Support with Docker**: Extend our Docker support to include Scylla, a highly available NoSQL database compatible with Apache Cassandra.

(back to top)

## Code of Conduct

Please review our [Code of Conduct](./CODE_OF_CONDUCT.md) before contributing to Django-Venv.

(back to top)

## Contributing

We welcome contributions from the community! Please see our [Contributing Guidelines](./CONTRIBUTING.md) for more information.

(back to top)

## License
Distributed under the Apache-2.0 license. See LICENSE for more information.

(back to top)

## Acknowledgments

* [Yapf Python formatter](https://github.com/google/yapf)
* [ast-comments](https://github.com/t3rn0/ast-comments)

(back to top)