Skip to main content

A basic skeleton and script to make a packageable django application

Project description

The create_pkg.py uses several variables to replace within a “template” directory. The default template directory is included and called “skel”.

Running the script

First, clone this repo or use pip to install the package:

$ pip install django-app-skeleton

The script is interactive, although you can specify some options when you call it. Calling the script is as easy as:

python create_pkg.py

and the script will ask you for everything it needs.

Package Name: django-coolapp
App Name [coolapp]:
Author [johnnycool]: Johnny Cool
Author Email [johnnycool@example.com]:
Destination DIR [/path/to/package/destination]:
Template DIR [/path/to/package/template]:
Use Virtualenv [n]: y
Virtualenv Name [coolapp]:

You can specify some or all of the options when calling the script.

Command-line Options

Below are the possible commands to supplied the create_pkg.py script. If any of the values are present, no prompt will be displayed for its value.

-a, --author

The name of the author.

-e, --email

The email of the author

-p, --package

The name of the installed package, like ‘django-coolapp’.

-n, --name

The name of the application, like ‘coolapp’.

-i, --use-venv

Wheater or not to create a virtualenv

-v, --virtenv

The name of the virtualenv to create. Only relative if –use-venv is y

-d, --dest

Where to put the new package. Relative paths are recognized.

-t, --template

The package template to use as a basis for the new application. Relative paths are recognized.

Default Command options

When 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 ~/.djas is created. Below is an example configuration.

[main]
author = Johnny Cool
author_email = johnnycool@example.com
destination_dir = /path/to/package/destination
template_dir = /path/to/package/template
use_venv = n

Using just the app skeleton

If all you want is the app skeleton, you can use the following command:

$ django-admin.py startapp --template=/path/to/django-app-skeleton/skel/app_name

Variable Substitution

The 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_name

The name supplied by -n, --name, or the answer to Application name.

pkg_name

The name supplied by -p, --package, or the answer to Package name. The default is the APP_NAME without django-.

pkg_author

The value supplied by -a, --author, or the answer to Author. The default is the current user name.

pkg_author_email

The value supplied by -e, --author_email, or the answer to Author Email.

secret_key

A randomly generated string of characters used in the settings.py file.

venv

The name supplied by -v, --virtenv, or the answer to Virtual environment name. The default is the APP_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}}',

Contributors

  • Eric Florenzano

  • Corey Oordt

  • Jose Soares

  • Justin Quick

  • Adam Patterson

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-app-skeleton-1.0.tar.gz (248.6 kB view details)

Uploaded Source

File details

Details for the file django-app-skeleton-1.0.tar.gz.

File metadata

File hashes

Hashes for django-app-skeleton-1.0.tar.gz
Algorithm Hash digest
SHA256 d0d905f718e468c0b04c2c9762309155a09630d92b9691f5d0142f543aa3c37b
MD5 646352ede22f770b7dc60860825ec616
BLAKE2b-256 790a5265c3b4ffa2e32fec229a3277fd07484f44f49e265aa2126294fe783c86

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page