• Stars
    star
    212
  • Rank 186,122 (Top 4 %)
  • Language
    Python
  • Created over 12 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Django project template for startproject (Requires 2.2+)

{% if False %}

https://requires.io/github/caktus/django-project-template/requirements.svg?branch=master

(See our requires.io documentation).

Installation

To start a new project with this template:

django-admin.py startproject \
  --template=https://github.com/caktus/django-project-template/zipball/master \
  --extension=py,rst,yml,sh,js \
  --name=Makefile,gulpfile.js,package.json,Procfile \
  <project_name>

License

Copyright (c) 2017, Caktus Consulting Group, LLC

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

{% endif %}

https://requires.io/github/GITHUB_ORG/{{project_name}}/requirements.svg?branch=master

https://requires.io/github/GITHUB_ORG/{{project_name}}/requirements.svg?branch=develop

{{ project_name|title }}

Below you will find basic setup and deployment instructions for the {{ project_name }} project. To begin you should have the following applications installed on your local development system:

Installing the proper NodeJS versions for each of your projects can be difficult. It's probably best to use nvm.

Django version

The Django version configured in this template is conservative. If you want to use a newer version, edit requirements/base.txt.

Getting Started

First clone the repository from Github and switch to the new directory:

$ git clone [email protected]:[ORGANIZATION]/{{ project_name }}.git
$ cd {{ project_name }}

To setup your local environment you can use the quickstart make target setup, which will install both Python and Javascript dependencies (via pip and npm) into a virtualenv named "{{ project_name }}", configure a local django settings file, and create a database via Postgres named "{{ project_name }}" with all migrations run:

$ make setup
$ workon {{ project_name }}

If you require a non-standard setup, you can walk through the manual setup steps below making adjustments as necessary to your needs.

To setup your local environment you should create a virtualenv and install the necessary requirements:

# Check that you have python3.7 installed
$ which python3.7
$ mkvirtualenv {{ project_name }} -p `which python3.7`
({{ project_name }})$ pip install -r requirements/dev.txt
({{ project_name }})$ npm install

Next, we'll set up our local environment variables. We use django-dotenv to help with this. It reads environment variables located in a file name .env in the top level directory of the project. The only variable we need to start is DJANGO_SETTINGS_MODULE:

({{ project_name }})$ cp {{ project_name }}/settings/local.example.py {{ project_name }}/settings/local.py
({{ project_name }})$ echo "DJANGO_SETTINGS_MODULE={{ project_name }}.settings.local" > .env

Create the Postgres database and run the initial migrate:

({{ project_name }})$ createdb -E UTF-8 {{ project_name }}
({{ project_name }})$ python manage.py migrate

If you want to use Travis to test your project, rename project.travis.yml to .travis.yml, overwriting the .travis.yml that currently exists. (That one is for testing the template itself.):

({{ project_name }})$ mv project.travis.yml .travis.yml

Development

You should be able to run the development server via the configured dev script:

({{ project_name }})$ npm run dev

Or, on a custom port and address:

({{ project_name }})$ npm run dev -- --address=0.0.0.0 --port=8020

Any changes made to Python, Javascript or Less files will be detected and rebuilt transparently as long as the development server is running.

Deployment

There are different ways to deploy, and this document outlines a few of them that could be used for {{ project_name }}.

Deployment with fabric

We use a library called fabric as a wrapper around a lot of our deployment functionality. However, deployment is no longer fully set up in this template, and instead you'll need to do something like set up Tequila for your project. Currently, best way to do that is to copy the configuration from an existing project. Once that is done, and the servers have been provisioned, you can deploy changes to a particular environment with the deploy command:

$ fab staging deploy

Deployment with Dokku

Alternatively, you can deploy the project using Dokku. See the Caktus developer docs.

More Repositories

1

django-timepiece

A multi-user Django application for tracking people's time on projects.
Python
361
star
2

django-treenav

Extensible, hierarchical, and pluggable navigation system for Django sites
Python
129
star
3

django-scribbler

django-scribbler is an application for managing snippets of text for a Django website.
Python
115
star
4

aws-web-stacks

Easily create AWS managed resources in an isolated VPC for hosting web applications.
Python
100
star
5

django-email-bandit

A Django email backend for hijacking email sending in a test environment.
Python
74
star
6

django-jsx

A simple tool for using Django and React/JSX together
Python
58
star
7

django-pagelets

Simple CMS for Django projects
JavaScript
58
star
8

fabulaws

A Python tool for creating and interacting with ephemeral AWS resources
Python
41
star
9

dockerfile_post

Code to accompany https://www.caktusgroup.com/blog/2017/03/14/production-ready-dockerfile-your-python-django-app/
Python
40
star
10

django-file-picker

django-file-picker
JavaScript
37
star
11

margarita

A collection of delicious Salt states for Django project deployments.
SaltStack
35
star
12

django-sticky-uploads

Enhanced file input widget for Django which uploads the file in the background and retains value on form errors.
Python
31
star
13

taytay

β™₯ Taylor Swift Lyric Generator β™₯
Python
29
star
14

django-comps

A utility that provides an entry point for integrating front end designers into a django project
Python
27
star
15

rapidsms-twilio

RapidSMS Twilio Backend
Python
22
star
16

django-filters-facet

A django-filter extension to refine search results using faceted navigation functionality.
Python
21
star
17

django-crumbs

django-crumbs is a pluggable Django app for adding breadcrumbs to your project.
Python
17
star
18

django_bread

Help create BREAD views in Django
Python
14
star
19

rapidsms-appointments

A reusable RapidSMS application for sending appointment reminders.
Python
12
star
20

django-styleguide

Styleguide helper for projects that work with design teams
CSS
12
star
21

tracerlib

Tracerlib provides a set of helpers to make tracing Python code easier.
Python
11
star
22

rapidsms-threadless-router

A RapidSMS router implementation that removes the threading functionality from the legacy Router class.
Python
10
star
23

rapidsms-tropo

Tropo backend for RapidSMS
Python
9
star
24

guidebook

9
star
25

rapidsms-healthcare

A Django/RapidSMS application for managing patient and healthcare provider records in a pluggable fashion.
Python
8
star
26

django-template-graph

Python
7
star
27

django-sanitizer

Python
7
star
28

django-dry-choices

Create choices for Django model and form choice fields in a concise, consistent and DRY manner.
Python
7
star
29

rapidsms-raspberrypi

JavaScript
7
star
30

redundant

A technical debt analysis tool
Python
7
star
31

smsdemo

Demo RapidSMS Application for PyCon 2105 Workshop https://us.pycon.org/2015/schedule/presentation/479/
Python
6
star
32

django-app-template

A template for creating a new reusable application for Django.
Python
6
star
33

drf-sample

Django REST Framework Sample
Python
5
star
34

tequila-django

Ansible role for setting up a Django project running under gunicorn and/or Celery on a server
Shell
5
star
35

rapidsms-clickatell

RapidSMS Clickatell Backend
Python
5
star
36

caktus-sphinx-theme

Custom Sphinx theme for project written and maintained by Caktus Consulting Group
Python
4
star
37

philly-hip

Code for hip.phila.gov
Python
4
star
38

ultimatetictactoe

JavaScript
4
star
39

rapidsms-natal-care

A RapidSMS application for pre-natal and post-natal appointment tracking.
Python
4
star
40

cordwainer

A better CSV library
Python
4
star
41

hyperfiction

Interactive Fiction engine and mark up language, written using Polymer Platform
4
star
42

pygsm-gateway

Simple HTTP gateway for using a GSM modem with PyGSM
Python
3
star
43

tequila-dokku

3
star
44

rapidsms-broadcast

Python
3
star
45

rapidsms-nutrition

RapidSMS app for monitoring growth and nutrition
Python
3
star
46

framework-playground

Erlang
3
star
47

ansible-role-django-k8s

Ansible role with sane defaults to deploy a Django app to Kubernetes.
Jinja
3
star
48

tequila

Straight-up project deployment roles, without the Salt.
3
star
49

rapidsms-salt

JavaScript
2
star
50

invoke-kubesae

Basic management tasks for working with a Kubernetes cluster
Python
2
star
51

tequila-nginx

Ansible role for setting up nginx on a server as a forwarding proxy for Django
2
star
52

rapidsms-deploy-dotcloud

Python
2
star
53

rapidsms-salt-multi-server

JavaScript
2
star
54

rapidsms-groups

Python
2
star
55

commcare-utilities

Python
2
star
56

jade-truffle

The smallest Caktus
Python
1
star
57

ansible-role-k8s-web-cluster

An Ansible role to help configure Kubernetes clusters for web apps.
1
star
58

ansible-role-podman-containers

1
star
59

hosted-rapidpro

Shell
1
star
60

rapidsms-reports

Python
1
star
61

ansible-role-aws-web-stacks

Ansible Role - aws-web-stacks
1
star
62

jazzhands

Python
1
star
63

tequila-solr

Ansible role for Solr for Django projects
1
star
64

slider

Ship It Day experiment using React to build a slider game/puzzle.
JavaScript
1
star
65

gulp-tasks

JavaScript
1
star
66

tequila-postgresql

Ansible role for creating a Postgres database for a Django project
1
star
67

ibid

Ibid IRC bot
Python
1
star
68

pycon-dashboard

HTML
1
star
69

reaktus

JavaScript
1
star
70

tequila-rabbitmq

Ansible role for creating a task queue for a Django project using RabbitMQ
1
star
71

tequila-cli

Python
1
star
72

caktus-docker-context

Ansible playbook to configure a remote host as a docker context
1
star
73

beeware-sqlite3

Proof of concept BeeWare app using sqlite3
Python
1
star
74

Traffic-Stops

NC CopWatch is a website to monitor and identify racial profiling practices by North Carolina law enforcement agencies
Jupyter Notebook
1
star
75

tequila-common

Ansible role for setting up users, keys, directories, and a firewall for a Django server
1
star
76

django-opendebates

Python
1
star
77

lightning-talk-lunches

Slides for the lightning talk lunches sponsored by Caktus Consulting Group
JavaScript
1
star
78

rapidsms-rerouter

Python
1
star
79

talks

HTML
1
star
80

offlinedatacollector

ShipIt Day Project: proof of concept for offline enabled data collection via a browser
JavaScript
1
star