<?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>天地一沙鸥 &#187; vicalloy的庄家</title>
	<atom:link href="http://haoluobo.com/category/vicalloy%e7%9a%84%e5%ba%84%e5%ae%b6/feed/" rel="self" type="application/rss+xml" />
	<link>http://haoluobo.com</link>
	<description>to be continue....</description>
	<lastBuildDate>Fri, 20 Jan 2012 02:03:49 +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>timeline项目开发日志&#8211;登陆、注册模块</title>
		<link>http://haoluobo.com/2012/01/timeline-re/</link>
		<comments>http://haoluobo.com/2012/01/timeline-re/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 14:35:34 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[django-userena]]></category>
		<category><![CDATA[timeline]]></category>

		<guid isPermaLink="false">http://haoluobo.com/?p=10353</guid>
		<description><![CDATA[利用twitter/bootstrap，项目的基础模板算是顺利搞定。接下来开始处理用户中心。 用户中心主要包括用户登陆、注册以及头像等个人信息维护。此前，用户的注册管理我一直使用django-registration。只是这个APP有些不思进取，09年发布了0.8alpha版后就一直没什么动静。这次决定尝试另外一个用户模块组件django-userena。 相比django-registration，django-userena的功能要完善的多。除基础的登陆注册模块外django-userena甚至还带了站内消息功能。django-userena的易用性方面也做的非常的不错。django-userena自带了默认模板，并有提供一个完整的演示项目，让你可以轻松上手。这里有个官方的在线demo，感兴趣可以去看看。 django-userena同twitter/bootstrap的整合 我们自然是希望所有的APP不用做任何修改，拿来就能用了。不过事与愿违，在整合的过程中多多少少都会遇到一些问题。django-userena默认的模板在项目中显示的非常难看。我们需要重写django-userena的默认模板，并且用django-bootstrap来生成form。 forms.py #为原始form添加BootstrapMixin from bootstrap.forms import BootstrapMixin &#160; class BsAuthenticationForm&#40;AuthenticationForm, BootstrapMixin&#41;: def __init__&#40;self, *args, **kw&#41;: super&#40;BsAuthenticationForm, self&#41;.__init__&#40;*args, **kw&#41; self.__bootstrap__&#40;&#41; urls.py #重写urls，指定使用的form from django.conf.urls.defaults import * from userena import views as userena_views from profiles.forms import BsSignupForm, BsAuthenticationForm &#160; urlpatterns = patterns&#40;'', url&#40;r'^signup/$', userena_views.signup, &#123;'signup_form': BsSignupForm&#125;, name='userena_signup'&#41;, url&#40;r'^signin/$', userena_views.signin, &#123;'auth_form': BsAuthenticationForm&#125;, name='userena_signin'&#41;, &#40;r'^', <a href="http://haoluobo.com/2012/01/timeline-re/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>利用<a href="https://github.com/twitter/bootstrap" target="_blank">twitter/bootstrap</a>，项目的基础模板算是顺利搞定。接下来开始处理用户中心。</p>
<p>用户中心主要包括用户登陆、注册以及头像等个人信息维护。此前，用户的注册管理我一直使用<a href="https://bitbucket.org/ubernostrum/django-registration" target="_blank">django-registration</a>。只是这个APP有些不思进取，09年发布了0.8alpha版后就一直没什么动静。这次决定尝试另外一个用户模块组件<a href="https://github.com/bread-and-pepper/django-userena" target="_blank">django-userena</a>。</p>
<p>相比django-registration，django-userena的功能要完善的多。除基础的登陆注册模块外django-userena甚至还带了站内消息功能。django-userena的易用性方面也做的非常的不错。django-userena自带了默认模板，并有提供一个完整的演示项目，让你可以轻松上手。这里有个官方的在线demo，感兴趣可以<a href="http://django-userena.org/accounts/signup/" target="_blank">去看看</a>。</p>
<h3>django-userena同twitter/bootstrap的整合</h3>
<p>我们自然是希望所有的APP不用做任何修改，拿来就能用了。不过事与愿违，在整合的过程中多多少少都会遇到一些问题。django-userena默认的模板在项目中显示的非常难看。我们需要重写django-userena的默认模板，并且用<a href="https://github.com/earle/django-bootstrap" target="_blank">django-bootstrap</a>来生成form。</p>
<p><strong>forms.py</strong></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#为原始form添加BootstrapMixin</span>
<span style="color: #ff7700;font-weight:bold;">from</span> bootstrap.<span style="color: black;">forms</span> <span style="color: #ff7700;font-weight:bold;">import</span> BootstrapMixin
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> BsAuthenticationForm<span style="color: black;">&#40;</span>AuthenticationForm, BootstrapMixin<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, <span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>:
        <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>BsAuthenticationForm, <span style="color: #008000;">self</span><span style="color: black;">&#41;</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.__bootstrap__<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p><strong>urls.py</strong></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#重写urls，指定使用的form</span>
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">conf</span>.<span style="color: black;">urls</span>.<span style="color: black;">defaults</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
<span style="color: #ff7700;font-weight:bold;">from</span> userena <span style="color: #ff7700;font-weight:bold;">import</span> views <span style="color: #ff7700;font-weight:bold;">as</span> userena_views
<span style="color: #ff7700;font-weight:bold;">from</span> profiles.<span style="color: black;">forms</span> <span style="color: #ff7700;font-weight:bold;">import</span> BsSignupForm, BsAuthenticationForm
&nbsp;
urlpatterns = patterns<span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span>,
    url<span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^signup/$'</span>, userena_views.<span style="color: black;">signup</span>,
        <span style="color: black;">&#123;</span><span style="color: #483d8b;">'signup_form'</span>: BsSignupForm<span style="color: black;">&#125;</span>, name=<span style="color: #483d8b;">'userena_signup'</span><span style="color: black;">&#41;</span>,
    url<span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^signin/$'</span>, userena_views.<span style="color: black;">signin</span>,
        <span style="color: black;">&#123;</span><span style="color: #483d8b;">'auth_form'</span>: BsAuthenticationForm<span style="color: black;">&#125;</span>, name=<span style="color: #483d8b;">'userena_signin'</span><span style="color: black;">&#41;</span>,
    <span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^'</span>, include<span style="color: black;">&#40;</span><span style="color: #483d8b;">'userena.urls'</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>,
<span style="color: black;">&#41;</span></pre></div></div>

<h3>中文用户名问题</h3>
<p>同django-admin一样，django-userena也无法使用中文进行注册。对于一个中文网站而言，不能使用中文注册ID似乎有些太不合理的。</p>
<p>django-userena使用正则表达式对用户名进行校验，重写注册form修改认证规则即可取消该限制。</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">USERNAME_RE = r<span style="color: #483d8b;">'^<span style="color: #000099; font-weight: bold;">\S</span>+$'</span>
attrs_dict = <span style="color: black;">&#123;</span><span style="color: #483d8b;">'class'</span>: <span style="color: #483d8b;">'required'</span><span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> BsSignupForm<span style="color: black;">&#40;</span>SignupForm, BootstrapMixin<span style="color: black;">&#41;</span>:
    username = forms.<span style="color: black;">RegexField</span><span style="color: black;">&#40;</span>regex=USERNAME_RE,
                                max_length=<span style="color: #ff4500;">30</span>,
                                widget=forms.<span style="color: black;">TextInput</span><span style="color: black;">&#40;</span>attrs=attrs_dict<span style="color: black;">&#41;</span>,
                                label=_<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Username&quot;</span><span style="color: black;">&#41;</span>,
                                error_messages=<span style="color: black;">&#123;</span><span style="color: #483d8b;">'invalid'</span>: _<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Username must contain only letters, numbers, dots and underscores.'</span><span style="color: black;">&#41;</span><span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, <span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>:
        <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>BsSignupForm, <span style="color: #008000;">self</span><span style="color: black;">&#41;</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.__bootstrap__<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2012/01/timeline-re/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>已在github上创建timeline项目</title>
		<link>http://haoluobo.com/2012/01/timeline-on-github/</link>
		<comments>http://haoluobo.com/2012/01/timeline-on-github/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 08:10:25 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[timeline]]></category>

		<guid isPermaLink="false">http://haoluobo.com/?p=10348</guid>
		<description><![CDATA[项目地址：https://github.com/vicalloy/timeline-site 感兴趣的朋友就过去关注下吧。 目前还只有一个项目框架，并对基础的模板做了一些调整。因为是自己一个人写，且没人督促，所以项目前期的重构会比较频繁，且项目进度不可控。 下面就是刚的工作成功，一个简单的首页框架。]]></description>
			<content:encoded><![CDATA[<p>项目地址：<a href="https://github.com/vicalloy/timeline-site">https://github.com/vicalloy/timeline-site</a></p>
<p>感兴趣的朋友就过去关注下吧。</p>
<p>目前还只有一个项目框架，并对基础的模板做了一些调整。因为是自己一个人写，且没人督促，所以项目前期的重构会比较频繁，且项目进度不可控。</p>
<p>下面就是刚的工作成功，一个简单的首页框架。</p>
<p><a href="http://haoluobo.com/wp-content/uploads/2012/01/timeline.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="timeline" border="0" alt="timeline" src="http://haoluobo.com/wp-content/uploads/2012/01/timeline_thumb.png" width="477" height="223" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2012/01/timeline-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>timeline项目前期准备工作</title>
		<link>http://haoluobo.com/2012/01/timeline-pr/</link>
		<comments>http://haoluobo.com/2012/01/timeline-pr/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 12:41:19 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[timeline]]></category>

		<guid isPermaLink="false">http://haoluobo.com/?p=10311</guid>
		<description><![CDATA[前些天在日志里说想做个timeline相关的网站。由于最近的琐事较多，也是出于惰性，迟迟没有动手。想最近还是先将项目启动好了，然后在blog上记录项目的过程。记录的过程，一方面是方便日后的总结，令一方面多少也有些督促作用。 缘起 很早以前就想做一张古今中外的大事年表，看中国历史上的同时期国外都发生了些什么事。对于普通的文字列表而言，timeline的展现方式无疑要直观很多。在寻找timeline工具的时候没有发现好用的。到了现在，已经出现不少在线timeline工具了，不过中文的还没有，既然如此那就自己做一个吧。 网站定位、功能规划、前期推广方案 timeline功能有些过于单一，可发掘的余地不会太大。不过换个角度看，做一个有价值的小众服务也不错。 这会是一个类似维基百科的网站。大家可以在上面察看、制作自己感兴趣的timeline。网站支持多人协作，可以多人共同维护一个timeline。timeline支持评论。用户可以将自己感兴趣的timeline做个列表（类似豆瓣的豆单）。如果用户活跃的话甚至可以考虑增加小组的功能。 网站创建初期最需要的是基础内容以及第一批核心用户。内容方面会自己做几个timeline并进行社会化分享。针对目标人群的不同会将timeline分为明星偶像、社会化事件、历史、技术类（如js的演化）。然后看目标人群的接受程度再做适当的调整。 技术方案 服务端采用django。UI方面采用twitter出品的bootstrap。 除此之外令一个重要的问题是如何实现timeline的展示。网上不少timeline的js实现。经过调查后决定采用timeglider。下面是入围JS库的介绍。 http://timeglider.com/jquery/ 功能不错，而且基于jquery。在2011.x月之前bsd协议，最新版本改为了双许可，价格并不便宜。 http://links.sourceforge.net/#timeline 功能比较全，UI很一般。 http://www.simile-widgets.org/timeline/ 功能中规中矩，缺少缩放功能。 参考网站 既然此类网站已经有了，必要的参考自然少不了。 http://www.xtimeline.com UI不是很美观，功能方面和我的想法比较接近。 http://www.timerime.com/ http://www.tiki-toki.com/ http://delicious.com/search?p=timeline delicious上可以找到很多有用的资料 http://www.douban.com/event/search?search_text=%E5%B0%8F%E7%BB%84&#38;loc=china 参考UI http://www.timetoast.com/ 同xtimeline类似，UI更好些。]]></description>
			<content:encoded><![CDATA[<p>前些天在日志里说想做个timeline相关的网站。由于最近的琐事较多，也是出于惰性，迟迟没有动手。想最近还是先将项目启动好了，然后在blog上记录项目的过程。记录的过程，一方面是方便日后的总结，令一方面多少也有些督促作用。</p>
<h3>缘起</h3>
<p>很早以前就想做一张古今中外的大事年表，看中国历史上的同时期国外都发生了些什么事。对于普通的文字列表而言，timeline的展现方式无疑要直观很多。在寻找timeline工具的时候没有发现好用的。到了现在，已经出现不少在线timeline工具了，不过中文的还没有，既然如此那就自己做一个吧。</p>
<h3>网站定位、功能规划、前期推广方案</h3>
<p>timeline功能有些过于单一，可发掘的余地不会太大。不过换个角度看，做一个有价值的小众服务也不错。</p>
<p>这会是一个类似维基百科的网站。大家可以在上面察看、制作自己感兴趣的timeline。网站支持多人协作，可以多人共同维护一个timeline。timeline支持评论。用户可以将自己感兴趣的timeline做个列表（类似豆瓣的豆单）。如果用户活跃的话甚至可以考虑增加小组的功能。</p>
<p>网站创建初期最需要的是基础内容以及第一批核心用户。内容方面会自己做几个timeline并进行社会化分享。针对目标人群的不同会将timeline分为明星偶像、社会化事件、历史、技术类（如js的演化）。然后看目标人群的接受程度再做适当的调整。</p>
<h3>技术方案</h3>
<p>服务端采用django。UI方面采用twitter出品的<a href="http://twitter.github.com/bootstrap/">bootstrap</a>。</p>
<p>除此之外令一个重要的问题是如何实现timeline的展示。网上不少timeline的js实现。经过调查后决定采用timeglider。下面是入围JS库的介绍。</p>
<ul>
<li><a href="http://timeglider.com/jquery/" rel="nofollow">http://timeglider.com/jquery/</a>
<ul>
<li>功能不错，而且基于jquery。在2011.x月之前bsd协议，最新版本改为了双许可，价格并不便宜。</li>
</ul>
</li>
<li><a href="http://links.sourceforge.net/#timeline" rel="nofollow">http://links.sourceforge.net/#timeline</a>
<ul>
<li>功能比较全，UI很一般。</li>
</ul>
</li>
<li><a href="http://www.simile-widgets.org/timeline/" rel="nofollow">http://www.simile-widgets.org/timeline/</a>
<ul>
<li>功能中规中矩，缺少缩放功能。</li>
</ul>
</li>
</ul>
<h3>参考网站</h3>
<p>既然此类网站已经有了，必要的参考自然少不了。</p>
<ul>
<li><a href="http://www.xtimeline.com/">http://www.xtimeline.com</a></li>
<ul>
<li>UI不是很美观，功能方面和我的想法比较接近。</li>
</ul>
<li>http://www.timerime.com/</li>
<li>http://www.tiki-toki.com/</li>
<li>http://delicious.com/search?p=timeline</li>
<ul>
<li>delicious上可以找到很多有用的资料</li>
</ul>
<li>http://www.douban.com/event/search?search_text=%E5%B0%8F%E7%BB%84&amp;loc=china</li>
<ul>
<li>参考UI</li>
</ul>
<li>http://www.timetoast.com/</li>
<ul>
<li>同xtimeline类似，UI更好些。</li>
</ul>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2012/01/timeline-pr/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>最近想做的一些东西</title>
		<link>http://haoluobo.com/2011/12/xiami-wp7-timeline/</link>
		<comments>http://haoluobo.com/2011/12/xiami-wp7-timeline/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 15:32:59 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[timeline]]></category>
		<category><![CDATA[wp7]]></category>

		<guid isPermaLink="false">http://haoluobo.com/?p=10305</guid>
		<description><![CDATA[由于长期的挖坑不填，于是想做简单一些的东西，简单到一周之内可以完成。 WP7的虾米电台客户端 虾米的电台很不错，有多种风格的电台可以选择。选择一个自己喜欢的电台然后有啥听啥，比自己选歌来的方便的多。目前虾米有官方的ios、android的客户端，wp7的客户端暂时还没有。虽然手机可以用网页版的虾米，不过网页版无法后台播放将是一个很大的缺陷。 我还没有wp7的手机，想做着东西主要还是想体验一下wp7开发。 timeline在线制作 世界历学的很烂，完全不知道国外的重大历史事件对应到中国的朝代。想做这么一张历史年表，将国内外的大事件都标记在上面。顺带想做一个关于timeline的网站。用户可以制作自己的timeline并进行分享。最好还可以象wiki一样大家共同编辑同一个timeline。 前期会做的很简单，只有简单的创建和展示功能。评论功能直接使用disqus实现。 目前国外网站已经有一些提供在线timeline服务的网站。里面大多网站都面向企业用户提供收费服务。其中比较接近我想法的是xtimeline。]]></description>
			<content:encoded><![CDATA[<p>由于长期的挖坑不填，于是想做简单一些的东西，简单到一周之内可以完成。</p>
<h3>WP7的虾米电台客户端</h3>
<p><a href="http://www.xiami.com/" target="_blank">虾米</a>的电台很不错，有多种风格的电台可以选择。选择一个自己喜欢的电台然后有啥听啥，比自己选歌来的方便的多。目前虾米有官方的ios、android的客户端，wp7的客户端暂时还没有。虽然手机可以用网页版的虾米，不过网页版无法后台播放将是一个很大的缺陷。</p>
<p>我还没有wp7的手机，想做着东西主要还是想体验一下wp7开发。</p>
<h3>timeline在线制作</h3>
<p>世界历学的很烂，完全不知道国外的重大历史事件对应到中国的朝代。想做这么一张历史年表，将国内外的大事件都标记在上面。顺带想做一个关于timeline的网站。用户可以制作自己的timeline并进行分享。最好还可以象wiki一样大家共同编辑同一个timeline。</p>
<p>前期会做的很简单，只有简单的创建和展示功能。评论功能直接使用<a href="http://disqus.com/" target="_blank">disqus</a>实现。</p>
<p>目前国外网站已经有一些提供在线timeline服务的网站。里面大多网站都面向企业用户提供收费服务。其中比较接近我想法的是<a href="http://www.xtimeline.com/" target="_blank">xtimeline</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2011/12/xiami-wp7-timeline/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>收到SAE的开发者证书了</title>
		<link>http://haoluobo.com/2011/11/sae-dev-cer/</link>
		<comments>http://haoluobo.com/2011/11/sae-dev-cer/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 13:04:33 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[SAE]]></category>

		<guid isPermaLink="false">http://haoluobo.com/2011/11/%e6%94%b6%e5%88%b0sae%e7%9a%84%e5%bc%80%e5%8f%91%e8%80%85%e8%af%81%e4%b9%a6%e4%ba%86/</guid>
		<description><![CDATA[前段时间SAE开始分发python的内测名额，一时手慢，错过机会。不过倒看到SAE可以申请开发者证书。申请资格中写有开源作者可以申请高级开发者证书。由于错过内测名额，所以就有啥拿啥吧。 感觉SAE的这次营销策划想法非常的好。可以花很少的钱就可以做到不错的推广效果，最重要的是还能得到一个皆大欢喜的结果。 PS： 申请一个SAE证书还是有些好处的。申请成高级开发者后，每年可以有￥1800的免费SAE资源可以使用。]]></description>
			<content:encoded><![CDATA[<p>前段时间SAE开始分发python的内测名额，一时手慢，错过机会。不过倒看到SAE可以申请开发者证书。申请资格中写有开源作者可以申请高级开发者证书。由于错过内测名额，所以就有啥拿啥吧。</p>
<p>感觉SAE的这次营销策划想法非常的好。可以花很少的钱就可以做到不错的推广效果，最重要的是还能得到一个皆大欢喜的结果。</p>
<p>PS：</p>
<p>申请一个SAE证书还是有些好处的。申请成高级开发者后，每年可以有￥1800的免费SAE资源可以使用。</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; padding-top: 0px; border-width: 0px;" src="http://haoluobo.com/wp-content/uploads/2011/11/sae.jpg" alt="" width="550" height="825" border="0" /></p>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2011/11/sae-dev-cer/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>二手数码控的pagerank为3</title>
		<link>http://haoluobo.com/2011/08/scnews-pagerank-is-3/</link>
		<comments>http://haoluobo.com/2011/08/scnews-pagerank-is-3/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 14:30:33 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[二手数码控]]></category>

		<guid isPermaLink="false">http://haoluobo.com/2011/08/%e4%ba%8c%e6%89%8b%e6%95%b0%e7%a0%81%e6%8e%a7%e7%9a%84pagerank%e4%b8%ba3/</guid>
		<description><![CDATA[将博客切换到主域名的重要原因之一是博客的pagerank居然为0。虽说pagerank只是浮云，但考虑到我的博客已经存在了这么久，0这个数字多少有些让人难以接受。将博客切换到主域名，希望pagerank能有所提高（至少别继续维持在0了）。看网上说pagerank每三个月更新一次，先耐心的等待了。 今天忽然发现二手数码控的pagerank居然有3。有些太没天理。网站才上线几天，即无人来，也没有啥外链，pagerank居然也能到3。]]></description>
			<content:encoded><![CDATA[<p>将博客切换到主域名的重要原因之一是博客的pagerank居然为0。虽说pagerank只是浮云，但考虑到我的博客已经存在了这么久，0这个数字多少有些让人难以接受。将博客切换到主域名，希望pagerank能有所提高（至少别继续维持在0了）。看网上说pagerank每三个月更新一次，先耐心的等待了。</p>
<p>今天忽然发现<a href="http://essmk.com/" target="_blank">二手数码控</a>的pagerank居然有3。有些太没天理。网站才上线几天，即无人来，也没有啥外链，pagerank居然也能到3。</p>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2011/08/scnews-pagerank-is-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django标准化项目dj-scaffold</title>
		<link>http://haoluobo.com/2011/08/dj-scaffold/</link>
		<comments>http://haoluobo.com/2011/08/dj-scaffold/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 15:38:39 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[dj-scaffold]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://haoluobo.com/2011/08/django%e6%a0%87%e5%87%86%e5%8c%96%e9%a1%b9%e7%9b%aedj-scaffold/</guid>
		<description><![CDATA[由于Django没有象rails一样指定项目的目录结构规范，很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开源项目dj-scaffold（django的脚手架）。这个项目用于自动生成一个标注化的django项目和app。 项目地址：https://github.com/vicalloy/dj-scaffold 安装 已经发布到了pypi，所以你可以用pip或easy_install 来进行安装。 pip install dj-scaffold easy_install dj-scaffold 使用 dj-scaffold主要提供了两个命令，dj-scaffold.py和lbstartapp。 dj-scaffold.py 该脚本用于取代django的startproject命令。使用方式如下： dj-scaffold.py projectname 在该命令执行后，将创建项目projectname。在项目的scripts目录中提供了脚本create_env.py和env.rc。 create_env.py 执行该脚本将自动初始化python虚拟环境。新生成的python虚拟环境在env目录。 env.rc 该脚本用户启动python虚拟环境（source env.rc）。该脚本同时为python manage.py设置了快捷方式$mg。你可以在任何目录调用$mg来执行django命令。比如你用$mg runserver来启动测试服务器。 项目对应的目录结构如下： 注：文件太多，去掉了部分不重要的文件 dj-scaffold.py projectname &#124;+docs/ #用于存放项目的相关文档 &#124;+env/ #python虚拟环境，由脚本自动生成 &#124;~requirements/ #第三方依赖包的存放位置 &#124; `-requirements.pip #pip的依赖说明文件 &#124;~scripts/ #系统相关的脚本 &#124; &#124;-create_env.py #创建python虚拟环境（env目录） &#124; `-env.rc #进入python虚拟环境。同时提供python manger.py的快捷方式$mg。可在任意目录使用$mg。 &#124;~sites/ #Django的项目文件。在settings文件中增加了部分默认配置。如数据库默认使用sqlite，设置项目的模板以及静态文件目录。 &#124; &#124;+media/ #项目静态文件（用户上传） &#124; &#124;+static/ #项目静态文件（css、js等） &#124; <a href="http://haoluobo.com/2011/08/dj-scaffold/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>由于Django没有象rails一样指定项目的目录结构规范，很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开源项目<a href="https://github.com/vicalloy/dj-scaffold" target="_blank">dj-scaffold</a>（django的脚手架）。这个项目用于自动生成一个标注化的django项目和app。</p>
<p><strong>项目地址：</strong><a href="https://github.com/vicalloy/dj-scaffold">https://github.com/vicalloy/dj-scaffold</a></p>
<h3>安装</h3>
<p>已经发布到了pypi，所以你可以用pip或easy_install 来进行安装。</p>
<pre>pip install dj-scaffold
easy_install dj-scaffold</pre>
<h3>使用</h3>
<p>dj-scaffold主要提供了两个命令，<strong>dj-scaffold.py</strong>和<strong>lbstartapp</strong>。</p>
<h4>dj-scaffold.py</h4>
<p>该脚本用于取代django的startproject命令。使用方式如下：</p>
<pre>dj-scaffold.py projectname </pre>
<p>在该命令执行后，将创建项目projectname。在项目的scripts目录中提供了脚本<strong>create_env.py</strong>和<strong>env.rc</strong>。</p>
<ul>
<li><strong>create_env.py</strong> 执行该脚本将自动初始化python虚拟环境。新生成的python虚拟环境在env目录。 </li>
<li><strong>env.rc</strong> 该脚本用户启动python虚拟环境（source env.rc）。该脚本同时为python manage.py设置了快捷方式<strong>$mg</strong>。你可以在任何目录调用<strong>$mg</strong>来执行django命令。比如你用<strong>$mg runserver</strong>来启动测试服务器。 </li>
</ul>
<p>项目对应的目录结构如下：</p>
<pre>注：文件太多，去掉了部分不重要的文件</pre>
<pre>dj-scaffold.py projectname </pre>
<pre>|+docs/    #用于存放项目的相关文档
|+env/     #python虚拟环境，由脚本自动生成
|~requirements/     #第三方依赖包的存放位置
| `-requirements.pip    #pip的依赖说明文件
|~scripts/    #系统相关的脚本
| |-create_env.py    #创建python虚拟环境（env目录）
| `-env.rc    #进入python虚拟环境。同时提供python manger.py的快捷方式$mg。可在任意目录使用$mg。
|~sites/    #Django的项目文件。在settings文件中增加了部分默认配置。如数据库默认使用sqlite，设置项目的模板以及静态文件目录。
| |+media/    #项目静态文件（用户上传）
| |+static/    #项目静态文件（css、js等）
| `+templates/    #项目模板
|+tools/    #一些项目依赖的第三方工具包。如python虚拟环境初始化脚本等。
`~wsgi/    #项目部署用的wsgi文件
  `-dj_scaffold.wsgi</pre>
<h4>lbstartapp</h4>
<p><strong>lbstartapp</strong>作为django的扩展命令提供。将dj_scaffold加到INSTALLED_APPS后即可使用该命令。该命令将生成一个标准的app，相比django自带的startapp，lbstartapp将那些不太常用的app默认目录也都给生成了出来。对应目录结构如下：</p>
<pre>|+management/    #命令目录
|+static/    #静态文件目录
|+templates/    #模板目录
|+templatetags/    #tag目录
|-__init__.py
|-admin.py    #admin管理后台的models配置文件
|-forms.py
|-models.py
|-settings.py    #app自己的settings文件
|-tests.py
|-urls.py    #urls配置文件
`-views.py</pre>
<h3>NOTE</h3>
<ul>
<li>项目的大多代码来自：<a href="https://github.com/lincolnloop/django-startproject">https://github.com/lincolnloop/django-startproject</a> </li>
<li>类似项目：<a href="https://github.com/mozilla/playdoh">https://github.com/mozilla/playdoh</a> 个人觉得这个项目还可以。不过我个人觉得自己写的更符合自己的习惯。 </li>
<li>“摒弃魔法”是Django的哲学之一。为此Django没有为用户提供太多的默认操作，它希望一切对用户都是显示可见的。这本没太大的问题，但在我看来“no magic”并不代表连规范都不要。Django实在是太缺乏一些必要的规范。 </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2011/08/dj-scaffold/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>把二手数码控的代码放到github托管</title>
		<link>http://haoluobo.com/2011/08/scnews-on-github/</link>
		<comments>http://haoluobo.com/2011/08/scnews-on-github/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 16:09:41 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[二手数码控]]></category>

		<guid isPermaLink="false">http://haoluobo.com/2011/08/%e6%8a%8a%e4%ba%8c%e6%89%8b%e6%95%b0%e7%a0%81%e6%8e%a7%e7%9a%84%e4%bb%a3%e7%a0%81%e6%94%be%e5%88%b0github%e6%89%98%e7%ae%a1/</guid>
		<description><![CDATA[项目地址：https://github.com/vicalloy/scnews 对目录结构做了些调整，并将代码托管到github。 虽说对互联网行业比较感兴趣，工作却一直和互联网没多少关系，说起来也是叶公好龙。这世界大多人都是“说，天下无敌。做，无心无力”。于是想，整个简单的项目做个实践吧。 因为这是业余时间的一个实践，为不妨碍自己的工作与业余生活，这个项目必定会是一个非常简单的项目。 网站定位 现有二手交易网站的问题 每个人都会有些食之无味，弃之可惜的东西。目前交易二手货的主要途径有：淘宝、58等同城网站、专业论坛（如苹果产品的weiphone等）。 淘宝 对普通用户的二手交易有诸多限制，发布二手信息非常的不方便，也不容易被其他用户找到。通常用户在淘宝发布二手信息后，还需到专业论坛发帖宣传。 同城网站 信息确实非常的多，信息的真实性方面就没多少保证了。无用信息过多，用户想过滤出有效信息的成本过大。 同城网站发布的信息按照城市区分。我认为这是一个过时的做法。在物流业高度发达的今天，很多二手交易已经不再受到同城的局限。 专业论坛 就目前而言专业论坛是完成二手交易的最佳地点。首先论坛ID本身就具备一定的信誉。其次，既然是专业论坛，信息的精准性比较有保证。论坛的最大问题是，论坛的数量众多，而且也会有不少同质性的论坛。如果想更有效的找到自己所需要的东西，你可能得同时关注好几个论坛。 我希望做成怎么样 在众多的二手物品中，数码产品有其特殊性。 量多 数码产品的更新速度越来越快。潮人们，喜新厌旧，很多数码产品在卖相很好的时候就已被打入冷宫。二手数码产品买、卖需求都不少。 物流成本低 如果是家居，物流成本高，这些东西基本上只能做同城交易了。数码产品一般都比较轻，物流成本低，通常不受同城的限制。 网站形式 以数码产品的交易为主题，网站形式类似现在广泛存在的同城网站。 因为数码产品的交易大多不受同城的限制，因此取消同城的设置。 信息发布方面，尽量简单。用户发布信息时，只需要填写简单的物品描述信息即可，和论坛发帖类似。 只能发布二手信息，不可发布求购信息。 加强SNS功能。在个人信息页面中尽量提供个人主页、douban、facebook等信息，以ID作为信誉保证。 为啥最终作成了数据挖掘网站 做个简单的二手交易网站的工作量并不大。但没基础的核心用户，网站基本上无法正常运作起来。若是为了提供基础数据，让系统从其他网站抓起数据来滥竽充数，则无法形成网站的“文化”。既然如此，倒不如先做个数据挖掘的网站。若该网站能积累一定的基础用户，则可考虑启动下一步的工作，启动二手交易网站方面的工作。 二手数码控功能规划 二手数码控特指数据挖掘网站，二手交易部分的功能至少在短期内是不在议程之内的。考虑到今天太晚，这部分的内容留在下次再写。]]></description>
			<content:encoded><![CDATA[<p>项目地址：<a href="https://github.com/vicalloy/scnews">https://github.com/vicalloy/scnews</a></p>
<p>对目录结构做了些调整，并将代码托管到github。</p>
<p>虽说对互联网行业比较感兴趣，工作却一直和互联网没多少关系，说起来也是叶公好龙。这世界大多人都是“说，天下无敌。做，无心无力”。于是想，整个简单的项目做个实践吧。</p>
<p>因为这是业余时间的一个实践，为不妨碍自己的工作与业余生活，这个项目必定会是一个非常简单的项目。</p>
<h3>网站定位</h3>
<h4>现有二手交易网站的问题</h4>
<p>每个人都会有些食之无味，弃之可惜的东西。目前交易二手货的主要途径有：淘宝、58等同城网站、专业论坛（如苹果产品的weiphone等）。</p>
<ul>
<li><strong>淘宝</strong> 对普通用户的二手交易有诸多限制，发布二手信息非常的不方便，也不容易被其他用户找到。通常用户在淘宝发布二手信息后，还需到专业论坛发帖宣传。 </li>
<li><strong>同城网站</strong> 信息确实非常的多，信息的真实性方面就没多少保证了。无用信息过多，用户想过滤出有效信息的成本过大。 同城网站发布的信息按照城市区分。我认为这是一个过时的做法。在物流业高度发达的今天，很多二手交易已经不再受到同城的局限。 </li>
<li><strong>专业论坛</strong> 就目前而言专业论坛是完成二手交易的最佳地点。首先论坛ID本身就具备一定的信誉。其次，既然是专业论坛，信息的精准性比较有保证。论坛的最大问题是，论坛的数量众多，而且也会有不少同质性的论坛。如果想更有效的找到自己所需要的东西，你可能得同时关注好几个论坛。 </li>
</ul>
<h4>我希望做成怎么样</h4>
<p>在众多的二手物品中，数码产品有其特殊性。</p>
<ul>
<li><strong>量多</strong> 数码产品的更新速度越来越快。潮人们，喜新厌旧，很多数码产品在卖相很好的时候就已被打入冷宫。二手数码产品买、卖需求都不少。 </li>
<li><strong>物流成本低</strong> 如果是家居，物流成本高，这些东西基本上只能做同城交易了。数码产品一般都比较轻，物流成本低，通常不受同城的限制。 </li>
</ul>
<p>网站形式</p>
<ul>
<li>以数码产品的交易为主题，网站形式类似现在广泛存在的同城网站。 </li>
<li>因为数码产品的交易大多不受同城的限制，因此取消同城的设置。 </li>
<li>信息发布方面，尽量简单。用户发布信息时，只需要填写简单的物品描述信息即可，和论坛发帖类似。 </li>
<li>只能发布二手信息，不可发布求购信息。 </li>
<li>加强SNS功能。在个人信息页面中尽量提供个人主页、douban、facebook等信息，以ID作为信誉保证。 </li>
</ul>
<h3>为啥最终作成了数据挖掘网站</h3>
<p>做个简单的二手交易网站的工作量并不大。但没基础的核心用户，网站基本上无法正常运作起来。若是为了提供基础数据，让系统从其他网站抓起数据来滥竽充数，则无法形成网站的“文化”。既然如此，倒不如先做个数据挖掘的网站。若该网站能积累一定的基础用户，则可考虑启动下一步的工作，启动二手交易网站方面的工作。</p>
<h3>二手数码控功能规划</h3>
<p><strong>二手数码控</strong>特指数据挖掘网站，二手交易部分的功能至少在短期内是不在议程之内的。考虑到今天太晚，这部分的内容留在下次再写。</p>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2011/08/scnews-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>二手数码控，论坛二手信息汇聚网站</title>
		<link>http://haoluobo.com/2011/07/what-is-scnews/</link>
		<comments>http://haoluobo.com/2011/07/what-is-scnews/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 15:54:49 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[二手数码控]]></category>

		<guid isPermaLink="false">http://haoluobo.com/2011/07/%e4%ba%8c%e6%89%8b%e6%95%b0%e7%a0%81%e6%8e%a7%ef%bc%8c%e8%ae%ba%e5%9d%9b%e4%ba%8c%e6%89%8b%e4%bf%a1%e6%81%af%e6%b1%87%e8%81%9a%e7%bd%91%e7%ab%99/</guid>
		<description><![CDATA[二手数码控 是一个论坛二手数码信息的聚合网站。目的是想将各大论坛中的二手数码信息汇聚起来。这个网站会有些类似论坛二手信息的搜索引擎。 目前这个网站还非常的简单，只是简单的将一些数码论坛二手区的rss汇聚了起来（使用feedparser做rss解析）。日后会增加搜索功能，并仿造googlereader的做法提供帖子的摘要信息。RSS以及移动终端的支持也是要的。数据源方面会对未提供rss输出的论坛提供支持，初步计划用pyquery做数据分析。 考虑到网站代码非常简单，且比较乱也懒得整理，所以就不开源了。]]></description>
			<content:encoded><![CDATA[<p><a href="http://essmk.com/" target="_blank">二手数码控</a> 是一个论坛二手数码信息的聚合网站。目的是想将各大论坛中的二手数码信息汇聚起来。这个网站会有些类似论坛二手信息的搜索引擎。</p>
<p>目前这个网站还非常的简单，只是简单的将一些数码论坛二手区的rss汇聚了起来（使用<a href="http://www.feedparser.org/" target="_blank">feedparser</a>做rss解析）。日后会增加搜索功能，并仿造googlereader的做法提供帖子的摘要信息。RSS以及移动终端的支持也是要的。数据源方面会对未提供rss输出的论坛提供支持，初步计划用<a href="http://pyquery.org/" target="_blank">pyquery</a>做数据分析。</p>
<p>考虑到网站代码非常简单，且比较乱也懒得整理，所以就不开源了。</p>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2011/07/what-is-scnews/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>simple-todo (Django 版)</title>
		<link>http://haoluobo.com/2011/07/simple-todo-django/</link>
		<comments>http://haoluobo.com/2011/07/simple-todo-django/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 12:50:49 +0000</pubDate>
		<dc:creator>vicalloy</dc:creator>
				<category><![CDATA[vicalloy的庄家]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://vik.haoluobo.com/blog/2011/07/simple-todo-django-%e7%89%88/</guid>
		<description><![CDATA[项目地址：https://github.com/vicalloy/django-simple-todo 缘起 simple-todo最早是web.py一个中文教程的例子。后来Uliweb的作者limodou 认为这个教程很不错，于是有了Uliweb版的simple-todo。接着又有了Bottle版和Flask版。这俨然成了一个FrameworksShow项目。既然是FrameworksShow， 那Django的总不应当缺了吧。 simple-todo: 一个简易的 todo 程序 http://simple-is-better.com/news/309 Simple Todo (Uliweb 版本) 教程 by @limodou http://simple-is-better.com/news/312 Simple-TODO Bottle 实现版 by @zoomquiet http://simple-is-better.com/news/509 Simple-TODO Flask实现版 by @wyattwang http://simple-is-better.com/news/524 运行需求 Django&#62;=1.3 安装及运行 初始化数据库： python manage.py syncdb 启动： python manage.py runserver 使用： 在浏览器中打开 http://127.0.0.1:8000/ Django Admin: 在浏览器中打开 http://127.0.0.1:8000/admin/ 项目开发记录 创建django project和app: django-admin.py startproject simple_todo_site cd simple_todo_site/ <a href="http://haoluobo.com/2011/07/simple-todo-django/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>项目地址：<a href="https://github.com/vicalloy/django-simple-todo">https://github.com/vicalloy/django-simple-todo</a></p>
<h4>缘起</h4>
<p>simple-todo最早是web.py一个中文教程的例子。后来Uliweb的作者limodou 认为这个教程很不错，于是有了Uliweb版的simple-todo。接着又有了Bottle版和Flask版。这俨然成了一个FrameworksShow项目。既然是FrameworksShow， 那Django的总不应当缺了吧。</p>
<p>simple-todo: 一个简易的 todo 程序<br />
<a href="http://simple-is-better.com/news/309">http://simple-is-better.com/news/309</a></p>
<p>Simple Todo (Uliweb 版本) 教程 by @limodou<br />
<a href="http://simple-is-better.com/news/312">http://simple-is-better.com/news/312</a></p>
<p>Simple-TODO Bottle 实现版 by @zoomquiet<br />
<a href="http://simple-is-better.com/news/509">http://simple-is-better.com/news/509</a></p>
<p>Simple-TODO Flask实现版 by @wyattwang<br />
<a href="http://simple-is-better.com/news/524">http://simple-is-better.com/news/524</a></p>
<h4>运行需求</h4>
<p>Django&gt;=1.3</p>
<h4>安装及运行</h4>
<p>初始化数据库： python manage.py syncdb</p>
<p>启动： python manage.py runserver</p>
<p>使用： 在浏览器中打开 <a href="http://127.0.0.1:8000/">http://127.0.0.1:8000/</a></p>
<p>Django Admin: 在浏览器中打开 <a href="http://127.0.0.1:8000/admin/">http://127.0.0.1:8000/admin/</a></p>
<h4>项目开发记录</h4>
<ol>
<li>创建django project和app:
<pre>django-admin.py startproject simple_todo_site
cd simple_todo_site/
python manage.py startapp simpletodo</pre>
</li>
<li>编辑settings.py完成数据库、模板、静态文件等配置，主要配置条目:
<pre>#注：我认为django应当加更多的默认设置，这些配置改的挺烦
DATABASES
INSTALLED_APPS
STATIC_ROOT
STATICFILES_DIRS
TEMPLATE_DIRS</pre>
</li>
<li>编辑urls.py把django admin和static文件url配置加上。</li>
<li>编辑simpletodo/models.py，完成数据模型:

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">db</span> <span style="color: #ff7700;font-weight:bold;">import</span> models
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">contrib</span> <span style="color: #ff7700;font-weight:bold;">import</span> admin
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Todo<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:
    title = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span> max_length=<span style="color: #ff4500;">255</span><span style="color: black;">&#41;</span>
    finished = models.<span style="color: black;">IntegerField</span><span style="color: black;">&#40;</span>default=<span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__unicode__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">title</span></pre></div></div>

</li>
<li>创建数据库:
<pre>python manage.py syncdb</pre>
</li>
<li>跑起来，进django admin看看先:
<pre>python manage.py runserver
#http://127.0.0.1:8000/admin/</pre>
</li>
<li>接下来，略&#8230;</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://haoluobo.com/2011/07/simple-todo-django/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

