Skip to main content

A Django app providing simple rest attachment upload and download.

Project description

Django Rest Attachment

Django Free Attachment is a Django app to provide a simple attachment service independent of any other model.

Detailed documentation is in the "docs" directory.

Quick start

  1. Setup environment
mkdir django
cd django
python -m venv .venv
source .venv/bin/activate

# Create requirements.txt file
cat <<EOF > requirements.txt
django<3,>=2.2
setuptools
djangorestframework
EOF

pip install -r requirements.txt
  1. Start Project
django-admin startproject proj
  1. Add "attachment" to your INSTALLED_APPS setting like this::
    INSTALLED_APPS = [
        ...
        'rest_framework',
        'attachment',
    ]
  1. Add Media settings, if you have done this, ignore this step
MEDIA_DIR = os.path.join(BASE_DIR, "media")


MEDIA_ROOT = MEDIA_DIR
MEDIA_URL = '/media/'
  1. add routers.py to pro folder (the save folder with urls.py)
# routers.py

from rest_framework import routers
from attachment.viewsets import AttachmentViewSet

router = routers.SimpleRouter()
router.register(r'attachment', AttachmentViewSet, basename='attachment')
  1. Include the attachment and api URLconf in your project urls.py like this::
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
from .routers import router

urlpatterns = [
  ....
  path('api/', include(router.urls), name='api'),
  path('attachment/', include('attachment.urls'), name='attachment'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  1. Run python manage.py migrate to create the polls models.

  2. Add superuser

python manage.py createsuperuser
python manage.py runserver
  1. Start the development server and visit http://127.0.0.1:8000/admin/

Test

  1. Visit http://127.0.0.1:8000/admin/attachment/ to upload a attachment from admin

  2. Using Postman to post a REST request:

  • add X-CSRFToken to header

  • add session id to Postman Cookies

Postman can automatically extract session from chrome browser refer Postman Doc

image

images

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-rest-attachment-0.2.1.tar.gz (410.9 kB view hashes)

Uploaded Source

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