summaryrefslogtreecommitdiff
path: root/doc/web/howto/web-overview.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/web/howto/web-overview.html')
-rw-r--r--doc/web/howto/web-overview.html67
1 files changed, 67 insertions, 0 deletions
diff --git a/doc/web/howto/web-overview.html b/doc/web/howto/web-overview.html
new file mode 100644
index 0000000..6e70c4b
--- /dev/null
+++ b/doc/web/howto/web-overview.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+<title>Twisted Documentation: Overview of Twisted Web</title>
+<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
+ </head>
+
+ <body bgcolor="white">
+ <h1 class="title">Overview of Twisted Web</h1>
+ <div class="toc"><ol><li><a href="#auto0">Introduction</a></li><li><a href="#auto1">Twisted Web's Structure</a></li><li><a href="#auto2">Resources</a></li><li><a href="#auto3">
+ Web programming with Twisted Web
+ </a></li></ol></div>
+ <div class="content">
+ <span/>
+
+ <h2>Introduction<a name="auto0"/></h2>
+
+ <p>Twisted Web is a web application server written in pure
+ Python, with APIs at multiple levels of abstraction to
+ facilitate different kinds of web programming.
+ </p>
+
+ <h2>Twisted Web's Structure<a name="auto1"/></h2>
+
+ <p><img src="../img/web-overview.png"/></p>
+
+ <p>When
+ the Web Server receives a request from a Client, it creates
+ a Request object and passes it on to the Resource system.
+ The Resource system dispatches to the appropriate Resource
+ object based on what path was requested by the client. The
+ Resource is asked to render itself, and the result is
+ returned to the client.</p>
+
+ <h2>Resources<a name="auto2"/></h2>
+
+ <p>Resources are the lowest-level abstraction for applications
+ in the Twisted web server. Each Resource is a 1:1 mapping with
+ a path that is requested: you can think of a Resource as a
+ single <q>page</q> to be rendered. The interface for making
+ Resources is very simple; they must have a method named
+ <code>render</code> which takes a single argument, which is the
+ Request object (an instance of <code class="API"><a href="http://twistedmatrix.com/documents/12.1.0/api/twisted.web.server.Request.html" title="twisted.web.server.Request">twisted.web.server.Request</a></code>). This render
+ method must return a string, which will be returned to the web
+ browser making the request. Alternatively, they can return a
+ special constant, <code class="API"><a href="http://twistedmatrix.com/documents/12.1.0/api/twisted.web.server.NOT_DONE_YET.html" title="twisted.web.server.NOT_DONE_YET">twisted.web.server.NOT_DONE_YET</a></code>, which tells
+ the web server not to close the connection; you must then use
+ <code class="python">request.write(data)</code> to render the
+ page, and call <code class="python">request.finish()</code>
+ whenever you're done.
+ </p>
+
+ <h2>
+ Web programming with Twisted Web
+ <a name="auto3"/></h2>
+
+ <p>
+ Web programmers seeking a higher level abstraction than the Resource system
+ should look at <a href="https://launchpad.net/nevow" shape="rect">Nevow</a>.
+ Nevow is based on ideas previously developed in Twisted, but is now maintained
+ outside of Twisted to easy development and release cycle pressures.
+ </p>
+ </div>
+
+ <p><a href="index.html">Index</a></p>
+ <span class="version">Version: 12.1.0</span>
+ </body>
+</html> \ No newline at end of file