Skip to main content

A WebDAV server for Django.

Project description

Production ready WebDav extension for Django.

https://travis-ci.org/meteozond/djangodav.svg

Motivation

Django is a very popular tool which provides data representation and management. One of the key goals is to provide machine access to it. Most popular production ready tools provide json based api access. Which have their own advantages and disadvantages.

WebDav today is a standard for cooperative document management. Its clients are built in the modern operation systems and supported by the world popular services. But it very important to remember that it’s not only about file storage, WebDab provides a set of methods to deal with tree structured objects of any kind.

Providing WebDav access to Django resources opens new horizons for building Web2.0 apps, with inplace edition and providing native operation system access to the stored objects.

Difference with SmartFile django-webdav

Base resource functionality was separated into BaseResource class from the storage functionality which developers free to choose from provided or implement themselves.

Improved class dependencies. Resource class don’t know anything about url or server, its goal is only to store content and provide proper access.

Removed properties helper class. View is now responsible for xml generation, and resource provides actual property list.

Server is now inherited from Django Class Based View, and renamed to DavView.

Key methods covered with tests.

Removed redundant request handler.

Added FSResource and DBResource to provide file system and data base access.

Xml library usage is replaced with lxml to achieve proper xml generation code readability.

How to create simple filesystem webdav resource

1. Create resource.py

from django.conf import settings
from djangodav.base.resource import MetaEtagMixIn
from djangodav.fs.resource import DummyFSDAVResource

class MyDavResource(MetaEtagMixIn, DummyFSDAVResource):
    root = '/path/to/folder'

2. Register WebDav view in urls.py

from djangodav.acl import FullAcl
from djangodav.lock import DummyLock
from djangodav.views import DavView

from django.conf.urls import patterns

from .resource import TempDirWebDavResource

urlpatterns = patterns('',
    (r'^fsdav(?P<path>.*)$', DavView.as_view(resource_class=MyDavResource, lock_class=DummyLock,
     acl_class=FullAcl)),
)

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

DjangoDav-0.0.1b5.tar.gz (22.9 kB view details)

Uploaded Source

File details

Details for the file DjangoDav-0.0.1b5.tar.gz.

File metadata

  • Download URL: DjangoDav-0.0.1b5.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for DjangoDav-0.0.1b5.tar.gz
Algorithm Hash digest
SHA256 3da531c7d99052bb8e1ac08815f9cd1b4d26099c9758fd691bc1266f0b35eddb
MD5 48a036a582e5bcdf97f32f409a267dfa
BLAKE2b-256 93ed83a36688362ab11ca3b73450b57ca815b0fbac4ff435f71d2e4e4af8d895

See more details on using hashes here.

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