首页  »  django

Pinax的意义

某天在研究pypy的时候无意中看到了pinax,了解之下,觉得pinax真的很聪明,跟我正打算做的事情很像!她是一个基于Django的基础应用--我这里讲基础应用的意思是她既不是开发框架,又不是一开箱即用的成熟应用(当然你不介意那简陋的界面的话,它是开箱即用的),而是介于两者之间的东西。她集成了很多第三方的Django app,这使得她自己内置了很多SNS网站、公司内部网站所需要的基础功能,你要做一个SNS网站,拿来改改界面就好,你要做公司内网应用,拿来改改界面也行了。

初次接触时,还没有安装来研究,就屁颠屁颠地跟老潘说这是个好东西(我对云和企业内部办公系统有些想法,经常和老潘交流),老潘一看说颇有Plone的影子了。后来安装下来看了看,离plone所谓的应用服务器那个级别还差远了,pinax可以看作是一系列的Project template(项目模板)。接下来给出几种模板的应用运行时的截图,大家看看就明白了。至于更深入的探究不是今天要说的,有兴趣的同学直接试一试更有意义。

pinax-base

图一:basic_project,最简单的应用模板。

 

pinax-intranet

图二:内部应用的模板,提供了几种内部应用用到的功能,如任务、wiki等。

 

pinax-sns

图三:Pinax提供的最复杂的一个应用模板,SNS应用,不少SNS网站是基于这个来开发的。

Pinax给开发者带来什么?
一、没有技术上的转变,该用Django还是使用Django那套东西。
二、提供了一套基础网页模板和Tab布局。这个虽然简单,但十分实用,要换套皮肤,把现成的扔给美工MM略作修改即可,无需从0开始。
三、Pinax提供的最复杂的应用模板是一个SNS应用,实际上是一个完全可以马上投入使用的产品。Pinax说,我们已经为您提供所有需要的,你要做的只是让你的网站看起来与众不同。

题外话:
一、Django变得越来越强大的同时也变得复杂,要全部掌握Django的内容门槛不低,但这不妨碍初学者快速上手。
二、有人说,django变得越来越像zope,但实际上django的门槛恐怕没有zope的20%吧,虽然django渐渐肥胖,但新增的很多东西都是可选的,并且是在web开发过程中必需去解决的问题。大家看到新出一个web framework很清爽简单,不过走着瞧吧,到最后,他不是整合其他第三方的基础模块就是自己继续砌砖,直到又有ORM、Template、Form、中间件、UrlRoute、I18N,I10N等等等等,大家殊途同归,区别不过是OEM或Fullstack而已。
三、Django社区很活跃,看看第三方的app就知道,以至于有人可以全使用第三方的应用(没有自己的Model)搭起一个博客,以及现在这个pinax。 
四、web应用开发领域,可重用的东西太多,于是有了框架,而技术之上的业务层面,可重用的东西也有很多,例如用户、权限、流程引擎等,Django首先把这业务层面可重用的东西做了一套参考标准并放到开发框架里面来了,大善!太实用了!这也是我几年前希望为公司内部的开发框架做的事(后来遇上Django后,没太多激情在java的webframework上折腾这些了)。 

折腾TinyMCE图片上传的结果

由于敬爱的DropBox同学不幸被吾裆阉割了一半(不能访问外链,还能同步),导致本博的部分重要图片被墙,无法翻墙的同学看着大叉叉心神不宁。我以前使用毕卡索来做图片服务器,后来毕卡索被墙后换了DropBox,但不幸的是DB同学由于出过不少次风头而也被切了一半,看来,图片这东西还是放在自己服务器靠谱,就算被墙也是换个域名的事,不用大量修改文章里的图片链接那么痛苦。

本博在去年更新程序的时候换了TinyMCE做为WYSIWYG编辑器,但一直没有时间做个图片上传的插件(用不起官方那个商业版的),最近决定折腾折腾。

凡事先Google,django + tinymce + image 等关键字一出,马上找到一些好东东。

首先是Django-FileBrowser,她是一个强大而美丽的文件管理器。

更多截图

然后我顺腾摸瓜找到了Django-grappelli,她又是一套优雅实用的Django-admin样式和扩展,除了有一套优雅大方的样式,她还为Admin加入了书签和导航栏等功能,甚为实用,可移步到这里来围观围观

这两个应用都与TinyMCE完美整合,最好两者一起使用,当然不用grappelli也无大碍。

这两个应用我都照单全收了,我在线把她们安装到我的服务器上,这样一来,我不仅解决了图片上传的问题,还收获了一套美观的样式、得到了一个实用的文件管理器。喔!上艳照。

my tinymce

现在发图方便了,下面我要发飚了。

webfaction上一键部署Django应用

Webfaction是一款聪明体贴的虚拟主机(除了hosting应用外,我每天都拿来Fuck G/F/W),对程序员友好是她的一大卖点。本文以部署Django应用为例,看看Webfaction是如何工作的。

在开始之前,先简单介绍一下Webfaction对网络应用所做的一些定义:域名(Domain)、应用程序(Application)、站点(Site)。

域名(Domain):指常规的域名,一个域名只可以对应一个站点(Site),但一个站点(site)可以绑定N个域名。webfaction同时可提供域名托管服务,只要把域名的NameServer指向webfaction的名字服务器即可,webfaction提供无限多个子域名哦。

应用程序(Application) :应用程序表示一个Web应用,如一个使用Django写的Blog,或是一个php的bbs。应用程序必须成为网站才可以被访问,所以建立完应用后,webfaction并不会马上运行。一个Web应用,可以用于多个站点。

站点(Site) :站点就是网站,可以通过域名表现出来的,如www.fallever.com就是一个站点,iloveu.fallever.com又是一个站点。

其实这些概念的关系很简单, 只是上面可能讲复杂了,看不懂不要紧,继续看就是了。

建立一个Django应用程序

通过https://panel.webfaction.com登录到控制台,点击 “Domains / websites -> Applications”进入应用程序列表。

进入应用程序列表后,在列表的右下角,有个新增应用程序的小图标,点击开始新建一个应用程序。

创建新应用

接下来会来到创建应用程序页面,我们需要填写一个表单,表单有几个项:

Name:填入应用的名称,如example。

App type:嘿,这里是魔术发生的地方,webfaction为我们准备了近百种内置应用程序模板,我们创建应用程序所要做的仅仅是选择应用的模板,然后点击创建即可。

App doc:这是对所选择应用类型的说明文档。

Extra Info:附加信息,依所选的应用类型而定。

创建应用表单

我们现在要创建一个名叫example的Django应用。那么,我们输入应用名字,接着,点击App type展开应用类型列表。OMG!

当Django就占满了一页!你想要使用任何版本的Django都可以,webfaction提供的Django部署方式有包含但不限两种:Django + mod_wsgi和Django + mod_python。

当然,除了Django以外,webfaction提供大量python和python以外的web应用框架和应用程序,如CherryPy,TurboGear,Rails,PHP,WordPress,Joomla,Durpal,甚至Plone,Zope全系列。除此之外,还可以一键安装Trac,subversion,AWStats等协合工具,源码控制系统和网页统计应用。更重要的是,webfaction不仅能做这些,你自己可以在上面跑列表里面没有的应用,如写一段代码监听端口,或者是跑Java虚拟机!这,正是webfaction吸引我的一个重要原因。

有图有真相:

应用类型

最后,我选择了使用Django最新版本的代码与mod_python来架设新应用。现在点击Create来创建吧!

应用详情

千真万确,创建一个Django应用并让它跑起来就那么简单:填个名字,选个模板,点个Create。想起以前在其他主机上面部署个Django应用累得够呛,版本稍有与服务器的不一样的话,麻烦更大。而在webfaction,这一切都不用我担心。

创建一个子域名

应用是建立起来了,怎么样访问呢?那得有个域名!没错。得配个域名。

webfaction会给每一位用户一个二级域名,那就是“用户ID.webfactional.com”,比如我的二级域名就是“jeffjie.webfactional.com”,我们可以在此基础上建立三级域名来访问我们刚才建立的应用。

回到webfaction控制面板,我们通过点击"Domain / websites -> Domains"来访问域名列表。

域名列表

在域名列表里有一个默认的域名了,那就是"用户ID.webfactional.com"。点击该行右边的编辑按钮进行域名编辑页面。

编辑域名

在此,我们可以给一个域名添加无限多个子域名,而这一次,我们按照上图的指示,增加一个子域名,名叫example,也就是希望将来可以通过example.jeffjie.webfactional.com来访问到刚才创建的应用。

创建一个站点

有同学可能不禁要问,应用有了,域名有了,可以访问了吧?答案是差不多矣,只差绑定。

所谓的站点,不过是域名与应用的关系体现,域名与应用是多对多的关系,站点其实就像一张中间表,应用映射到不同的域名就是不同的站点了。webfaction这样的设计很聪明,极大程度地复用Web应用。

肺话不多讲,直指创建站点吧!还是在控制面板里,通过"Domain / websites -> Websites" 来访问站点列表。在列表右下方点击创建站点图标进入创建页面:

创建站点

填写表单来创建站点,站点命令还是叫example吧。Ip是指你正在用的虚拟主机地址,不用管。选择该站点相应的域名,可以多选,这里我们选择刚建好的example.jeffjie.webfactional.com。

值得注意的是Site apps,这里配置的是路径与应用程序的关系,如图所配置,代表着用户访问根目录时,所访问的是example应用,可以建多个这样的路径与应用的映射,例如我要为站点加一个blog,我会配一个"/blog"的路径,指向一个wordPress应用。

最后,还是点击Create按钮,完成最后一步。

访问站点

现在马上看看我们努力的成果吧!访问http://example.jeffjie.webfactional.com 看看。。

咦,怎么是这个结果呢?

没配置好

是的,webfaction的域名绑定可能还没见效,稍等一两分钟就可以了。(同学们如果现在访问http://example.jeffjie.webfactional.com的话还会是这样,因为我写完这篇文章后马上删除了这个站点,减少资源占用)。

一两分钟后,再访问一次,结果变成了Django的欢迎页面:

首页

都发生了什么事

简简单单几步操作搞定了Django应用的安装,里面都有些什么样的玄机?其实很简单,Webfaction只是把一些脏活累活包揽了罢了。咱们SSH上去看看。

ssh

Webfaction在用户目录下的webapps下面创建了一个example应用,下面有四个文件夹,apache2,bin,lib,myproject。

apache2:是的,webfaction是使用apache来做为动态网页服务器,最外层的服务器是nginx。它给每个应用分配一个apache线程,可以独立启动,停止和重启。

lib:存放关于该应用的库,如python,Django源码等,正因为这样才使得每个应用可以有自己特殊的运行环境。

myprojects:webfaction创建的默认Django project。以后正式部署你自己的应用时,记得要修改apache2/conf/httpd.conf里面的内容。

这里也截一个http.conf的屏吧,算得上是经典的mod_python配置了。

配置

小结

Webfaction的特点就是方便,对程序员特别友好,使用webfaction后,我再没有在部署方面浪费太多工夫,这对我们说,已经是很大程度解放了。

如上面所讲的,不仅仅是Django哦,很多现在流行的应用或框架都可以容易地安装或部署。如果你看了觉得心动,那么,加入我们的队伍吧。

给博客增加文章归档功能

编程 jeff  |  2009-10-11 0 pythondjango博客

博客怎能没有归档功能,长假后的第一个短假,我为自己的博客加上了归档的功能。本来用Django嘛,博客归档使用Generiv View来实现是最简单不过了,不过我这个是多用户博客系统,Generic View在这时没能帮上忙,只有自己动手了。

最终博客归档的效图果如下(左图),参考了blogger的归档风格(右图),可折叠查看博客内所有文章,归档粒度去到月份。

   archive-blogger

关于TreeView的组件,我开始想用Jquery的官方插件Treeview,但后来弃用了,使用国人的lightTreeview 。原因是Treeview长年不更新,文档少,而lightTreeview更小巧,可订制性强,有详细的使用文档,严重推荐之。

PS。Django的内置Filter真全,今天才知道有一个unordered_list的过滤器,Django想的好周到!尽管我这次没用上。

PS2。Drobox用来做博客图片存储空间很方便。

我得了强迫性不写博客症

我又更新博客了!看一眼上一次更新的时间为24天前,哇。。我又那么久没有更新。。其实我每天都希望去更新博客,写一些感想、分享一些技巧。但是在半个月前,当我决定升级一下我的博客时,我开始强迫自己不写博客,不到升级完成也不写。。果然,我就像患了“强迫性不写博客症”一样,一连24天没有更新了。

可以继续更新博客,有种畅快淋漓的感觉!很解放的感觉,就像憋了一天的尿突然遇上厕所一样。这也许是强迫症的唯一好处了。。

我发现自己比较容易患上“强迫性XXX”症或“XXX强迫症”,如“信息强迫症”,“twitter强迫症”,“闲着无事上厕所强迫症”等。。同时,我发现,越是完美主义者,越容易患上这种强迫症,因为完美主义本身就是一种强迫症。。

现在好多了,我的博客程序在国庆长假的最的一天修改完成,我接下来要一口气写好多好多东西了。。

提一下这次博客程序的修改:

  • Django升级到了最新版本。
  • 支持在线安装。
  • 完全使用Django admin来替换掉原来的写作后台,原因是Admin的可订制性越来越强大和灵活了。多个博客后台也不在话下。
  • 一些样式上的小改变。
  • 用tinyMCE换掉了FCK,但丢失了上件上传的功能。
  • 一下子支持了一个人同时管理多个博客。

以后还会每天挤点时间出来折腾这个博客程序,但这次不会再让“强迫性不写博客症”发作了。

webfaction分享型主机托管方案

最近我把自己大部份的站点都移到了Webfaction上面,Webfaction为我服务了几个月,我已经深深喜欢上了她。虽身在国外,但访问速度相当快(她身处某个世界上最好的数据中心),试过在主机上下载sourceForge上的软件速度达到1.2M/S,估计在相同的数据中心。高质量的客户服务更是我为她心仪的重要因素,相对比起国内那帮牛B哄哄的技术支持们,Webfaction的客服显得太有礼貌、响应太及时、太无微不至了。再者,Webfaction支持一萝筐的服务器端语言和他的易用性是我选择她的根本原因。

小到博客,大到复杂的Web应用程序,Webfaction的分享型主机方案可以让你运行任意你喜欢的类型网站。你会得益于她所有的特点,并且你可以通过使用她强大的控制面板来简单实现这些特点,Webfaction的优点是:

  • 让更少的用户共享同一台主机(因此主机更快更稳定)
  • 强大的客户支持(友好而有丰富经验的服务专员)
  • 大量可一键安装的主流、灵活的的软件平台
  • 可扩展的主机(只要你需要,还可以拥有负载均衡的功能)
  • 高品质托管(超过6年的商业运作,主机处于某些世界上最好的数据中心)
  • 值得购买并零风险(60天无条件退款保证)

如果你不知道哪种托管方案最适合你,你可以从“Shared1”(第一次仅支付$9.50)开始,此后你可以随时升级、降级并改月付为年付等,反之亦然。同时,他们提供60天无条件退款的保证,可以让你无风险试用。

下面附上托管方案全系列,供参考,诸位如果有兴趣购买,到时别忘了使用“jeffjie”的推荐码哦,欢迎和我交流webfaction主机或其他 :)

主机托管方案

  Shared 1 Shared 2 Shared 3 Shared 4
(以美元为单位) Signup for Shared 1 Signup for Shared 2 Signup for Shared 3 Signup for Shared 4
价格 (一次支付5年) $5.50/月* $8.50/月* $16.50/月* $24.50/月*
价格 (一次支付3年) $6.50/月* $10.00/月* $18.50/月* $27.00/月*
价格 (一次支付2年) $7.50/月* $11.50/月* $20.50/月* $29.50/月*
价格 (一次支付1年) $8.50/月* $13.00/月* $22.50/月* $32.00/月*
价格 (每月支付) $9.50/月* $14.50/月* $24.50/月* $34.50/月*
免费安装 FREE FREE FREE FREE
60天无条件退款保证 Yes Yes Yes Yes
磁盘空间 10GB 20GB 40GB 60GB
带宽 (每月) 600GB 1200GB 1800GB 2400GB
应用程序内存** 80MB
(相当于180MB VPS 内存)**
120MB
(
相当于220MB VPS 内存)**
160MB
(
相当于260MB VPS 内存)**
200MB
(
相当于300MB VPS 内存)**
网站  
网站数量 无限制
SSL (https) 支持*** Yes
每日资源使用统计 Yes
DNS完全控制 Yes
Email  
Email 地址 无限制
邮箱 无限制
SMTP, POP and IMAP 安全访问 Yes
Webmail 安全访问 Yes
Mailman 邮件列表 无限制
强大的反垃圾邮件过滤器 Yes
自动回复功能及服务端规则集 Yes
数据库  
数据库数量 无限制
MySQL 支持 Yes
PostgreSQL 支持 Yes
Shell  
全功能SSH 和 SFTP 访问支持 Yes
可以运行如Rails,Django等程序的长请求 Yes
附加SSH,SFTP用户 无限制
备份  
每天全备份 Yes
软件  
为大量的应用程序(包括Rails,Django,Drupal,Wordpress等)提供一键安装功能 Yes
安全的Linux服务器,含上千款预安装工具包 Yes
Apache hosting with PHP, SSI includes, .htaccess files Yes
一键安装 webdav 和 subversion 仓库 (通过 SSL 访问) Yes
可以运行基于PHP,Python,Perl,Java等语言的程序,同时可以使用Mysql及PostgreSql链接。 Yes
可以编译及安装任意软件到HOME目录下面 Yes
附加项  
额外磁盘空间 +$5/月 每 4GB*
额外带宽 +$5/月 每 200GB*
额外内存 +$7/月 每 40MB*
私有IP +$5/month*
  Shared 1 Shared 2 Shared 3 Shared 4
  $5.50/月* 起  $8.50/月* 起  $16.50/月* 起 $24.50/月* 起
  Signup for Shared 1 Signup for Shared 2 Signup for Shared 3 Signup for Shared 4

介绍一款虚拟主机--webFaction

博客在Johnny兄家里借宿久了,不方便,并且WordPress对评论的spamer防不胜防,刚好大郎兄在计划买主机,于是两人一拍即合,一起买了一款新主机--webFaction.

当初我们都想买VPS,国内的有rashost,他们有外国的主机,当时就心动了,准备下手。后来知道webFaction, 据说对python的用户特友好,框架安装使用方便,特别是对django,turboGear甚至是phone,zope这样的庞然大物等支持很到位, 并且价格比起Rashost要便宜,因为有了超级用户权限的SSH帐号,所以VPS就显得不是那么重要了,最后我们选择了webFaction最便宜的包,年付102美元,两人平摊,也就每人¥349一年,10G的存储空间还算不错了,比起国内一大堆很烂的主机要划算得多。

webFaction的前端使用的是Nginx,所以在处理静态资源效率很好,用户的每一个应用可以使用Apache作为第二层服务器进行微调。另外WebFaction还支持透明的横向扩展,只要你有需要。

现在我的博客就是部署在webFaction上的,速度方面大家可以自个感觉一下,我觉得还是蛮快的。

有在寻找python、ruby主机的同学考虑一下webFaction吧,注册过程中如果需要推荐码,就用我的"jeffjie"吧,不知道有没优惠,我当时注册就苦于没有找到推荐码,全价购买。

webFaction

Meta

关于本博客...

关于黑莓手机、apple、twitter、互联网、web2.0以及生活的碎言碎语。请在twitter上 follow我,欢迎同好者talk to me bbmyth AT gmail.com。博客Hosting在 webfaction。

赞助商链接

我看我听我读

最新评论

标签

python 空间 开发 计划 年假 工作 诗歌 音乐 西片 恐怖 惊变 django mysql rss 文艺片 太阳 彩色 电影 apache 部署 factcgi lighttpd javascript editor MYMeditor sql 日志 java hibernate orm 数据库 英伦 摇滚 原创 中间件 朋友 erlang 并发 函数式编程 旅游 云南 丽江 发呆 学习 编程 技术 lucene 全文搜索 中文分词 乐队 模板 分页 成功 google pagerank 中文 更新 个性化 秋天 互联网 web ext json ajax 事业 职业 读书 开源 香港 澳门 忧郁 冬天 compass dvd 广州 地下 暴力 美学 声音玩具 独立 备份 数据 琐事 博客 生活 体验 卖唱 接口 设计模式 图表 wiki moin 遇窃 air ria 需求 设计 信息 健康 感悟 人生 真诚 life jquery 杭州 灾害 2008 中国 灾难 哀悼日 jmesa grails flex flash 捐赠 scrum 软件过程 快速开发 plone cms nuexo zope 左小诅咒 demo prototpye AMF actionscript 汉诺塔 算法 递归 结婚 感情 opensource 网络 beautifulSoup 管理 大理 香格里拉 休假 鼻炎 许巍 感性 2009 随想 cpug 聚会 出差 北京 api 创业 商城 blackberry 手机 TD 交流 处事 为人 房子 经济 手机仿真 在线服务 嵌入式 海鲜 p2p easymule apple 技巧 thing gtd task gfw vpn 穿墙 代理 软件管理 翻译 mac 英语 caffeine 休眠 搬家 主机 prism firefox mozilla 免费 php codeigniter url blogspot mindmap mindnode htmlparse easyurl 产品 黑莓 rim 试手机 豆瓣 twitter 微博 杂记 时空 亲人 dabr webfaction host 快速查看 safari appale 桌面 snow 升级 leopard finder 权限 glims python主机 合租 ruby主机 快捷键 itunes 时间管理 原型 画图 招聘 hosting 写作 软件 家庭 广州技术沙龙 postgres 云计算 fuckgfw 内容审检 谷歌 chrome linux odbc database freetds R 统计 书签 浏览器 bookmark tinymce 文件管理 分享 忙碌 旅行 马来西亚 图维导图 freemind 工具 pinax develope shell dropbox barcamp

日志分类

友情链接

博客归档

PowerBy