Metadata-Version: 1.1
Name: django-localsrv
Version: 0.1.2
Summary: Django app for serving static content from different sources (files, strings, urls, etc.) at custom paths, using custom HTTP headers. Intended as a more flexible option than Python's SimpleHTTPServer
Home-page: https://github.com/vladiibine/localsrv
Author: Vlad George Ardelean
Author-email: asdf@yopmail.com
License: MIT
Description: ===============================
        localsrv
        ===============================
        
        | |docs| |travis| |appveyor| |coveralls| |landscape| |scrutinizer|
        | |version| |downloads| |wheel| |supported-versions| |supported-implementations|
        
        .. |docs| image:: https://readthedocs.org/projects/localsrv/badge/?style=flat
            :target: https://readthedocs.org/projects/localsrv
            :alt: Documentation Status
        
        .. |travis| image:: http://img.shields.io/travis/vladiibine/localsrv/master.png?style=flat
            :alt: Travis-CI Build Status
            :target: https://travis-ci.org/vladiibine/localsrv
        
        .. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/vladiibine/localsrv?branch=master
            :alt: AppVeyor Build Status
            :target: https://ci.appveyor.com/project/vladiibine/localsrv
        
        .. |coveralls| image:: http://img.shields.io/coveralls/vladiibine/localsrv/master.png?style=flat
            :alt: Coverage Status
            :target: https://coveralls.io/r/vladiibine/localsrv
        
        .. |landscape| image:: https://landscape.io/github/vladiibine/localsrv/master/landscape.svg?style=flat
            :target: https://landscape.io/github/vladiibine/localsrv/master
            :alt: Code Quality Status
        
        .. |version| image:: http://img.shields.io/pypi/v/django-localsrv.png?style=flat
            :alt: PyPI Package latest release
            :target: https://pypi.python.org/pypi/django-localsrv
        
        .. |downloads| image:: http://img.shields.io/pypi/dm/django-localsrv.png?style=flat
            :alt: PyPI Package monthly downloads
            :target: https://pypi.python.org/pypi/django-localsrv
        
        .. |wheel| image:: https://pypip.in/wheel/django-localsrv/badge.png?style=flat
            :alt: PyPI Wheel
            :target: https://pypi.python.org/pypi/django-localsrv
        
        .. |supported-versions| image:: https://pypip.in/py_versions/django-localsrv/badge.png?style=flat
            :alt: Supported versions
            :target: https://pypi.python.org/pypi/django-localsrv
        
        .. |supported-implementations| image:: https://pypip.in/implementation/django-localsrv/badge.png?style=flat
            :alt: Supported imlementations
            :target: https://pypi.python.org/pypi/django-localsrv
        
        .. |scrutinizer| image:: https://img.shields.io/scrutinizer/g/vladiibine/localsrv/master.png?style=flat
            :alt: Scrutinizer Status
            :target: https://scrutinizer-ci.com/g/vladiibine/localsrv/
        
        **django-localsrv** is a django app that allows you to serve content (files, strings, etc.) at configurable paths, with configurable response HTTP headers.
        
        It's intended as a more useful test server than Python's SimpleHTTPServer, mainly because of the configuration options.
        
        * Free software: MIT license
        
        
        Installation
        ============
        
        For the love of mankind, please use virtualenv.
        
        ::
        
            pip install django-localsrv
        
        Then in your settings file of your django project (usually `settings.py`)
        
        ::
        
            INSTALLED_APPS = (
             ...
             'localsrv',
             ...
            )
        
        In your url configuration file (usually `urls.py`) add the root path to where you want to serve the content from
        
        ::
        
          from localsrv import urls as localsrv_urls
        
          urlpatterns = (
           ...
           # Put this at the end of the list, since it will capture any url beginning with /localsrv
           # You can also use a pattern like r'', and that will match any pattern that wasn't
           # matched by any other pattern. That can get confusing, so it's best to use a namespace
           # like the one in this example
           url(r'^localsrv/', include(localsrv_urls))
          )
          
        
        Additional steps for the eager ones
        ===================================
        The app includes a simple settings file, that you can use to start using the app instantly. It's the module **localsrv.test_settings**
        
        Let's use it!
        This app contains models, so we'll need to run migrations for our app
        
        ::
        
            django-admin.py migrate --settings=localsrv.settings
            
        This will create a sqlite database file in directory where the package was installed. If you don't have a problem with that, 
        you will be able to start the server now, and enjoy the app. If you want to integrate the app into some project of yours,
        though I advise against it, you can do so. I won't teach you how, but it's a simple matter of including 'localsrv' in the 
        INSTALLED_APPS list of the settings file of your project.
        
        Create a superuser, to access the admin web console:
        
        ::
        
            django-admin.py createsuperuser --settings=localsrv.test_settings
            
        And then run the server:
        
        ::
        
            django-admin.py runserver 0:8989 --settings=localsrv.test_settings
        
        Now you're ready to start configuring what content you're going to serve at the url /localsrv/
        
        Specifying the content to serve
        ===============================
        Since this is a django app, if you did all the above steps (setting the app as a member of the INSTALLED_APPS list is the important thing),
        you'll, you'll have access to the `Localsrv` entry on your django admin page.
        
        Working on a simpler, command line interface to the app, with perhaps a simple configuration dictionary.
        
        Things to know: there are at the moment 3 types of content that you can serve:
        
         + Strings
         + Content found at another URL
         + Files on the local file system (these are a little buggy at the moment, but still usable)
        
        To serve any of these, you need to create their corresponding resources. These are called `String Source`, `URL Source` and `File Source`.
        You'll find all of these on the admin page, in the entry for the app `Localsrv`. Try to create a `String Source`, and specify the content
        to be this JSON for example (you can use any string you wish, of course)
        
        .. code-block:: json
        
            {
                "asdf": "zxcv",
                "qwer": [1, 2, 3]
            }
        
        Also, along with the content, you can specify what additional HTTP Headers should be provided. Specifying these is easy. You must create
        a `Servable Http Header`, where you'll be prompted for a name (e.g. **content-type**) and a value (e.g. **application/json**)
        
        
        Now finally, you'll need to specify where to serve your content. This is done by creating a `Servable Content` object, on the same admin page.
        For it, you'll use a source that you defined previously, and (optionally) a header that you also defined. You'll also have to specify a path
        to serve this content from.
        
        Since in this example we introduced the url pattern `r'^localsrv/`, let's stick to this pattern and specify a path of `/localsrv/my_json`.
        The path you choose here can be anything (that ca be considered a URL). We namespaced the url with `/localsrv/` just to avoid any collisions
        with previous url pattern. The way `localsrv` handles requests is that it will respond to any unmatched URL, that starts with the namespace
        provided, so in our example **/localsrv/asdaf/4/foo/bar** will match the `localsrv` urls, and will return either a 404, or some content
        that you defined for this path.
        
        Finally, when accessing the URLs you configred (in our example `/localsrv/my_json`) you'll see your json string delivered with the proper
        content type header.
        
        
        Development
        ===========
        
        To run the all tests run::
        
            tox
        
        
        Changelog
        =========
        
        0.1.2 (2015-04-26)
        ------------------------------
        * Documentation chages only
        
        0.1.1 (2015-04-18)
        -----------------------------------------
        * Added test_settings module for running the app out of the box.
        
        0.1.0 (2015-04-18)
        -----------------------------------------
        
        * First release on PyPI.
        
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
