- django-example
- Quick start pour les gens pressés
- How to make it work
- Differences between this code and django tutorial
- Django-tequila
- Contact
django-example
Example of Hello World in Django with Tequila Authentication
Quick start pour les gens pressés
git clone git@github.com:epfl-sdf/django-example.git
cd django-example.git
./install_all.sh
./start.sh
Il faut utiliser tototutu comme password quand on vous le demande !
En moins de 3mn vous avez une installation Python/Django/Tequila qui tourne sur votre machine !
How to make it work
Virtualenv
Create and activate a virtualenv for the project:
sudo pip3virtualenv ./.venvin the project foldersource ./.venv/bin/activateto activate the virtualenv (on linux) Then run:pip install -r requirements/base.txt
Database
- Install MySQL on your system
- Create a database named
django_examples(CREATE DATABASE django_example;) - Create a user named
django_example(CREATE USER "django_example"@"localhost") - Set the password for user
django_example(SET password FOR "django_example"@"localhost" = password('db_password')) - Give all the rights on the database
django_exampleto the userdjango_example(GRANT ALL ON django_example.* TO "django_example"@"localhost")
Secrets file
Create a file named secrets.json in the django_example folder containing the following :
{
"SECRET_KEY": "what_you_want",
"DB_PASSWORD": "db_password"
}
This file is used to avoid having passwords in the git repository. The SECRET_KEY can be anything (it is “abcde” on my dev machine), it just needs to be unique and long in the production server.
Last setups
- Apply migrations to let Django setup the database. Inside the folder
django_examplewith the virtualenv activated, run :python manage.py makemigrationspython manage.py migrate
- Giving yourself login rights to the
loggedpage and to the admin :python manage.py createsuperuser --username=<username_tequila> --email=<email_epfl>
Make it run
python manage.py runserver- In a browser go to
http://localhost:8000/hello_world/ - The admin can be found on
http://localhost:8000/admin/
Differences between this code and django tutorial
In this example we adopt a different project layout from the tutorial, following a set of good practices used on other EPFL projects and presented in the book Two scoops of Django. Here are the changes :
- All the requirements file are under the requirements folder. The
base.txtcontains the packages needed on all the systems in which the project might run (dev computer, test server, production server). We can in the future create new requirements file for specific purposes, for example aci.txtfile to setup specific packages for continuous integration not needed in other setups (coverage, flake8, etc…) - the base
urls.pyfile and thewsgi.pyfile are under the config folder. - the
settings.pyfile is now underconfig/base.pyfor exactly the same reasons as the requirements, in the futur we will need different configs depending on the environment
Django-tequila
You can find django-tequila documentation here
Contact
Made by Gil Brechbühler. E-Mail : gil.brechbuhler@epfl.ch, do not hesitate to ask any question.