Skip to main content

Django app to explore directory.

Project description

Django File Explorer

A django app to explore the host machine directory.

It will provide following features:

  1. Allow user login
  2. Allow to set roles for user to delete and download directories.
  3. Allow user to upload single file.

Installation

Following command will help to install the package.

pip install django-file-explorer

Setup

  1. Add the app to setting.py file in INSTALLED_APPS section.
INSTALLED_APPS = [
    ...
    'explorer.apps.ExplorerConfig',
]
  1. If logging is required then add the following information to settings.py file:
EXPLORER = {
    'log_dir': MEDIA_ROOT / 'logs',
    'log_file': MEDIA_ROOT / 'logs' / 'access.log'
}

log_dir: This is the path where multiple user log files will be created. Each file contain information about the single user.

log_file: Path to a file containing log information.

Following is the example of single log line.

[25/Feb/2023 12:44:43:PM] GET | 200 | <<username>> | <<action>> | <<volume>> | <<pageNumber>> | <<location>> | <<checkboxIdx>> |
  1. Migrate the changes
python manage.py migrate

I you are managing DB separate then make following tables in database:

explorer_action

Name Position Data type Length Relation Not NULL? Type
id 1 bigint PK true None
name 2 character varying 120 true None
creation_date 3 timestamp with time zone true None

Add following actions to table:

  1. download
  2. delete
  3. upload
  4. unzip

Note: All PK are auto incremental.

explorer_volume

Name Position Data type Length Relation Not NULL? Type
id 1 bigint PK true None
name 2 character varying 120 true None
path 3 character varying 2048 true None
active 4 boolean true None
creation_date 5 timestamp with time zone true None

explorer_userrole

Name Position Data type Length Relation Not NULL? Type
id 1 bigint PK true None
creation_date 2 timestamp with time zone true None
user_id 3 integer FK true None
volume_id 4 bigint FK true None

Foreign Key Constraints

Name Columns Referenced Table
user_id (user_id) -> (id) auth_user
volume_id (volume_id) -> (id) explorer_volume

explorer_userrole_actions

Name Position Data type Length Relation Not NULL? Type
id 1 bigint PK true None
userrole_id 2 bigint FK true None
action_id 3 bigint FK true None

Foreign Key Constraints

Name Columns Referenced Table
userrole_id (userrole_id) -> (id) explorer_userrole
action_id (action_id) -> (id) explorer_action
  1. Add URL to urls.py file.
from django.urls import include

urlpatterns = [
    ...
    path('explorer/', include('explorer.urls'), name='explorer')
]

Add volumes to database by specifying its name and path. After that define the user roles for specific volume in user roles table.

Run

Go to explorer url SERVER:PORT/explorer and explore the volumes.

Author

Tahir Rafique

Releases

Date Version Summary
12-Jul-23 v1.6.1 Adding local bootstrap 4.6.2 files. This will correct the wrong appearance of UI when there is no Internet connection.
4-Jul-23 v1.6.0 Adding file unzip option.
16-Jun-23 v1.5.0 Separating vscode icons from this app.

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-file-explorer-1.6.1.tar.gz (69.2 kB view hashes)

Uploaded Source

Built Distribution

django_file_explorer-1.6.1-py3-none-any.whl (83.0 kB view hashes)

Uploaded Python 3

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