Django app to explore directory.
Project description
Django File Explorer
A django app to explore the host machine directory.
It will provide following features:
- Allow user login
- Allow to set roles for user to delete and download directories.
- Allow user to upload single file.
Installation
Following command will help to install the package.
pip install django-file-explorer
Setup
- Add the app to setting.py file in INSTALLED_APPS section.
INSTALLED_APPS = [
...
'explorer.apps.ExplorerConfig',
]
- 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>> |
- 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:
- download
- delete
- upload
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 |
- 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-file-explorer-1.4.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f5e1b9011cdaa7de8b95036d05b8307cbc06fa922ff145080158812da93851f |
|
MD5 | 980e25f46ca7038ccdb30118078aa615 |
|
BLAKE2b-256 | e8d87fea416394db80ced65c6ac40f925a41fc22bfa3509e4c64d7ef56ce18cd |
Hashes for django_file_explorer-1.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af62ae960dfcf94df230b2962aec91307f130383737e427c2a2c2a636351ab73 |
|
MD5 | fde6b44f60d7ef170a05930d7374500f |
|
BLAKE2b-256 | 62f6882ba7ffcd1382dfe2325d8f6592e26b3ed77805967da3941d5c122ae03f |