Package: django-app-skeleton
Django App SkeletonVersion:1.0.3Docs:http://github.com/callowayproject/django-app-skeleton/Download:http://pypi.python.org/pypi/django-app-skeleton/Source:http://github.com/callowayproject/django-app-skeleton/Change Log1.0.3Bug fixes1.0.2Windows compatibility1.0.1Updated example app so the code is more up to date with django1.0Default configuration file.djasVirtualenv creation is now optionalAdded command-line argument for using virtualenvcreate_appwas renamed tocreate_pkgApp skeleton is compatible with django’sstartappcommandBunch of code tweaks, should be easier to read and debugSee all the changes:https://github.com/callowayproject/django-app-skeleton/pull/6Generating a Packagable Django ApplicationThecreate_pkg.pyuses several variables to replace within a “template”
directory. The default template directory is included and called “skel”.Running the scriptFirst, clone this repo or usepipto install the package:$ pip install django-app-skeletonThe script is interactive, although you can specify some options when you
call it. Calling the script is as easy as:python create_pkg.pyand the script will ask you for everything it needs.Package Name:django-coolappApp Name [coolapp]:Author [johnnycool]:Johnny CoolAuthor Email [johnnycool@example.com]:Destination DIR [/path/to/package/destination]:Template DIR [/path/to/package/template]:Use Virtualenv [n]:yVirtualenv Name [coolapp]:You can specify some or all of the options when calling the script.Command-line OptionsBelow are the possible commands to supplied thecreate_pkg.pyscript. If any
of the values are present, no prompt will be displayed for its value.-a,--authorThe name of the author.-e,--emailThe email of the author-p,--packageThe name of the installed package, like ‘django-coolapp’.-n,--nameThe name of the application, like ‘coolapp’.-i,--use-venvWheater or not to create a virtualenv-v,--virtenvThe name of the virtualenv to create. Only relative if–use-venvisy-d,--destWhere to put the new package. Relative paths are recognized.-t,--templateThe package template to use as a basis for the new application. Relative paths are recognized.Default Command optionsWhen the script is first run prompted you for the values or if they are supplied
via the command-line arguments, some of the values are set as defaults.A configuration filed located at~/.djasis created. Below is an example
configuration.[main]
author = Johnny Cool
author_email =johnnycool@example.comdestination_dir = /path/to/package/destination
template_dir = /path/to/package/template
use_venv = nUsing just the app skeletonIf all you want is theappskeleton, you can use the following command:$ django-admin.py startapp --template=/path/to/django-app-skeleton/skel/app_nameNoteOurskeletonis apackageskeletion, and django’sstartappcommand expects aappskeletion. Therefore the path above
points to just ourappskeleton.Variable SubstitutionThe script creates several substitution variables that it uses to substitute
for file names and within text files. If you want to create a custom package
template, below are the possible variables supplied to each file in the
skeleton.app_nameThe name supplied by-n,--name, or the answer toApplication name.pkg_nameThe name supplied by-p,--package, or the answer toPackage name. The default is theAPP_NAMEwithoutdjango-.pkg_authorThe value supplied by-a,--author, or the answer toAuthor. The default is the current user name.pkg_author_emailThe value supplied by-e,--author_email, or the answer toAuthor Email.secret_keyA randomly generated string of characters used in thesettings.pyfile.venvThe name supplied by-v,--virtenv, or the answer toVirtual environment name. The default is theAPP_NAME.The variables are referenced by surrounding them with{{, such as{{app_name}}. Here is an example from the setup.py file:setup(
    name = "{{app_name}}",
    version = __import__('{{pkg_name}}').get_version().replace(' ', '-'),
    url = '',
    author = '{{pkg_author}}',NotePreviously$$$$was used, this was changed to be{{in order for the
template, i.e./skel/app_nameto be usable withdjango-admin.py startapp –template=…, see below.In addition to{{ .. }}, anything with the name folder nameapp_nameis
also replaced with its correct value. This is also so make theappskeleton compatible with django’sstartappcommand.Other NotesThe suppliedexample(skel/app_name/example/)  application demonstrates
how you might reference your new application within a project. To clarify,
the project name refers to the parent directory created bycreate_pkgscript, if none is supplied using the-dswitch, while the app name refers to
your initial application name, development directory, etc. It is this latter
name you will find populated, as expected, in theexample/settings.pyfile.Note: Please don’t get confused by this when using identical names for both
project and application – only the application name counts unless you
intentionally change some related setting(s).ContributorsEric FlorenzanoCorey OordtJose SoaresJustin QuickAdam PattersonBen Margoli