An easy to use project template for Django 1.8 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.
- Bcrypt to hash the passwords
- Django flat theme to style the admin.
- A fabfile to ease the deployment.
First create and activate your virtualenv, you can use virtualenvwrapper. Then install Django 1.8 in your virtualenv:
pip install django==1.8.6
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/development.txt
If you need a database, edit the settings and create one with
python manage.py syncdb
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.
There are some requirements files separated by environments (development and production), the requirements.txt in the root folder is needed for Heroku and only installs the production dependencies. In development you should install requirements/development.txt
pip install -r requirements/development.txt
Remember to add the packages you install in your virtual environment to the appropiate requirements file.
If you have trouble/can't install a package place it in the /libs
directory.