#+TITLE: Django layer #+TAGS: framework|layer|programming [[file:img/django.png]] * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#key-bindings][Key bindings]] - [[#general-managment][General Managment]] - [[#fabric][Fabric]] - [[#files][Files]] - [[#interactive][Interactive]] - [[#server][Server]] - [[#southsyncdb][South/Syncdb]] - [[#test][Test]] * Description This layer adds support for the Python web framework [[https://www.djangoproject.com/][Django]] to Spacemacs. ** Features: - Test execution directly from emacs - Starting/stopping of the Django test server - Starting of an interactive Python shell in the current project for debugging - Fixed commands to open various Django specific settings files - Automatic deployment with [[http://www.fabfile.org][Fabric]] directly from emacs - Control of [[http://south.aeracode.org/][South]] database migration tool * Install To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =django= to the existing =dotspacemacs-configuration-layers= list in this file. * Key bindings Django related key bindings uses [[https://github.com/davidmiller/pony-mode][pony-mode]] and are behind the prefix ~SPC m j~ in =Python-mode=. Various configuration options for =pony-mode= are documented at [[http://www.deadpansincerity.com/docs/pony/configuration.html][deadpansincerity.com]]. ** General Managment | Key binding | Description | |-------------+---------------------------------------| | ~SPC m j m~ | Start a =pony-mode= managment session | ** Fabric | Key binding | Description | |---------------+----------------------------------| | ~SPC m j a f~ | Run a fabric command | | ~SPC m j a d~ | Deploy project with =fab deploy= | ** Files | Key binding | Description | |---------------+---------------------------------------------------------------| | ~SPC m j f s~ | Open the =settings.py= for this project | | ~SPC m j f c~ | Interactively display a setting value in the minibuffer | | ~SPC m j f t~ | Jump to template at point | | ~SPC m j f r~ | Jump to the view file that the URL resolves to (experimental) | ** Interactive | Key binding | Description | |---------------+----------------------------------------------------------------------------| | ~SPC m j i d~ | Run interpreter for this project's default database as an inferior process | | ~SPC m j i s~ | Open a Python shell with the current pony project's context loaded. | | | If the project has the django_extras package installed, then use the | | | excellent =shell_plus= command. Otherwise, fall back to =manage.py shell= | ** Server | Key binding | Description | |---------------+-------------------------------------------------------------------| | ~SPC m j r d~ | Stop the dev server | | ~SPC m j r o~ | Open a tab at the dev server | | ~SPC m j r r~ | Restart the dev server (works better with django_extras/werkzeug) | | ~SPC m j r u~ | Start or open the dev server | | ~SPC m j r t~ | Open a second server with a "throwaway" host/port | ** South/Syncdb | Key binding | Description | |---------------+--------------------------------------------| | ~SPC m j s c~ | Convert an existing app to south | | ~SPC m j s h~ | Create migration for modification | | ~SPC m j s i~ | Run the initial south migration for an app | | ~SPC m j s m~ | Migrate an app | | ~SPC m j s s~ | Run syncdb on the current project | ** Test | Key binding | Description | |---------------+------------------------------------------------------------------| | ~SPC m j t d~ | Move down the traceback one level | | ~SPC m j t e~ | Go to the file and line of the last stack trace in a test buffer | | ~SPC m j t o~ | Open the file in a traceback at the line specified | | ~SPC m j t t~ | Run the test(s) given by =command= | | ~SPC m j t u~ | Move up the traceback one level |