Django开发必知必会
来源:互联网 发布:微商城能做淘宝客吗 编辑:程序博客网 时间:2024/06/05 00:12
由于最近发现很多转载笔者的文章而没有说明作者和出处,所以特别在些声明. 本博客所有内容采用 Creative Commons Licenses 许可使用. 引用本内容时,请保留 朱涛, 出处 ,并且 非商业 .版权说明
摘要
Django 作为 python 社区中最流利的web框架,它所强调的就是 快速开发, 复用, 可读. 本文主要介绍使用 Django 来开发所需要了解的知识,其中也包含了一些指导性的原则以及笔者的一些经验之谈.
Contents
基本知识
熟悉python和django
Django 是基于 python 的,所以在开发前需要熟悉相关的技术.
python 推荐几本比较好的书,包括:
- learning python
- python cookbook
熟读 Django 的 官方文档 和相关的书籍,这些都是必须。比较好的书籍有:
- Django Book
- Pro Django
- Practical Django Projects
更多参考 django相关资源.
其它的相关技术
作为web开发的程序员,还需要了解其它的相关技术,包括:
- html
- css
- javascript ( jquery 等)
- ajax
- 网络知识和标准,如 http 协议, TCP/IP网络架构等.
可用的资源
掌握了上面提到的基本知识外,我们对 python, Django 及web开发的相关技术有了一定的熟悉,也对 python 和 Django 的 哲学也有一定的了解,如 Don't Repeat Yourself,Keep It Simple, Stupid, Don't Reinvent Wheels 等.
所以,在开始一个项目之前我们需要了解已有哪些可用的资源.
而在可用的资源中,最需要跟踪的一个项目就是 pinax ,它提供了站点所必须的一些常用功能,而 所采用的方式便是提供一些 可复用的app, 使得我们很容易集成到我们的环境中, 或者基于 pinax 二次开发。
除此之外,还需要了解一些特定领域的相关资源,如:
- 商店 satchmo
- 地理 GeoDjango
- OpenId django-openid
- 等等
在获得特定领域的相关资源后,会大大地提高开发的效率,从而降低成本。
高级知识
掌握上面提到的技术,这时就基本上是一个合格的 Django 程序员了,但是除此之外,还需要了解一些高级的知识.
使用virtualenv+pip来构建独立的开发环境
virtualenv 用于建立一个独立的(与其它module)的虚拟环境,从而使得不同的虚拟环境下的 程序可以依赖于不同版本的module,例如某个django project是基于0.96的,而另外的project是基于 1.1的,所以就必须有不同的虚拟环境。 了解更多参考: pip and virtualenv
使用 pip 来 复制 已有的依赖。 pip 是用来取代 easy_install 的,除此而外, 我们还可以很方便地使用 pip 来 复制 我们当前的工作环境。例如,我们建立一个requirements.txt 文件 来记录我们当前工作环境中的相关依赖程序,然后输入 pip install -r /path/to/requirements.txt, 那么相应的 依赖软件会自动安装。前提是你的系统已经安装了 pip.
除此而外,当你需要部署一个django项目时,可以使用 wsgi 很方便地进行部署,具体参考 virtualenv and wsgi.
使用fabric进行部署
参考 Deploying Python Web Applications
另外,我们还可以使用 python 的强大功能,来实现例如配置文件的路径自适应, 利用调试状态来设定特定的属性等.
推荐的开发流程
可使用下面的开发流程来进行 Django 的开发(假设是从新开始一个项目的):
- 使用 virtualenv 建立相应的独立环境
- 使用 easy_install 和 pip 安装相应的依赖模块
- 多人开发时可将当前的所有模块 复制 给同事( pip 有 feeze 命令来输出当前环境下的所有依赖模块及版本,以保证所有的开发人员使用相同的代码库)
- 为服务器也建立相应的独立环境,并使用 fabric 进行自动化部署.
- 最后,使用 wsgi 和web服务器来发布产品
结论
利用 Django 的 复用, 快速开发 等特性来进行Web开发, 其实是有一定的规律可循的, 除了上面介绍的一些开发知识(技巧)外,如果在开发中你发现某个过程很繁琐,你这时候就要考虑去调研 是否已经存在相关的解决方案.而不要一味地,耗时地去完成.
参考资料
- Notes on using pip and virtualenv with Django
- 啄木鸟社区
- django相关资源
- Django开发必知必会
- 【Django 】Django开发
- django-2:django开发初探
- Django 开发-视图开发
- Django MTV 开发模式
- django web开发指南
- django开发步骤
- django开发学习步骤
- Django开发笔记
- 求 Django 开发资源
- django开发错误处理
- django前台开发框架
- mac下开发 django
- Django Web开发指南
- django开发问题杂记
- Django开发demo
- Django开发问题汇总
- Eclipse下开发Django
- Spinner 的用法和数据填充的两个方法
- [转载]比较好的Socket send recv closesocket shutdown LINGER解释
- fork() 详解
- Java的关系运算符
- 详细解析Java中抽象类和接口的区别
- Django开发必知必会
- delphi——cxGrid
- Android 中短信数据库的简单操作
- 云里雾里云计算 【1】云计算解决什么问题?
- ORA-00119,ORA-00132 错误处理
- C#编写的IE9使用的超级拖拽插件
- 云里雾里云计算 【2】从Google集群到云计算,云计算的商业模式
- java 数字格式化:小数点、百分比
- C#基础之结构体(struct)