<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GuoJing&#039;s Blog &#124; 献给未来的回忆 &#187; Python</title>
	<atom:link href="http://www.jguoer.com/blog/index.php/archives/category/python/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jguoer.com/blog</link>
	<description>献给未来的回忆</description>
	<lastBuildDate>Thu, 02 Feb 2012 16:00:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Web.py等等&#8230;</title>
		<link>http://www.jguoer.com/blog/index.php/archives/1237</link>
		<comments>http://www.jguoer.com/blog/index.php/archives/1237#comments</comments>
		<pubDate>Sat, 24 Jul 2010 16:23:43 +0000</pubDate>
		<dc:creator>诡异的西红柿</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.jguoer.com/blog/?p=1237</guid>
		<description><![CDATA[最近看了一些Web.py的东西，主要是了解如何从无到有搭建一个Python网站，实际上很容易，但是有很多细节如果不注意的话，很容易让新人误入歧途，反而浪费时间。所以就在官方网站上参与了翻译，虽然英语不是很好，但是简单的翻译一下还是可以的。所以我不打算在自己的博客再写一些很<b>基础</b>的Web.py的文章，但是新人要看，所以丰富官方网站才是最好的途径。

传送门：<a href="http://webpy.org/cookbook/zh-cn" target="_blank">http://webpy.org/cookbook/zh-cn</a>

翻译倒不是完全翻译过来，里面还加了一些个人的理解和排除错误的方式，前面已经有很多同学做出辛苦的努力进行翻译了，我也只是进去凑个数，希望能够帮到更多的新人。]]></description>
			<content:encoded><![CDATA[<p>最近看了一些Web.py的东西，主要是了解如何从无到有搭建一个Python网站，实际上很容易，但是有很多细节如果不注意的话，很容易让新人误入歧途，反而浪费时间。所以就在官方网站上参与了翻译，虽然英语不是很好，但是简单的翻译一下还是可以的。所以我不打算在自己的博客再写一些很<b>基础</b>的Web.py的文章，但是新人要看，所以丰富官方网站才是最好的途径。</p>
<p>传送门：<a href="http://webpy.org/cookbook/zh-cn" target="_blank">http://webpy.org/cookbook/zh-cn</a></p>
<p>翻译倒不是完全翻译过来，里面还加了一些个人的理解和排除错误的方式，前面已经有很多同学做出辛苦的努力进行翻译了，我也只是进去凑个数，希望能够帮到更多的新人。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jguoer.com/blog/index.php/archives/1237/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>笔记－Mac OS X lighttpd+web.py 部署网站</title>
		<link>http://www.jguoer.com/blog/index.php/archives/1227</link>
		<comments>http://www.jguoer.com/blog/index.php/archives/1227#comments</comments>
		<pubDate>Thu, 22 Jul 2010 11:39:37 +0000</pubDate>
		<dc:creator>诡异的西红柿</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.jguoer.com/blog/?p=1227</guid>
		<description><![CDATA[hmmm...最近一直在使用Python做开发，但是都是知其然而不知其所以然，所以自己研究一下如何搭建一个web，实际上很简单，不过中文文档不多，就纯当写一个笔记吧，高手路过。

web.py很简单，easy_install web.py就可以安装了，然后在python里import web就可以搭建一个web了，很简单吧，web.py默认就提供了web服务，所以只需要web.py就能跑一个网站了，不过，既然lighttpd专门去做web服务的，为何不直接让lighttpd去做呢。

实际上很简单，我们写一个简单的code.py文件如下。
<div class="code">
#!/usr/bin/env python

import web
from controller.home import Home

urls = ('/.*', 'Home')

app = web.application(urls, globals())

if __name__ == "__main__":
    app.run()
</div>
上面的逻辑比较简单，就是定义urls和相应的Handler，定义完成之后我们就可以使用python命令来运行了，如python code.py，这样就起了一个服务，不过一直在python进程中，确实很不爽，所以就选择lighttpd。

装lighttpd很简单，可以自己装，装好之后编写lighttpd配置文件，编写如下（这里我也是了解如何编写lighttpd配置文件）。
<div class="code">
#加载一些模块
server.modules = (
    "mod_access",
    "mod_alias",
    "mod_accesslog",
    "mod_compress",
)

server.modules += ( "mod_fastcgi" )
server.modules += ( "mod_rewrite" )

fastcgi.server = ("/routing.py" =>
((
"socket" => "/tmp/fastcgi-wen.socket",
"bin-path" => "/Users/guojing/dev/webpy/routing.py",
"max-procs" => 2,
"check-local" => "disable",
)))
#如果是本机跑的话一定要定义check-local为disable
url.rewrite-once = (
    "^/favicon.ico$" => "/favicon.ico",
    "^/(.*)$" => "/routing.py/$1",
)
#定义根文档路径
server.document-root = "/Users/guojing/dev/webpy/htdocs"
</div>
编写完成后就可以使用lighttpd -f lighttpd.conf来启动lighttpd了。

<b>PS：如果启动不成功，需要将routing.py设置相应的权限。</b>

chmod 755 lighttpd.conf

代码下载：
<a href='http://www.jguoer.com/blog/wp-content/uploads/2010/07/webpy.zip'>webpy</a>
]]></description>
			<content:encoded><![CDATA[<p>hmmm&#8230;最近一直在使用Python做开发，但是都是知其然而不知其所以然，所以自己研究一下如何搭建一个web，实际上很简单，不过中文文档不多，就纯当写一个笔记吧，高手路过。</p>
<p>web.py很简单，easy_install web.py就可以安装了，然后在python里import web就可以搭建一个web了，很简单吧，web.py默认就提供了web服务，所以只需要web.py就能跑一个网站了，不过，既然lighttpd专门去做web服务的，为何不直接让lighttpd去做呢。</p>
<p>实际上很简单，我们写一个简单的code.py文件如下。</p>
<div class="code">
#!/usr/bin/env python</p>
<p>import web<br />
from controller.home import Home</p>
<p>urls = (&#8216;/.*&#8217;, &#8216;Home&#8217;)</p>
<p>app = web.application(urls, globals())</p>
<p>if __name__ == &#8220;__main__&#8221;:<br />
    app.run()
</p></div>
<p>上面的逻辑比较简单，就是定义urls和相应的Handler，定义完成之后我们就可以使用python命令来运行了，如python code.py，这样就起了一个服务，不过一直在python进程中，确实很不爽，所以就选择lighttpd。</p>
<p>装lighttpd很简单，可以自己装，装好之后编写lighttpd配置文件，编写如下（这里我也是了解如何编写lighttpd配置文件）。</p>
<div class="code">
#加载一些模块<br />
server.modules = (<br />
    &#8220;mod_access&#8221;,<br />
    &#8220;mod_alias&#8221;,<br />
    &#8220;mod_accesslog&#8221;,<br />
    &#8220;mod_compress&#8221;,<br />
)</p>
<p>server.modules += ( &#8220;mod_fastcgi&#8221; )<br />
server.modules += ( &#8220;mod_rewrite&#8221; )</p>
<p>fastcgi.server = (&#8220;/routing.py&#8221; =><br />
((<br />
&#8220;socket&#8221; => &#8220;/tmp/fastcgi-wen.socket&#8221;,<br />
&#8220;bin-path&#8221; => &#8220;/Users/guojing/dev/webpy/routing.py&#8221;,<br />
&#8220;max-procs&#8221; => 2,<br />
&#8220;check-local&#8221; => &#8220;disable&#8221;,<br />
)))<br />
#如果是本机跑的话一定要定义check-local为disable<br />
url.rewrite-once = (<br />
    &#8220;^/favicon.ico$&#8221; => &#8220;/favicon.ico&#8221;,<br />
    &#8220;^/(.*)$&#8221; => &#8220;/routing.py/$1&#8243;,<br />
)<br />
#定义根文档路径<br />
server.document-root = &#8220;/Users/guojing/dev/webpy/htdocs&#8221;
</p></div>
<p>编写完成后就可以使用lighttpd -f lighttpd.conf来启动lighttpd了。</p>
<p><b>PS：如果启动不成功，需要将routing.py设置相应的权限。</b></p>
<p>chmod 755 lighttpd.conf</p>
<p>代码下载：<br />
<a href='http://www.jguoer.com/blog/wp-content/uploads/2010/07/webpy.zip'>webpy</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jguoer.com/blog/index.php/archives/1227/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>笔记－Pylons0.97升级到1.0</title>
		<link>http://www.jguoer.com/blog/index.php/archives/1221</link>
		<comments>http://www.jguoer.com/blog/index.php/archives/1221#comments</comments>
		<pubDate>Wed, 14 Jul 2010 09:26:17 +0000</pubDate>
		<dc:creator>诡异的西红柿</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.jguoer.com/blog/?p=1221</guid>
		<description><![CDATA[今天做了一件事情，升级Pylons，众所周知，这个框架依赖太多第三方的库了，导致升级之后很多东西用不了，可以具体参考一下官方连接，升级基本的配置文件。

<a href="http://pylonshq.com/docs/en/1.0/upgrading/" target="_blank">官方连接</a>

首先需要升级完成config下的environment.py，middleware.py，routing.py三个文件，操作直接按照官方给的代码即可。如果对CacheMiddleware没特殊需求可以不需要添加pylons.cache._push_object(config['pylons.app_globals'].cache)到enviroment.py中。

修改完成之后，需要修改redirect_to和url_for，改动很大，这里需要全部替换名字。

改动：
redirect_to变成redirect
url_for变成url
url的import变为 from pylons import url

使用方法也改变，访问当前的地址为（不填写controller的情况下）
url.current(action='xxxx')

redirect使用方法如下，以前的方法无法使用
redirect(url(controller='xxx', action='xxxx'))
redirect(url('xxxxxx'))

总之，升级成本还是很高的，需要测试的地方很多，这只是一个基本的升级过程。

注意：实际上升级到1.0首先需要从0.9.7升级到0.1.0，升级完成后，然后直接使用1.0的框架即可。
如果对于变量c报错，可以加上在config/enviroment.py中加上config['pylons.strict_tmpl_context'] = False]]></description>
			<content:encoded><![CDATA[<p>今天做了一件事情，升级Pylons，众所周知，这个框架依赖太多第三方的库了，导致升级之后很多东西用不了，可以具体参考一下官方连接，升级基本的配置文件。</p>
<p><a href="http://pylonshq.com/docs/en/1.0/upgrading/" target="_blank">官方连接</a></p>
<p>首先需要升级完成config下的environment.py，middleware.py，routing.py三个文件，操作直接按照官方给的代码即可。如果对CacheMiddleware没特殊需求可以不需要添加pylons.cache._push_object(config['pylons.app_globals'].cache)到enviroment.py中。</p>
<p>修改完成之后，需要修改redirect_to和url_for，改动很大，这里需要全部替换名字。</p>
<p>改动：<br />
redirect_to变成redirect<br />
url_for变成url<br />
url的import变为 from pylons import url</p>
<p>使用方法也改变，访问当前的地址为（不填写controller的情况下）<br />
url.current(action=&#8217;xxxx&#8217;)</p>
<p>redirect使用方法如下，以前的方法无法使用<br />
redirect(url(controller=&#8217;xxx&#8217;, action=&#8217;xxxx&#8217;))<br />
redirect(url(&#8216;xxxxxx&#8217;))</p>
<p>总之，升级成本还是很高的，需要测试的地方很多，这只是一个基本的升级过程。</p>
<p>注意：实际上升级到1.0首先需要从0.9.7升级到0.1.0，升级完成后，然后直接使用1.0的框架即可。<br />
如果对于变量c报错，可以加上在config/enviroment.py中加上config['pylons.strict_tmpl_context'] = False</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jguoer.com/blog/index.php/archives/1221/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

