Django

我和Django

我使用python的很大一部分原因就是django。虽然在以前也用过python,不过始终没有什么特别的感觉。然后接触到了django。可以说django非常对我的胃口,特别是他的admin给人的感觉特别的棒。
django是个独断且固执的框架,框架里用的组件都是自己写的,而且往往会“知错不改”。所以用django就要试着thing in django,接受django所谓的设计哲学,如果接受不了那就换pylons或ROR什么的试试吧。
django并不完美,但这并不妨碍她成为一个优秀的web开发框架。

资源

  • django官网
  • django文档
  • Django Step by Step 曾是最佳的django入门教程,只是这个教程是针对0.95的,现在不少地方已经有所变动。注:这里有个基于Django1.1的2010版,看样子似乎是转帖,不知道原帖地址。
  • django可复用app设计
  • django最佳实践 django可复用app设计 的一个更好的分支。个人为人这个文档是每个django开发人员必读的。
  • django最佳实践 中文翻译
  • django book 一本免费的django电子书
  • django book 中文翻译
  • djangosnippets 一个关于django的代码片段网站,在里面可以找到一些应用的django代码片段。站点本身是用django写的,且开发源码。
  • djangosites 这个网站里介绍了很多实用django搭建的站点。而且可以从这里找到很多带源代码的django站点。不过我个人觉得里面没有多少值得参考的站点代码。
  • DjangoCon 里面可以找到一些不错的技术主题
  • Django Packages 帮助寻找Django可服用组件的网站。将可复用组件进行归类,并以表格的形式进行对比。

使用django搭建的站点

  • addons.mozilla.org FireFox的插件下载网站,从google的统计数据上看PV大概在douban一半的样子。技术细节方面可以看他们的幻灯片。该网站完全开源,代码可以在这里找到。
  • disqus 这个网站在国内见得不多,可能很多人对它不太清楚。这个网站为其他网站增加评论功能。据其介绍,该网站每月有1.2亿的独立访问者。技术细节参考他们的幻灯片
  • bitbucket 基于HG的代码托管网站。
  • django官网 django官网本身使用django搭建,而其提供了代码。django官网的大多功能由整合的trac实现,所以网站的django代码没几行。
  • 海报网 据说这是目前流量最大的django站点。据我的了解,这个网站的流量也确实大的有些超乎想象,该网站应当有接近CSDN的流量。不过这个网站将大量的页面进行了静态化,如果以这个网站的标准来评价django的性能应当不够客观。
  • 好看簿 国内的另一个django站点,目前也有不错的流量。作为该网站的用户,我感觉网站的响应速度并不怎么快。看来好看簿在服务器优化方面还需要更多的努力。
  • instagram 在短时间内迅速崛起的一个iPhone应用,用户增长的非常快。从技术人员的角度看,instagram的迷人之处是在不足10人的情况下,服务了万用户。在这篇文章(What Powers Instagram: Hundreds of Instances, Dozens of Technologies)里,有介绍他们所用到的一些技术。

django的开源项目

  • pinax

    这是我看到的最有价值的django开源项目。pinax可以看做是django的一个脚手架。她提供了快速开始一个新django项目的方法,同时对大
    量第三方app的使用方法进行了演示。django的app质量参差不齐,如果你想挑选app,那你可以看看pinax里都集成了哪些app。pinax
    里集成了的app通常都不至于太烂。此外pinax自身也带了一些有用的app,比如blog等。
    如果你想以最快的速度了解pinax,可以去 http://cloud27.com/ 看看。这是一个用pinax搭建的SNS网站。

  • Satchmo 网店系统。看她的介绍,似乎已经有不少人在用这东西了。
  • LFS(Lightning Fast Shop) 网店系统,就Demo来看似乎是倾向于房屋交易平台。陆陆续续的也有部分商业网站开始使用该系统了,比如这个
  • reviewboard 非常有前途的一个code review工具。最开始是VMware在用,来后给开源了。

django相关资源

  • twitter-bootstrap twitter开源的前端UI解决方案。对于缺少美工的开发者而言利用bootstrap可以很方便的作出还不错的界面。
  • Fabric Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行。这些功能非常适合应用的自动化部署,或者执行系统管理任务。
  • virtualenv 用于在一台机器上创建多个独立的python运行环境。使用virtualenv可以避免因在一台机器上部署多个应用时出现的python库版本冲突问题。
  • Gunicorn Gunicorn 绿色独角兽'是一个Python WSGI UNIX的HTTP服务器。有着不错的性能,而且使用非常简单。instagram使了Gunicorn。

django的可重用APP

Django Packages 这个网站将可复用组件进行归类,并以表格的形式进行对比。如果你想找Django可重用APP,去这个网站是最方便的。我这里只对我认为最优秀的Django APP进行整理。

项目组织

django没有统一的项目组织规范,所以django项目的目录组织方式都各不相同。为解决该问题,也出现了一些相关项目。

  • dj-scaffold 我的django脚手架项目。提供命令dj-scaffold.py,用于生成一个基础的django项目模板。
  • django-startproject 也是用于生成项目模板的项目。我的不少代码都是参考这个项目的。
  • playdoh 顶着mozilla的名头,应当还是值得一看的吧。不过他的目录组织方式不太符合我的习惯的。

CMS

  • Django CMS Django CMS与其说是一个APP,倒不如说这是一个框架。Django CMS是目前开源Django CMS中功能最为完善的一个。Django CMS提供了插件接口,可以方便的以插件的方式进行扩展。此外,目前现成可用的插件也已经有一大堆了。

Forum

Django的论坛APP不少,但到就目前而言,还没有什么杀手级的APP。

  • DjangoBB 功能比较完整。不过我认为搞的有些复杂了,易用性一般。如果你贪图它相对强大的功能,又不怕麻烦的话,可以试试。
  • LBForum 我开发的论坛应用。优点是界面漂亮(提供了FluxBBV2EX两种界面风格),部署简单,功能方面就不怎么强大了。如果你想要一个简单易用的Django论坛系统,推荐这个。

Blog

用Django写Blog数量众多(可能是数量最多的Django应用了),我虽然也写了一个,但我是不会去用这些Django博客。Blog很重要的一点是那些漂亮的模板。如果使用这些小众的东西,实在是难以找到让人满意的模板。

  • zinnia 功能比较完善的一个Django博客,界面比较清爽。简单的看了一下她的代码,感觉写的很规范。比较看好这个博客系统。如果你想用django搭建自己的博客,推荐试试。

调试

  • django-debug-toolbar 为django站点增加调试功能,支持查看django生成的sql语句,及sql的执行时间等,功能强大。不过由于该组件使用了jquery,似乎会使用部分使用了jquery的站点无法正常工作。
  • sentry disqus的开源项目。将django的所有异常保存到数据库,并提供异常的察看界面。
  • django-devserver django开发服务器扩展。将SQL语句/执行时间等调试信息直接显示在控制台上,而且是以彩色的方式显示。

数据库升级

在项目开发过程中表结构的变动总是难免,django目前还不支持表结构的自动更新,不过相关的第三方app倒不少。

  • South South已经比较成熟了,就目前而言South是该类APP的不二选择。

注册、认证

  • django-userena 功能完善的注册模块,支持用户信息维护,头像上传,甚至还带了个站内消息模块。推荐使用。
  • Django-Socialauth 支持使用Facebook, Yahoo, Gmail, Twitter and Openid的帐号进行登陆认证。
  • django-socialregistration 支持OpenID, OAuth and Facebook的认证。似乎和Django-Socialauth差不多。没有对比过,希望用过的朋友给些心得。
  • django-registration 注册功能,支持帐户的邮件激活。该项目似乎已经停止维护了。可作为参考项目,不太建议在新项目中使用了。
  • django-auth-ldap Django的LDAP认证支持,使用LDAP的集成变得简单。

权限认证

  • django-guardian Django提供了精确到对象的权限控制API(比如那些人有权限编辑具体的某个文档),但Django并没有相关的实现。django-guardian给出了该API的实现,让你可以实现对具体对象的权限控制。

css/js静态资源压缩

  • django_compressor 自动对django模板中的css/js进行压缩处理,加快网站的加载速度。支持coffeescript以及less。

Tagging

为站点增加Tag功能

Avatar(用户头像)

  • django-avatar 当前首选。感觉复杂了些,而且我觉得支持多个头像啥的功能不是很实用,还增加了复杂度。
  • django-simple-avatar 我自己写的avatar APP,其中的不少代码来源于django-avatar。用起来比django-avatar要简单些。

翻页

  • django-pagination 一组翻页相关的utils,包括用于实现翻页的tag等。使用起来非常简单。是目前使用最多的分页APP。
  • django-paging 另一个翻页的APP,优点是支持jinja2作为模板。如果模板用了jinja2,可以考虑下。

搜索

  • Haystack 全文搜索组件,提供对Solr Whoosh Xapian的支持。就它的quick start来看是挺易用的。该项目托管在github,似乎还挺有人气。

RESTful

  • django-tastypie 编写RESTful API用的APP,此类APP中这个目前活跃程度以及发展情况来看是最佳选择。
  • django-piston bitbucket在使用,不过活跃程度比较低。用来写RESTful API的东西,据说很方便。未使用过,不多做评论。

消息队列(异步执行)

  • django-celery web应用中难免会有些很费时的操作需要作成异步处理(比如在后台发送邮件,更新索引等),django-celery就是为解决该问题出现的。

其他

    • django-extensions django一些扩展的集合。东西比较杂,具体使用还是去看看她的文档吧。

Django资源汇总(转)的更多相关文章

  1. Github上PHP资源汇总大全,php学习的好资料

    Github上PHP资源汇总大全,php学习的好资料 国外程序员ziadoz 在Github上收集整理了PHP的各种资源,内容包括模板.框架.数据库.安全等方面的库和工具.汇总了各种PHP资源,供各位 ...

  2. Kinect开发资源汇总

    Kinect开发资源汇总   转自: http://www.sigvc.org/bbs/forum.php?mod=viewthread&tid=254&highlight=kinec ...

  3. 微信小程序(应用号)资源汇总整理

    微信小应用资源汇总整理 开源项目 WeApp - 微信小程序版的微信 wechat-weapp-redux-todos - 微信小程序集成Redux实现的Todo list wechat-weapp- ...

  4. 【特别推荐】Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  5. 知名杀毒软件Mcafee(麦咖啡)个人版 资源汇总兼科普(来自卡饭)

    虽然早已不是用咖啡了,但我也实时关注的咖啡的一举一动,潜水看帖日久,发现小白众多,好多有价值的帖子淹没于帖海当中,甚是惋惜.     我有如下建议      1.咖啡区管理层,能否吧一些优秀的资源教程 ...

  6. GitHub最全的前端资源汇总仓库(包括前端学习、开发资源、求职面试等)

    在GitHub上收集的最全的前端资源汇总(包括前端学习.前端开发资源.前端求职面试等) 个人结合github上各位大神分享的资源进行了简单的汇总整理,每一个条目下面都有丰富的资料,是前端学习.工作的好 ...

  7. 数据可视化的优秀入门书籍有哪些,D3.js 学习资源汇总

    习·D3.js 学习资源汇总 除了D3.js自身以外,许多可视化工具包都是基于D3开发的,所以对D3的学习就显得很重要了,当然如果已经有了Javascript的经验,学起来也会不费力些. Github ...

  8. KbmMW资源汇总(更新中…)

    KbmMW框架是收费的,不在此提供下载,如需购买,请自行联系作者Kim Madsen. 网址资源: 官网主页:http://www.components4programmers.com/product ...

  9. ENode简介与各种资源汇总

    ENode简介与各种资源汇总 ENode是什么 ENode是一个.NET平台开源的应用开发框架,为开发人员提供了一套完整的基于DDD+CQRS+ES+(in-memory)+EDA架构风格的解决方案. ...

随机推荐

  1. Groovy学习()起步

    安装Groovy 在Windows环境下安装Groovy 下载安装包,傻瓜安装,设置环境目录,就这样搞定. 另外还需要安装Java并且设置JAVA_HOME环境变量. 两分钟搞定. 使用groovys ...

  2. webservice文件上传下载

    使用DataHandler实现webservice的文件上传下载 服务端代码: package com.hello.weChat.controller; import javax.activation ...

  3. SQL简明教程系列15 创建索引

    CREATE INDEX用于在表中创建索引. 索引使数据库应用程序可以更快地查找数据. 注:更新一个包含索引的表比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新.因此,理想的做法是仅仅在常 ...

  4. PCB标识说明

    VDC (Voltage Direct Current),直流电压 VBAT,电池供电 PWKEY,电源键 RXD,数据接收 TXD,数据发送 Receive Data ,Transmit Data ...

  5. Unity3D项目之 Survival Shooter 记录

    1.导入资源 2.把预设文件的环境拖到场景中, 3.位置归0 4.保存场景 5.删除默认灯光,把预设灯光拖到场景中,位置归0 6.新建一个 Quad 7.旋转90度,设置缩放100,100,1 重命名 ...

  6. java中main方法的 (String []args)

    java中main方法的 (String []args)         String[] args是main函数的形式参数,可以用来获取命令行用户输入进去的参数.java 本身不存在不带String ...

  7. (转)zero copy原理

    转自: http://blog.csdn.net/zzz_781111/article/details/7534649 Zero Copy 简介 许多web应用都会向用户提供大量的静态内容,这意味着有 ...

  8. SQL命令优化(积累)

    与数据库交互的基本语言是sql,数据库每次解析和执行sql语句多需要执行很多步骤.以sql server为例,当数据库收到一条查询语句时,语法分析器会扫描sql语句并将其分成逻辑单元(如关键词.表达式 ...

  9. Tomcat高并发配置优化

    用的JMeter在自己电脑上测试的.Ubuntu10.04(x64)内存2G,cpu E5400 主频2.7.jdk1.6.0_27(x64) , tomcat6.0.33(x64) , oracle ...

  10. Linux JAVA 配置

    wget http://download.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-x64.tar.gz tar zxvf jdk-7u2 ...