summaryrefslogtreecommitdiff
path: root/vendor/CherryPy-3.2.0/sphinx/source/concepts/basics.rst
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/CherryPy-3.2.0/sphinx/source/concepts/basics.rst')
-rw-r--r--vendor/CherryPy-3.2.0/sphinx/source/concepts/basics.rst98
1 files changed, 0 insertions, 98 deletions
diff --git a/vendor/CherryPy-3.2.0/sphinx/source/concepts/basics.rst b/vendor/CherryPy-3.2.0/sphinx/source/concepts/basics.rst
deleted file mode 100644
index 4fc5133..0000000
--- a/vendor/CherryPy-3.2.0/sphinx/source/concepts/basics.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-*******************************
-Your first CherryPy application
-*******************************
-
-The standard 'Hello world!' application takes less than 10 lines of code
-when written using CherryPy::
-
- import cherrypy
-
- class HelloWorld:
- def index(self):
- return "Hello world!"
- index.exposed = True
-
- cherrypy.quickstart(HelloWorld())
-
-We assume that you already have :doc:`installed </intro/install>` CherryPy.
-Copy the file above and save it locally as ``hello.py``, then start the
-application at the command prompt::
-
- $ python hello.py
-
-Direct your favorite web browser to http://localhost:8080 and you should
-see ``Hello world!`` printed there.
-
-How does it work?
------------------
-
-Let's take a look at ``hello.py``:
-
- * The ``import cherrypy`` statement imports the main CherryPy module.
- This is all that is required to have CherryPy working. Feel free to
- "import cherrypy" in an interactive session and see what's available!
- ``help(cherrypy)`` is also quite useful.
- * We declare a class named ``HelloWorld``. An instance of this class is the
- object that will be published by CherryPy. It contains a single method,
- named ``index``, which will get called when the root URL for the site is
- requested (for example, ``http://localhost/``). This method returns the
- **contents** of the Web page; in this case, the ``'Hello World!'`` string.
- Note that you don't have to subclass any framework-provided classes; in fact,
- you don't even have to use classes at all! But let's start with them for now.
- * The ``index.exposed = True`` is a necessary step to tell CherryPy that the
- ``index()`` method will be **exposed**. Only exposed methods can be called
- to answer a request. This feature allows the user to select which methods
- of an object will be accessible via the Web; non-exposed methods can't be
- accessed.
- * ``cherrypy.quickstart(HelloWorld())`` mounts an instance of the HelloWorld
- class, and starts the embedded webserver. It runs until explicitly
- interrupted, either with ``Ctrl-C`` or via a suitable signal (a simple
- ``kill`` on Unix will do it).
-
-When the application is executed, the CherryPy server is started with the
-default configuration. It will listen on ``localhost`` at port ``8080``. These
-defaults can be overridden by using a configuration file or dictionary
-(more on this later).
-
-Finally, the web server receives the request for the URL
-``http://localhost:8080``. It searches for the best method to handle the
-request, starting from the ``HelloWorld`` instance. In this particular case,
-the root of the site is automatically mapped to the ``index()`` method (similar
-to the ``index.html`` that is the standard page for conventional Web servers).
-The HelloWorld class defines an ``index()`` method and exposes it. CherryPy
-calls ``HelloWorld().index()``, and the result of the call is sent back to
-the browser as the contents of the index page for the website. All the
-dispatching and HTTP-processing work is
-done automatically; the application programmer only needs to provide the
-desired content as the return value of the ``index`` method.
-
-CherryPy structure
-------------------
-
-Most of the features of CherryPy are available through the :mod:`cherrypy`
-module. It contains several members:
-
- * :class:`cherrypy.engine <cherrypy.process.wspbus.Bus>`
- controls process startup, shutdown, and other events, including your own
- Plugins. See :doc:`/concepts/engine`.
- * :class:`cherrypy.server <cherrypy._cpserver.Server>` configures and controls
- the HTTP server.
- * :class:`cherrypy.request <cherrypy._cprequest.Request>` contains all
- the information that comes with the HTTP request, after it is parsed and
- analyzed by CherryPy.
- * :attr:`cherrypy.request.headers <cherrypy.lib.httputil.HeaderMap>`
- contains a mapping with the header options that were sent as part of
- the request.
- * :class:`cherrypy.session <cherrypy.lib.sessions.Session>` is a special
- mapping that is automatically generated and encoded by CherryPy; it can
- be used to store session-data in a persistent cookie. For it to work you
- have to enable the session functionality by setting 'tools.session.on' to
- True in your config.
- * :class:`cherrypy.response <cherrypy._cprequest.Response>` contains the
- data that is used to build the HTTP response.
- * :attr:`cherrypy.response.headers <cherrypy.lib.httputil.HeaderMap>`
- contains a mapping with the header options that will be returned by the
- server, before the contents get sent.
- * :attr:`cherrypy.response.body <cherrypy._cprequest.Response.body>` contains
- the actual contents of the webpage that will be sent as a response.
-