Reusable Django Packages/Apps: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
Line 17: Line 17:
=== Amazon S3 ===
=== Amazon S3 ===


Upload to a public Amazon S3 bucket via web browser.
==== Upload through web browser ====


* [https://s3.console.aws.amazon.com/s3/ Open the Amazon S3 console].  
* [https://s3.console.aws.amazon.com/s3/ Open the Amazon S3 console].  
* Click on the bucket where the packages are stored, then click '''Upload'''.
* Click on the bucket where the packages are stored, then click '''Upload'''.
* Either drag the package files onto the page, or click '''Add Files'''.
* Either drag the package files onto the page, or click '''Add Files'''.
==== Upload on command line ====
Requires [https://docs.aws.amazon.com/cli/ aws cli].
View contents of a bucket:
<pre>
$ aws s3 ls <bucket-name>
</pre>
Use `s3 mv`, `s3 cp`, `s3 sync`, and `s3 rm` to manage files in the bucket.
For example, to copy a new package to the S3 bucket:
<pre>
$ aws s3 cp ./my-django-pkg-0.0.1.tar.gz s3://my-bucket/path --acl public-read
</pre>


== Installing, uninstalling, and updating apps ==
== Installing, uninstalling, and updating apps ==

Revision as of 17:41, 27 December 2020

Overview

Notes on workflow and best practices for creating and maintaining reusable packages/apps in Django.[1]

Packaging an app

$ cd /path/to/app/source/dir/
$ python setup.py sdist

Distribution

Packages need to be available somewhere public in order for use in deployed web apps.

Amazon S3

Upload through web browser

  • Open the Amazon S3 console.
  • Click on the bucket where the packages are stored, then click Upload.
  • Either drag the package files onto the page, or click Add Files.

Upload on command line

Requires aws cli.

View contents of a bucket:

$ aws s3 ls <bucket-name>

Use s3 mv, s3 cp, s3 sync, and s3 rm to manage files in the bucket.

For example, to copy a new package to the S3 bucket:

$ aws s3 cp ./my-django-pkg-0.0.1.tar.gz s3://my-bucket/path --acl public-read

Installing, uninstalling, and updating apps

$ pip uninstall django-addresses
$ pip install ~/develop/labs/shared/django-addresses/dist/django-addresses-1.2.1.tar.gz

Make sure to take at all the versions stored in the dist directory to confirm that the latest version is being installed, i.e. don't assume that there is only one version stored there.

Using an app in a Django project

Add the app name under INSTALLED_APPS in the project's settings.py file.

# my_project/settings.py

# ...

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiels',
    'contact_info',
)

Confirming the version of an installed app

Use the pip show command, e.g.:

$ pip show django-contact_info

Notes

See also

References

  1. How to write reusable apps - Django Documentation