📄 175.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Robots" content="INDEX,NOFOLLOW">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<TITLE>Safari | Python Developer's Handbook -> Third-Party Internet Applications</TITLE>
<LINK REL="stylesheet" HREF="oreillyi/oreillyN.css">
</HEAD>
<BODY bgcolor="white" text="black" link="#990000" vlink="#990000" alink="#990000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" cellpadding=5 cellspacing=0 border=0 class="navtopbg"><tr><td><font size="1"><p class="navtitle"><a href="8.html" class="navtitle">Web Development</a> > <a href="0672319942.html" class="navtitle">Python Developer's Handbook</a> > <a href="171.html" class="navtitle">11. Web Development</a> > <span class="nonavtitle">Third-Party Internet Applications</span></p></font></td><td align="right" valign="top" nowrap><font size="1"><a href="main.asp?list" class="safnavoff">See All Titles</a></font></td></tr></table>
<TABLE width=100% bgcolor=white border=0 cellspacing=0 cellpadding=5><TR><TD>
<TABLE border=0 width="100%" cellspacing=0 cellpadding=0><TR><td align=left width="15%" class="headingsubbarbg"><a href="174.html" title="Configuring Web Servers for Python/CGI Scripts"><font size="1">< BACK</font></a></td><td align=center width="70%" class="headingsubbarbg"><font size="1"><a href="popanote.asp?pubui=oreilly&bookname=0672319942&snode=175" target="_blank" title="Make a public or private annnotation">Make Note</a> | <a href="175.html" title="Use a Safari bookmark to remember this section">Bookmark</a></font></td><td align=right width="15%" class="headingsubbarbg"><a href="176.html" title="Other Applications"><font size="1">CONTINUE ></font></a></td></TR></TABLE>
<a href="5%2F31%2F2002+4%3A43%3A36+PM.html" TABINDEX="-1"><img src=images/spacer.gif border=0 width=1 height=1></a><font color=white size=1>152015024128143245168232148039199167010047123209178152124239215162148047091216156219053001</font><a href="read9.asp?bookname=0672319942&snode=175&now=5%2F31%2F2002+4%3A43%3A36+PM" TABINDEX="-1"><img src=images/spacer.gif border=0 width=1 height=1></a><br>
<FONT>
<h3>Third-Party Internet Applications</h3>
<p>Some completely developed Web applications, written in Python, are available for general use. You don't need to do any programming to use them. You just have to install, configure, and use them.</p>
<H4>Grail Web Browser</H4>
<P>Grail is a free Web browser written entirely in Python, using the Tkinter GUI (Tk, which is a free UI toolkit developed by John Ousterhout). Grail has the capability to manipulate SGML, HTML, URL's, images, and sound. Besides, it is easily extended to offer new functionality.</P>
<p>Being written in Python helps Grail to have a high adhesion to the Python language. Something similar happens to HotJava, which is a browser written entirely in Java.</p>
<p>For documentation and downloads, check out the following sites:</p>
<P>
<A TArget="_blank" HREF="http://grail.python.org">http://grail.python.org</a> and <a target="_blank" href="http://grail.cnri.reston.va.us/grail/">http://grail.cnri.reston.va.us/grail/</a>
</p>
<p>Grail should run on any UNIX system to which Python and Tk have been ported梩hat is, almost all UNIX systems supporting X11. In particular, Grail is one of the few Web browsers that supports Solaris for Intel x86 processors. It now also runs on Windows and Macintosh because there are now stable ports of Tk to those platforms (you need a lot of RAM though). Grail supports the protocols and file formats commonly found on the World Wide Web, such as HTTP, FTP, and HTML. However, it is easily extended to support new protocols or file formats. Grail is distributed by CNRI in source form, free of charge (without warranties), and can be freely redistributed (within reason). Grail has not been worked on for a while, and doesn't support any of the latest standards you might expect in a browser.<a name="idx1073746260"></A><a nAme="idx1073746261"></a><A name="idx1073746262"></A><a naME="idx1073746263"></A><A name="idx1073746264"></A><A NAme="idx1073746265"></a><a NAME="idx1073746266"></a><a naME="idx1073746267"></A><A name="idx1073746268"></a><a name="idx1073746269"></a><a name="idx1073746270"></a><a naMe="idx1073746271"></a></P>
<p>Grail's design tries to provide a plug-in architecture, which allows the browser to easily support applets written in Python. Grail lets you download Python programs that execute inside Grail on your local machine. These little applications, which are called <a nAme="idx1073746272"></a><i>applets</I> can do things such as display animations, interact with the user in new ways, even create additional menus that pop up dialogs if you like. Grail applets run in a restricted execution environment, so broken or malicious applets (<a naME="idx1073746273"></A><I>Trojan Horses</i>) can't erase your files or crash your computer.</p>
<p>Grail's Web site has an applet demo collection that you can explore.</p>
<P>Grail has many positive qualities, such as support to full HTML 2.0, including images, forms and image maps, as well as many HTML 3.2 features. It uses asynchronous document transfer and supports printing and saving documents, searching, bookmarks, history, and more. It also supports frames, file upload in forms, support for JPEG, TIFF, and XBM images, image printing, and tables (within the limitations of the Tk toolkit). It has preference panels, an I/O status display, a remote control interface, and many other nice features.</P>
<P>Apart from running applets, Grail is extensible in other areas, by writing so-called Grail plug-in modules. Grail plug-ins can be written for a number of new implementations, such as protocols (for example, CNRI's handle protocol), file formats (for example, for handling JPEG or sound directly), HTML tags (for example, tables), and preference panels. Check out the following site for more information:<A name="idx1073746274"></A><A NAme="idx1073746275"></a><a NAME="idx1073746276"></a><a name="idx1073746277"></a><a name="idx1073746278"></a><a name="idx1073746279"></a><a NamE="idx1073746280"></a></p>
<p><I>Grail桾he Browser For The Rest Of Us (DRAFT),</i> by Guido van Rossum</p>
<p>
<a TargET="_blank" HRef="http://grail.cnri.reston.va.us/grail/info/papers/restofus.html">http://grail.cnri.reston.va.us/grail/info/papers/restofus.html</a><a NAME="idx1073746281"></a><a naME="idx1073746282"></A><A name="idx1073746283"></A><A NAme="idx1073746284"></a><a name="idx1073746285"></a>
</p>
<h4>Zope Web Application Server</h4>
<p>The Z Object Publishing Environment, also known as Zope, is an open source object publishing system for the Web, developed by a company called <a name="idx1073746286"></a>Digital Creations. Zope is a complete dynamic Web site management Web platform used for building high-performance, dynamic Web sites. Essentially, it is a very complete framework for building Web applications, written in Python.</p>
<P>Check out the following sites for details: </p>
<p><A tarGet="_blank" hrEf="http://www.digicool.com">http://www.digicool.com</a> and <a TARGet="_blank" hrEF="http://www.zope.org">http://www.zope.org</A></P>
<p>Zope is the leading Open Source Web-application server. Zope enables teams to collaborate in the creation and management of dynamic Web-based business applications such as intranets and portals. It also makes it easy to build features such as site search, news, personalization, and e-commerce into your Web applications.</p>
<p>Zope is a long running process, has a sophisticated authentication/authorization model, and has a useful SQL related product called <a NAME="idx1073746287"></a><a naME="idx1073746288"></A><A name="idx1073746289"></a><a name="idx1073746290"></a><i>ZSQLMethod,</i> which provides an easy way to access a database from the Web application.</p>
<p>The following link is a technical introduction to object publishing with Zope. The document introduces Zope's object publishing facilities and shows you how to write and publish your own objects in Python. It has an excellent tutorial on integrating a Python module with the Zope ORB, Templates and Object Database.<a name="idx1073746291"></A><a nAme="idx1073746292"></a><A name="idx1073746293"></A><a naME="idx1073746294"></A><A name="idx1073746295"></A><A NAme="idx1073746296"></a><a NAME="idx1073746297"></a><a naME="idx1073746298"></A><A name="idx1073746299"></a><a name="idx1073746300"></a><a name="idx1073746301"></a><a naMe="idx1073746302"></a></P>
<p><a tArget="_blank" Href="http://www.zope.org/Members/Amos/WhatIsObjectPublishing">http://www.zope.org/Members/Amos/WhatIsObjectPublishing</A></P>
<P>All requests made to the application server are mapped to Python objects. Therefore, whenever you make a call to a URL, as demonstrated in the following line of code</P>
<p><a taRGET="_blank" href="http://host/path/to/object?name1=value1&name2=value2">http://host/path/to/object?name1=value1&name2=value2</A></P>
<P>The server internally calls an object passing the pairs (name, value) as arguments.</P>
<p>Zope is not monolithic. Instead, it is composed of parts which can be deployed standalone with your own Python code support; for example, the Object Request Broker, HTML Templates (DTML) and the Object Database (ZOBD, Z Object Database, which stores Python objects) can all be abstracted from the mix.</p>
<p>Zope's templates are somehow similar to IIS ASP files. However, instead of being associated to Web pages, they are associated to Python objects.</p>
<P>You don't need to use Apache (PyApache/Httpdapy) in conjunction with Zope. In fact, Zope comes with a fast Web server of its own, which supports multiple protocols. On the other hand, it can also work with other Web servers as well. Most users do put Apache in front of Zope for reasons of flexibility. Because Zope is a long running process, they implement Persistent CGI, FastCGI, or ProxyPass.</P>
<P>If you need to find Web Hosting companies that support Zope, this might help: <A target="_blank" href="http://www.zope.org/Resources/ZSP">http://www.zope.org/Resources/ZSP</a>.<a name="idx1073746303"></a><a naMe="idx1073746304"></a><A namE="idx1073746305"></a><a naMe="idx1073746306"></a><a NAME="idx1073746307"></a></p>
<h4>Mailman桮NU Mailing List Manager</h4>
<P>Mailman is a Web integrated mailing list manager that helps manage email discussion lists, much like Majordomo and Smartmail. Unlike most similar products, Mailman gives each mailing list a Web page, and allows users to subscribe, unsubscribe, and so on, over the Web. Even the list manager can administer his list entirely from the Web. Both users and system administrator can do almost everything through an Internet connection. Mailman also integrates most things people want to do with mailing lists, including archiving, mail-to-news gateways, and so on.</P>
<P><A name="idx1073746308"></A><A NAme="idx1073746309"></a>Mailing lists are great for meeting people and sharing common interests. Within Mailman, each mailing list has its own page that makes it much simpler to use. Each mailing list's Web page has an extensive Web-based user interface that is customizable on a per-list basis. This allows users to manage their own subscriptions, with support for temporarily disabling their accounts, selecting digest modes, hiding their email addresses from other members, and so on.<a NAME="idx1073746310"></a><a name="idx1073746311"></a><a name="idx1073746312"></a><a name="idx1073746313"></a><a NamE="idx1073746314"></a><a nAme="idx1073746315"></a><a Name="idx1073746316"></A><A NAme="idx1073746317"></a><a NAME="idx1073746318"></a><a naME="idx1073746319"></A><A name="idx1073746320"></A><A NAme="idx1073746321"></a></p>
<p>All Mailman actions梚ncluding subscription requests, list administration, and management reports梒an be performed either through a Web interface or more traditional textual commands.</p>
<p>In order to use Mailman, you will need the following:</p>
<ul>
<li><p>A Web server that supports CGI scripts, such as Apache</p>
</li>
<li><p>An SMTP daemon (also known as mail transfer agents, MTAs, or mail servers), such as Sendmail, Qmail, or Postfix</p>
</Li>
<lI><p>Python 1.5 or newer</p>
</lI>
</ul>
<p>Mailman currently doesn't work on Windows. Instead, it runs on most UNIX-like systems. It is also compatible with most Web servers, browsers, and most SMTP servers. Actually, the only thing Mailman really requires of the mail server is the ability to setup aliases that execute commands.</p>
<P>Mailman is written primary in Python (in approximately 13,000 lines) with a few modules written in C (600 lines) for improved security (the C parts are the wrappers that handle securely changing to the correct permissions). Mailman exposes Python as an extension language that allows for customization of Mailman's interfaces.</p>
<p>In case you need to build Mailman from the source, it is necessary to have in hand: the GNU-make utility, an ANSI C Compiler, such as <tT CLAss="monofont">gcc,</tt> and Python 1.5 or higher.<A NAMe="idx1073746322"></a><a nAME="idx1073746323"></A><a namE="idx1073746324"></A><A Name="idx1073746325"></a><a name="idx1073746326"></a><a name="idx1073746327"></a><a namE="idx1073746328"></a><a Name="idx1073746329"></A><a namE="idx1073746330"></a><a nAME="idx1073746331"></A><a namE="idx1073746332"></A><A Name="idx1073746333"></a></P>
<P>Mailman is brought to you by the <A Name="idx1073746334"></a>Mailman Cabal, which is currently composed of the following core developers: <A NAMe="idx1073746335"></a>Barry Warsaw, <a name="idx1073746336"></a>Harald Meland, <a name="idx1073746337"></a>Ken Manheimer, <a name="idx1073746338"></a>Scott Cotton, and <A naMe="idx1073746339"></a>John Viega. Mailman was originally written by John Viega. Mailman is free software. It is distributed under the GNU General Public License.</p>
<P>The following lists some of the main features implemented by Mailman:</p>
<ul>
<lI><p>Automatic Web-based, hypermail-style archiving, including provisions for private archives.</p>
</lI>
<LI><P>Integrated gatewaying to and from Usenet.</p>
</li>
<lI><P>Smart bounce handling by using the <A Name="idx1073746340"></a><A NAMe="idx1073746341"></a>Delivery Status Notification (DSN), which is described in RFC 1894. This feature enables automatic disposition (that is, configurable disabling, unsubscribing).</p>
</lI>
<LI><P>Flexible and direct SMTP delivery of messages, including integrated fast bulk mailing.</p>
</li>
<li><p>Smart spam protection.</p>
</li>
<li><p>Multiple list owners and moderators are possible.</p>
</li>
<li><p>Supports RFC934 and MIME digest delivery.</p>
</lI>
<li><P>Support for virtual domains.</p>
</li>
<Li><p>Mail-based administrative commands.</p>
</lI>
<li><p>A Web-based list administration interface for all administrative-type tasks, including list configuration, moderation (post approvals), selection of posting and subscribing rules, management of user accounts via the Web, and so on.</P>
</LI>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -