Skip to main content

A more traditional web server

Project description

About the project

MiniPyP (pronounced mini·pipe) is an event-driven web server written in pure Python. However, MiniPyP is not an application framework. It’s a full web server, with virtual hosts, reverse proxies, and everything else you need. MiniPyP is intended to replace Apache and nginx, so you can use Python without the performance hit of CGI.

MiniPyP has some more advanced features right out of the box, too. For example, when a user goes to /some/url on your server, and the directory’s static option is set to False (default), the server will look for the file /some/url. If it doesn’t exist, but the file /some does, that file will be served. Extensions do not need to be specified with the static option set to False. In addition, if a file does not exist but a file named catchall exists, it will be served instead of a 404. This makes creating a single-page application that much more elegant.

Setup

First, install MiniPyP via pip.

pip install python

Now let’s start a server on *:80. The default document root is /var/www/html.

from minipyp import MiniPyP

MiniPyP().start()

Some more basic options include sites (aka virtual hosts) and directory options.

from minipyp import MiniPyP

sites = [
    {
        'uris': ['mysite.com', 'www.mysite.com']
        'root': '/var/www/mysite'
    }
]

directories = {
    '/': {
        'public': False
    }
    '/var/www': {
        'public': True,
        'indexing': False
    }
}

MiniPyP(root='/var/www/default', sites=sites, directories=directories).start()

Creating a page

To create a page (e.g. ‘https://mysite.com/test’), create a file called test.py in mysite.com’s root with the following:

def render(minipyp, request):
    return '<p>You requested the page <code>' + request.uri + '</code>.</p>'

You should now understand basic use of MiniPyP. Visit the documentation to learn all of your options.

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

minipyp-0.1.0a2.tar.gz (7.7 kB view hashes)

Uploaded Source

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