An easy to use project template for Django 1.10 that follows best practices.
- Compatible with python 2.7 and 3.4
- Django compressor to compress JS and CSS and compile LESS/SASS files.
- Django debug toolbar enabled for superusers.
- Argon2 to hash the passwords
- A fabfile to ease the deployment.
- use React
First create and activate your virtualenv, you can use virtualenvwrapper. Then install Django 1.10 in your virtualenv:
pip install django==1.10
To create a new Django project (make sure to change project_name
)
django-admin.py startproject --template=https://github.com/fasouto/django-starter-template/archive/master.zip --extension=py,md,html,txt,less project_name
cd to your project and install the dependences
pip install -r requirements.txt
If you need a database, edit the settings and create one with
python manage.py migrate
Once everything it's setup you can run the development server: http://localhost:8000/
python manage.py runserver
Settings are divided by environments: production.py, development.py and testing.py. By default it uses development.py, if you want to change the environment set a environment variable:
export DJANGO_SETTINGS_MODULE="my_project.settings.production"
or you can use the settings
param with runserver:
python manage.py runserver --settings=my_project.settings.production
If you need to add some settings that are specific for your machine, rename the file local_example.py
to local_settings.py
. This file it's in .gitignore so the changes won't be tracked.
Bootstrap 3 LESS files are included and compiled with django_compressor. There's an file less/app.less
where you should put your CSS to avoid overriding the bootstrap LESS files, so you can update bootstrap easily.
Make sure you have lessc installed on your production server, for development it uses less.js.
We are following Kenneth Reitz's pip workflow to handle requirements files. The requirements_to_freeze.txt
contains unpinned requirements and requirements.txt
contains the pinned versions to use in a deployment.
If you have trouble/can't install a package place it in the /libs
directory.
- Add webpack with live SASS reloading.
- Once we have webpack upgrade to bootstrap 4
- Add gitlab.ci
- Improve tox.ini
- Improve deployment, get rid of fabric. Investigate feasible options. Maybe add a deploy to heroku/docker cloud.
- Add some example code and tests.