Sylvain Hellegouarch avatar Sylvain Hellegouarch committed b99cf0d

Edited online

Comments (0)

Files changed (1)

+== Welcome to cherrypy.org ==
+
+CherryPy is a pythonic, object-oriented HTTP framework.
+
+CherryPy allows developers to build web applications in much the same way they would build any other object-oriented Python program. This results in smaller source code developed in less time.
+
+CherryPy is now more than six years old and it is has proven very fast and stable. It is being used in production by many sites, from the simplest ones to the most demanding ones.
+
+Oh, and most importantly: CherryPy is **fun** to work with :-) Here's how easy it is to write "Hello World" in CherryPy 3:
+
+{{{
+#!python
+import cherrypy
+
+class HelloWorld(object):
+    def index(self):
+        return "Hello World!"
+    index.exposed = True
+
+cherrypy.quickstart(HelloWorld())
+}}}
+
+Examples: [[https://bitbucket.org/Lawouach/cherrypy/src/d492efa42f83/cherrypy/tutorial/tut01_helloworld.py|Hello World]] & [[https://bitbucket.org/Lawouach/cherrypy/src/d492efa42f83/cherrypy/tutorial/tut03_get_and_post.py|What is your name?]]
+
+== Quick Facts ==
+
+ * Your CherryPy powered web applications are in fact **stand-alone Python applications embedding their own multi-threaded web server**. You can deploy them anywhere you can run Python applications. Apache is not required, but it's possible to run a CherryPy application behind it (or lighttpd, or IIS). CherryPy applications run on Windows, Linux, Mac OS X and any other platform supporting Python.
+
+ * You write request handler classes that you tie together in a tree of objects, starting with a root object.!CherryPy maps incoming request URIs to this object tree. The URI '/' represents the 'root' object, '/users/' the 'root.users' object, and so on. Requests are handled by methods inside these request handler classes. GET/POST parameters are passed as standard method parameters; '/users/display?id=123' will call root.users.display(id = '123'). The methods' return strings are then passed back to the browser. You have complete control over which methods are exposed through the web and which ones aren't. [And if you don't like any of the above, you can swap any part of it out!]
+
+ * Beyond this functionality, CherryPy pretty much stays out of your way. You are free to use any kind of templating, data access etc. technology you want. CherryPy can also handle sessions, static files, cookies, file uploads and everything you would expect from a decent web framework.
+
+== Features ==
+
+ * A **fast**, [[http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html#sec1.2|HTTP/1.1-compliant]], [[http://www.python.org/dev/peps/pep-0333/|WSGI]] thread-pooled webserver. Typically, CherryPy itself takes only 1-2ms per page!
+ * Support for any other [[http://www.python.org/dev/peps/pep-0333/|WSGI]]-enabled webserver or adapter, including Apache, IIS, lighttpd, mod_python, FastCGI, SCGI, and mod_wsgi
+ * Easy to run multiple HTTP servers (e.g. on multiple ports) at once
+ * A powerful [[ConfigAPI|ConfigAPI]] configuration system] for developers and deployers alike
+ * A flexible [[CustomTools|CustomTools plugin system]]
+ * Built-in tools for caching, encoding, sessions, authorization, static content, and [[BuiltinTools|BuiltinTools many more]]
+ * A native mod_python adapter
+ * A complete test suite
+ * Swappable and customizable...everything.
+ * Built-in profiling, coverage, and testing support.
+
+== Versions ==
+
+||Branch||Status||What's New         ||Upgrading          ||Browse Source||
+||3.2   ||3.2.0 ||[[WhatsNewIn32|WhatsNewIn32]]||[[UpgradeTo32|UpgradeTo32]] ||[[https://bitbucket.org/Lawouach/cherrypy/src/94413a62e00b|branches/cherrypy-3.2.x]]||
+||3.1   ||3.1.2 ||[[WhatsNewIn31|WhatsNewIn31]]||[[UpgradeTo31|UpgradeTo31]] ||[[https://bitbucket.org/Lawouach/cherrypy/src/4c7d91d0b329|branches/cherrypy-3.1.x]]||
+||3.0   ||3.0.4 ||[[WhatsNewIn30|WhatsNewIn30]]||[[UpgradeTo30|UpgradeTo30]] ||[[https://bitbucket.org/Lawouach/cherrypy/src/8fc7e3134935|branches/cherrypy-3.0.x]]||
+||2.2   ||2.2.1 ||[[WhatsNewIn22|WhatsNewIn22]]||[[UpgradeTo22|UpgradeTo22]] ||[[https://bitbucket.org/Lawouach/cherrypy/src/d4aa0b50c000|branches/cherrypy-2.x]]||
+||2.1   ||2.1.1 ||[[WhatsNewIn21|WhatsNewIn21]]||                   ||[[https://bitbucket.org/Lawouach/cherrypy/src/ad808ea6a166|branches/cherrypy-2.1]]||
+||2.0   ||2.0.0 ||                   ||[[UpgradeTo20|UpgradeTo20]] ||[[https://bitbucket.org/Lawouach/cherrypy/src/d9c097bbc8ec|tags/cherrypy-2.0.0]]||
+
 {{{
 #!html
 <div style='float: right; width: 33%; border: 1px solid #990000; background-color: #FFF8F8; margin: 1em; padding: 0;'>
     </div>
 </div>
 }}}
-
-= Welcome to cherrypy.org =
-
-!CherryPy is a pythonic, object-oriented HTTP framework.
-
-!CherryPy allows developers to build web applications in much the same way they would build any other object-oriented Python program. This results in smaller source code developed in less time.
-
-!CherryPy is now more than six years old and it is has proven very fast and stable. It is being used in production by many sites, from the simplest ones to the most demanding ones.
-
-Oh, and most importantly: !CherryPy is '''fun''' to work with :-) Here's how easy it is to write "Hello World" in CherryPy 3:
-
-{{{
-#!python
-import cherrypy
-
-class HelloWorld(object):
-    def index(self):
-        return "Hello World!"
-    index.exposed = True
-
-cherrypy.quickstart(HelloWorld())
-}}}
-
-Examples: [http://www.cherrypy.org/file/trunk/cherrypy/tutorial/tut01_helloworld.py Hello World] & [http://www.cherrypy.org/file/trunk/cherrypy/tutorial/tut03_get_and_post.py What is your name?]
-
-== Quick Facts ==
-
- * Your !CherryPy powered web applications are in fact '''stand-alone Python applications embedding their own multi-threaded web server'''. You can deploy them anywhere you can run Python applications. Apache is not required, but it's possible to run a !CherryPy application behind it (or lighttpd, or IIS). !CherryPy applications run on Windows, Linux, Mac OS X and any other platform supporting Python.
-
- * You write request handler classes that you tie together in a tree of objects, starting with a root object. !CherryPy maps incoming request URIs to this object tree. The URI '/' represents the 'root' object, '/users/' the 'root.users' object, and so on. Requests are handled by methods inside these request handler classes. GET/POST parameters are passed as standard method parameters; '/users/display?id=123' will call root.users.display(id = '123'). The methods' return strings are then passed back to the browser. You have complete control over which methods are exposed through the web and which ones aren't. [And if you don't like any of the above, you can swap any part of it out!]
-
- * Beyond this functionality, !CherryPy pretty much stays out of your way. You are free to use any kind of templating, data access etc. technology you want. !CherryPy can also handle sessions, static files, cookies, file uploads and everything you would expect from a decent web framework.
-
-== Features ==
-
- * A '''fast''', [http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html#sec1.2 HTTP/1.1-compliant], [http://www.python.org/dev/peps/pep-0333/ WSGI] thread-pooled webserver. Typically, CherryPy itself takes only 1-2ms per page!
- * Support for any other [http://www.python.org/dev/peps/pep-0333/ WSGI]-enabled webserver or adapter, including Apache, IIS, lighttpd, mod_python, FastCGI, SCGI, and mod_wsgi
- * Easy to run multiple HTTP servers (e.g. on multiple ports) at once
- * A powerful [wiki:ConfigAPI configuration system] for developers and deployers alike
- * A flexible [wiki:CustomTools plugin system]
- * Built-in tools for caching, encoding, sessions, authorization, static content, and [wiki:BuiltinTools many more]
- * A native mod_python adapter
- * A complete test suite
- * Swappable and customizable...everything.
- * Built-in profiling, coverage, and testing support.
-
-== How To Use This Site ==
-
-This site contains the official documentation for !CherryPy. You can find more information about !CherryPy using the TableOfContents, the TitleIndex, or the [/search Search page].
-
-== Versions ==
-
-||Branch||Status||What's New         ||Upgrading          ||Browse Source||
-||3.2   ||3.2.0 ||[wiki:WhatsNewIn32]||[wiki:UpgradeTo32] ||source:branches/cherrypy-3.2.x||
-||3.1   ||3.1.2 ||[wiki:WhatsNewIn31]||[wiki:UpgradeTo31] ||source:branches/cherrypy-3.1.x||
-||3.0   ||3.0.4 ||[wiki:WhatsNewIn30]||[wiki:UpgradeTo30] ||source:branches/cherrypy-3.0.x||
-||2.2   ||2.2.1 ||[wiki:WhatsNewIn22]||[wiki:UpgradeTo22] ||source:branches/cherrypy-2.x||
-||2.1   ||2.1.1 ||[wiki:WhatsNewIn21]||                   ||source:branches/cherrypy-2.1||
-||2.0   ||2.0.0 ||                   ||[wiki:UpgradeTo20] ||source:tags/cherrypy-2.0.0||
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.