Django Filemanager

A simple Django app to browse files on server
Alternatives To Django Filemanager
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Strawberry3,241
a day ago379mitPython
A GraphQL library for Python that leverages type annotations 🍓
Zappa2,48738964 days ago129November 11, 2021487mitPython
Serverless Python
Ariadne2,0211029a day ago34April 22, 202255bsd-3-clausePython
Python library for implementing GraphQL servers using schema-first approach.
Server1,240
4 months ago41agpl-3.0Python
The Etebase server (so you can run your own)
Imooc Django845
a year ago4Python
高仿慕课网:py3.5 + Django1.10 + xadmin 搭建的在线课程教育平台
Django Sslserver59633773 years ago13December 10, 201934mitPython
A SSL-enabled development server for Django
Fastwsgi361
a month ago7February 23, 20225otherC
An ultra fast WSGI server for Python 3
Django Docker340
5 years ago2mitPython
A framework for deploying Django projects on Docker
Django Livereload Server339
363 months ago10December 14, 202117bsd-3-clausePython
Livereload functionality integrated with your Django development environment.
Chatire312
2 years ago14JavaScript
:speech_balloon: Real time Chat application built with Vue, Django, RabbitMQ and uWSGI WebSockets.
Alternatives To Django Filemanager
Select To Compare


Alternative Project Comparisons
Readme

Filemanager

travis Requirements Status Coverage Status

Filemanager is a simple Django app to browse files on server. You can also integrate this filemanager with CKEditor.

Requirements

  • Python (2.7, 3.4, 3.5, 3.6, 3.7)
  • Django (1.8, 1.11)

Screenshot

screenshot

Quick start

Install it by

pip install -e git+https://github.com/IMGIITRoorkee/django-filemanager.git#egg=django-filemanager

Add "filemanager" to your INSTALLED_APPS setting like this::

INSTALLED_APPS = (
    ...
    'filemanager',
)

Usage

  • As a filemanager : To upload files on server by a user to a directory and let him manage his directory by adding, renaming and deleting files and folders inside it.

  • Integrating it with CKEditor for the functionality of "Browse Server".

As a filemanager

In urls.py of your app to make filemanager run at url /abc/.

from django.conf.urls import url

from filemanager import path_end
from views import view

urlpatterns = (
   .
   .
   url(r'^abc/' + path_end, view, name='view'),
)

Then write the view in views.py of your app:

from django.conf import settings

from filemanager import FileManager


def view(request, path):
    extensions = ['html', 'htm', 'zip', 'py', 'css', 'js', 'jpeg', 'jpg', 'png']
    fm = FileManager(settings.MEDIA_ROOT, extensions=extensions)
    return fm.render(request, path)

And it is done, you can find above code in tests directory.

Adding constraints to Filemanager : FileManager __init__ is defined as:

def __init__(self, basepath, ckeditor_baseurl='', maxfolders=50, maxspace=5 * 1024, maxfilesize=1 * 1024,
             public_url_base=None, extensions=None):
    """
    basepath: User's directory basepath in server.
    maxfolders: Maximum number of total nested folders allowed inside the user directory.
    maxspace (in KB): Maximum space allowed for the user directory.
    maxfilesize (in KB): Limit for the size of an uploaded file allowed in user directory.
    extensions: List of extensions allowed. Ex. ['pdf','html'] etc.
    public_base_url: A base_url if given there will be an option to copy file url with the given url_base.
    """

Hence one should also pass arguments like maxfolders, maxspace, maxfilesize if one doesn't want to use the default ones. If extensions list is not passed then all file-extensions are allowed for upload.

Integrating with CKEditor

Use filemanager.models.CKEditorField field in you model. Or you can use filemanager.widgets.CKEditorWidget as a widget for CKEditor in forms. Both classes can take an extra argument filemanager_url while making instances from them.

Suppose you want to run filemanager at url /abc/ in your app then make changes in urls.py and views.py like above. Then in CKEditorField or CKEditorWidget pass the url of filemanager as argument filemanager_url. For example in models.py:

from django.db import models

from filemanager.models import CKEditorField


class MyModel(models.Model):
    content = CKEditorField(filemanager_url='/app/abc/')
Popular Server Projects
Popular Django Projects
Popular Networking Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Server
Django
File Manager
Ckeditor