﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;font color="#ffffcc"&gt;小D&lt;/font&gt;-随笔分类-动态语言</title><link>http://www.blogjava.net/vagasnail/category/48273.html</link><description>&lt;div style="color:#ccccff"&gt;读历史、看小说、写程序都是我所爱。技术不好，头脑不灵光，靠的是兴趣。&lt;/div&gt;</description><language>zh-cn</language><lastBuildDate>Sat, 10 Aug 2013 03:06:26 GMT</lastBuildDate><pubDate>Sat, 10 Aug 2013 03:06:26 GMT</pubDate><ttl>60</ttl><item><title>使用BAE的基于Web.py的简单博客程序</title><link>http://www.blogjava.net/vagasnail/archive/2013/07/29/402100.html</link><dc:creator>vagasnail</dc:creator><author>vagasnail</author><pubDate>Mon, 29 Jul 2013 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/vagasnail/archive/2013/07/29/402100.html</guid><wfw:comment>http://www.blogjava.net/vagasnail/comments/402100.html</wfw:comment><comments>http://www.blogjava.net/vagasnail/archive/2013/07/29/402100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vagasnail/comments/commentRss/402100.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vagasnail/services/trackbacks/402100.html</trackback:ping><description><![CDATA[&nbsp; &nbsp; &nbsp; 首先这个博客程序十分简单，就是一个首页，一个文章详情页面，一个登陆页面，还有一个编辑/添加的页面。<br />可以通过 <a href="http://codecos.com">http://codecos.com</a>&nbsp;访问。github地址：<a href="https://github.com/daimin/tolog">https://github.com/daimin/tolog</a><h2><strong>1. 关于BAE</strong></h2>&nbsp; &nbsp; &nbsp; 部署在BAE上面，BAE还是很给力的。对于我等舍不得花钱买空间的码农来说，还是一个福音，而且它给得免费配额是很大的，起码比SAE大，速度也不错，支持的语言环境也比较多，<br />本人在上面就部署了PHP，node.js和Python三个。<br />&nbsp; &nbsp; &nbsp; 不过需要配置URL，其实就和在web.py里面配置的差不多，不过就是要我们还要在BAE里面(app.conf)再设置一下罢了。<br />&nbsp; &nbsp; &nbsp;&nbsp;<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">&nbsp; -&nbsp;url&nbsp;:&nbsp;/(\d*)<br />&nbsp; &nbsp; &nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/new<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/view/(\d*)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/delete/(\d+)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/login/?<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/edit/(\d+)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/tag/(\d+)/?(\d*)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/search/([^\s/]+)/?(\d*)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/date/(\d+)/?(\d*)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/month/(\d+)/?(\d*)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/year/(\d+)/?(\d*)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;logout/?<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py<br />&nbsp;&nbsp;-&nbsp;url&nbsp;:&nbsp;/static/(.*)<br />&nbsp;&nbsp;&nbsp;&nbsp;script&nbsp;:&nbsp;index.py</div>&nbsp; &nbsp;&nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;只不过它的文件系统不能持久化，所以至于上面图片等，可以考虑存到数据库，或者是采用其他的图片服务。<br /><br /><h2><strong>2. 关于Web.py</strong></h2>&nbsp; &nbsp; &nbsp; &nbsp; 首先沉重悼念 Aaron Swartz。<br />&nbsp; &nbsp; &nbsp; &nbsp; web.py是很简单的，像这样：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->urls&nbsp;=&nbsp;(<br />&nbsp;&nbsp;&nbsp;&nbsp;r<span style="color: #800000; ">'</span><span style="color: #800000; ">/(\d*)</span><span style="color: #800000; ">'</span>,&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">Index</span><span style="color: #800000; ">'</span>,<br />)</div><span style="font-weight: normal; font-size: 10pt;">就行了，Index是一个类，你可以定义一个POST和GET函数，它们分别对象POST和GET请求。<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">class</span>&nbsp;Index:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;GET(self,&nbsp;page):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #800000; ">"""</span><span style="color: #800000; ">&nbsp;Show&nbsp;page&nbsp;</span><span style="color: #800000; ">"""</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">做你想做的</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;render.index(传数据)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;POST(self,&nbsp;page):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;render.index(传数据)</div><span style="font-weight: normal; font-size: 10pt;">&nbsp; &nbsp; &nbsp;web.py虽然很简单但是运行效率的确不怎样，但是做一个个人的博客之内的还是足够了的，而且关键还要看怎样优化了。<br /></span><h2>3. 结合web.py和BAE</h2><span style="font-weight: normal; font-size: 10pt;">&nbsp; &nbsp; &nbsp;在BAE上面运行web.py有一些特许的配置。<br />&nbsp; &nbsp; &nbsp;</span><span style="font-size: 10pt;"><strong>mysql：</strong></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">&nbsp;dbname&nbsp;=&nbsp;<span style="color: #800000;">"</span><span style="color: #800000;">mytestdb</span><span style="color: #800000;">"</span><br />&nbsp;mydb&nbsp;=&nbsp;MySQLdb.connect(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;host&nbsp;&nbsp;&nbsp;=&nbsp;const.MYSQL_HOST,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port&nbsp;&nbsp;&nbsp;=&nbsp;int(const.MYSQL_PORT),<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;user&nbsp;&nbsp;&nbsp;=&nbsp;const.MYSQL_USER,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;passwd&nbsp;=&nbsp;const.MYSQL_PASS,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db&nbsp;=&nbsp;dbname)</div><span style="font-weight: normal; font-size: 10pt;"><br />&nbsp; &nbsp; </span><span style="font-size: 10pt;"><strong>运行web.py:</strong></span><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;">app&nbsp;=&nbsp;web.application(urls,&nbsp;globals()).wsgifunc()<br /><span style="color: #0000FF; ">from</span>&nbsp;bae.core.wsgi&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;WSGIApplication<br />application&nbsp;=&nbsp;WSGIApplication(app)</div><span style="font-weight: normal; font-size: 10pt;"><br /></span><img src ="http://www.blogjava.net/vagasnail/aggbug/402100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vagasnail/" target="_blank">vagasnail</a> 2013-07-29 15:01 <a href="http://www.blogjava.net/vagasnail/archive/2013/07/29/402100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PHP文件自动加载</title><link>http://www.blogjava.net/vagasnail/archive/2011/10/08/360217.html</link><dc:creator>vagasnail</dc:creator><author>vagasnail</author><pubDate>Sat, 08 Oct 2011 10:06:00 GMT</pubDate><guid>http://www.blogjava.net/vagasnail/archive/2011/10/08/360217.html</guid><wfw:comment>http://www.blogjava.net/vagasnail/comments/360217.html</wfw:comment><comments>http://www.blogjava.net/vagasnail/archive/2011/10/08/360217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/vagasnail/comments/commentRss/360217.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/vagasnail/services/trackbacks/360217.html</trackback:ping><description><![CDATA[<p>&lt;?php</p>
<p>/*定义系统默认的自动加载函数*/<br />function __autoload($className){<br />&nbsp;if(file_exists($className.'.php')){<br />&nbsp;&nbsp;require_once($className.'.php');<br />&nbsp;}<br />}</p>
<p>// 注册自己的自动加载函数<br />//function autoload(){<br />//&nbsp;&nbsp;&nbsp; if(file_exists('Test.php')){<br />//&nbsp;&nbsp;&nbsp;&nbsp; require_once('Test.php');<br />//&nbsp;&nbsp;&nbsp; }<br />//}<br />//<br />//spl_autoload_register('autoload');</p>
<p>// 类方式的实现，注意加载函数必须是静态函数<br />//class Myloader{<br />//&nbsp;static function autoload(){<br />//&nbsp;&nbsp;&nbsp;&nbsp; if(file_exists('Test.php')){<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; require_once('Test.php');<br />//&nbsp;&nbsp;&nbsp;&nbsp; }<br />//&nbsp;&nbsp;&nbsp; }<br />//&nbsp;<br />//}<br />//<br />//spl_autoload_register(array('Myloader', 'autoload'));</p>
<p><br />$test = new Test();<br />$test2 = new Test2(); <br />// 在一个文件中定义多个类也是可以自动加载的</p>
<p><br />$my = new MyClass('李德成','女');<br />$my-&gt;personInfo();</p>
<p><br />// 如果我将PHP中所有的控制及业务代码都用类的方式定义，那么将不需要进行任何的页面包含<br />// 将十分方便，而且不容易出错<br />// 你必须保证你的(PHP 5 &gt;= 5.1.2)才能使用<br />?&gt;</p>  <img src ="http://www.blogjava.net/vagasnail/aggbug/360217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/vagasnail/" target="_blank">vagasnail</a> 2011-10-08 18:06 <a href="http://www.blogjava.net/vagasnail/archive/2011/10/08/360217.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>