diff options
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.rst | 98 |
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. - |