对于Python的Django框架使用的一些实用建议

 更新时间:2015年04月03日 11:31:26   作者:Glen Stansberry  
这篇文章主要介绍了对于Python的Django框架使用的一些实用建议,包括一些优秀模块的介绍,要的朋友可以参考下

前言:随着Django1.4第二个候选版的发布,虽然还不支持Python3,但Django团队已经在着手计划中,据官方博客所说,Django1.5将会试验性的支持python3。

Django 作为一个杰出的Python开源框架,或许得不到和其它流行框架如Rails这样多的赞美,但是它和其他框架一样精炼,非常注重DRY(Don't Repeat Yoursef)原则、组件的重用性,通过自动化过程使编码更简洁。

如果在Django项目中能够灵活使用某些方法和技巧的话,它将大大加快软件开发的速度同时避免很多头疼的事。作者在下面列举了几点,这些方法由浅入深,可以帮助任何级别的程序员更加熟练的使用Django。

0、  在配置中使用相对路径

某些原因使得项目可能常常会被来回的迁移。如果没有事先规划好这种可能性的话这绝对是一个棘手的问题。Rob Hudson 有一个极好的技巧能够确保你的Django项目在部署过程中能够轻松的来回迁移。仅仅只要编写几行代码在你的配置文件(settings.py)中。
 

import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
 
TEMPLATE_DIRS = (
  BASE_DIR + '/templates',
)

 

1、  使用{%url%}标签

尽可能使用向后兼容的{%url%}标签来替换硬编码形式的href,与使用绝对路径的url(当然最好不要这样做) 一样达到相同的效果。你的Django项目迁移起来,那些链接也不会有影响。(译者注:比如说我们有一个views.about函数指向about页面r'^about/$',就可以{% url views.about as about_url %}然后用{{about_url}}这个变量来代替绝对URL地址)尽管它还不是最高级的技巧,但是它确实值得你应用于Django项目中。
2、  尝试把Django admin应用到PHP项目中

Django最伟大的特性之一就是已经成为Django的核心功能的用户验证系统。它易安装,主要用于用户认证和其它一些必要的配置。这个酷毙了的用户系统甚至被建议应用到你的PHP项目中去,这里有一边Jeff Croft 关于为什么Django能够作为任何语言任何应用中的系统管理模块的一个很好的解决方案。

 

3、  使用独立的媒体服务器

在开发环境中把静态文件放在与Django项目所在的同一台服务器中问题并不大,但是却不要使用在生产环境中,为什么?效率问题。Jacobian.org给出了一个合理的解释。通过一台独立的服务器来处理静态文件,性能将得到有效的提升,如果不想买服务器的话,那么使用Amazon S3相对来更便宜。

 

4、  使用Debugger工具条

调试工具对任何一种语言来说都是不可或缺的.他们能够加快开发的速度,指出潜在的缺陷.  Rob Hudson开发了一个对开发人员非常有用django调试工具

 

5、 使用Django单元测试

利用单元测试确保你代码的改变和预期的一样,而不会破坏任何老的代码,以便向后兼容。Django一个强大的特性就是他能极其简单地写单元测试。Django也可直接使用python的文本测试单元测试。Django的文档提供了一个详细的教程和样例代码关于怎样做单元测试使得代码正确地运行,以及去除讨厌的bug

 

6、 使用速查卡

这里有两页厚的速查卡,在 Django文档中你可能翻来覆去要找半天的东西在这里一目了然。它包含如下几个主题

模板:

模板标签及可选项

模板过滤器及可选项

日期格式化语法快速查阅

模型:

域和及选项

常用域的可选项

元类型可选项

模型管理可选项

表单:

域和可选项

常用域可选项

标准错误消息键值

 

7、使用Django-chunks

除了使用Django的富文本编辑器创建块更容易之外,Django-chunks同样是用于模板中,这是重用代码块的必不可少的工具。

 

8、 使用Memcache

如果性能在你的Django项目中已经成为一个棘手的问题,那么你将需要使用一些缓存策略。然而Django为缓存提供很多的选择。目前最好的无疑是Memcache,用Django安装memcache非常地简单,如果你使用cmemcache模块的时候。只要模块安装完成后,你仅仅修改一行配置项,你的Django页面变得轻快起来。

 

9、使用Django,心动不如行动

在你阅读完这篇文章后如果你仍然不完全理解Django的强大,在你的下一个项目中使用Django的一个合符情理的理由就是:它能够节省各种不同软件设计的时间。Jeff Croft解释为什么用Django创建一个项目比你自己设计出来的更高效。Django允许你扩展自己的Web站点,不需要担心设计或者代码以及数据库的兼容性,它会工作地很棒。

相关文章

  • python中的多重继承实例讲解

    python中的多重继承实例讲解

    这篇文章主要介绍了python中的多重继承实例讲解,本文着重讲解寻找父类的顺序,分为经典类和新式类,需要的朋友可以参考下
    2014-09-09
  • react中useLayoutEffect 和useEffect区别

    react中useLayoutEffect 和useEffect区别

    本文主要介绍了react中useLayoutEffect 和useEffect区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Python绘图Turtle库的安装问题解决

    Python绘图Turtle库的安装问题解决

    这篇文章主要介绍了Python绘图中解决Turtle的安装问题示例分析,也遇到过相同问题的同学可以借鉴参考下,希望能够解决你的问题
    2021-10-10
  • python中base64加密解密方法实例分析

    python中base64加密解密方法实例分析

    这篇文章主要介绍了python中base64加密解密方法,实例分析了base64加密解密的原理、用途与相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • python3排序的实例方法

    python3排序的实例方法

    在本篇文章里小编给大家整理的是一篇关于python3排序的实例方法,有兴趣的朋友们可以学习参考下。
    2020-10-10
  • 全网非常详细的pytest配置文件

    全网非常详细的pytest配置文件

    本文主要介绍了全网非常详细的pytest配置文件,pytest的主配置文件,可以改变pytest的默认行为,有很多可配置的选项,感兴趣的可以了解一下
    2022-07-07
  • Python中TypeError: int object is not iterable错误分析及解决办法

    Python中TypeError: int object is not 

    在Python中,当你尝试对一个非迭代对象(如整数、浮点数等)使用迭代操作(如for循环、列表推导式中的迭代等)时,会触发TypeError: 'int' object is not iterable错误,所以本文给大家介绍了Python中TypeError: int object is not iterable错误分析及解决办法
    2024-08-08
  • mac在matplotlib中显示中文的操作方法

    mac在matplotlib中显示中文的操作方法

    这篇文章主要介绍了mac如何在matplotlib中显示中文,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python urllib.request模块的使用详解

    python urllib.request模块的使用详解

    这篇文章主要介绍了python urllib.request模块的使用详解,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • python用tkinter实现一个简易能进行随机点名的界面

    python用tkinter实现一个简易能进行随机点名的界面

    这篇文章主要介绍了python用tkinter实现一个简易能进行随机点名的界面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论