博客

在我们的博客中, 记录了我们在开发过程中所使用的技术和遇到的问题, 希望作为其他开发和设计者的一个学习交流平台.

博客

09
10月
2014

Django中如何使用django-celery完成异步任务 (2)

在上一篇博文中, 我们介绍了如何在开发环境中使用Celery. 接下来我们介绍一下如何在部署环境使用Celery. 1. 简单设置 一个简单的Celery堆有一个queue和一个worker进程组成. 使用以下命令启动worker: python manage.py celery worker -B 以上命令是基于django-celer......

08
10月
2014

Django中如何使用django-celery完成异步任务 (1)

本篇博文主要介绍在开发环境中的celery使用,请勿用于部署服务器. 许多Django应用需要执行异步任务, 以便不耽误http request的执行. 我们也可以选择许多方法来完成异步任务, 使用Celery是一个比较好的选择, 因为Celery有着大量的社区支持, 能够完美的扩展, 和Django结合的也很好. Celery不仅能在Django中使用,......

19
9月
2014

Django 1.7 新数据迁移工具 (migrations) 的使用和如何从 South 升级转换

在1.6之前, Django只支持添加新的model到数据库, 而无法编辑或修改已经存在的model. 在当时, 这些Django缺失的功能可以通过South实现. 1. 新的命令 Django 1.7 为我们带来了三个新命令: migrate: 用于执行迁移动作 makemigrations: 基于当前的model创建新的迁移策略文件 sql......

22
7月
2014

Django 和 PostgreSQL, 从 SQL 的 LIKE 到全文搜索(Full-Text-Search) (2)

在上一篇中, 我们解决了明确搜索的问题, 这一篇中我们说说口音或相近语的问题. 在使用全文搜索是我们会发现, 使用多种语言搜索document是常有的事情. 我们可以不设置语言而是用to_tsquery, 但是在运行的过程中, 全文搜素总是会自动使用至少一个. 默认的语言设置时英语, 但你必须根据你document的语言使用正确的stemmer, 否则就......

15
7月
2014

Django访问多个PostgreSQL Schema

django缺少对PostgreSQL的多schema支持, 之前我们尝试了多种方法访问除public schema之外的schemas, 但这些方式都难以维护. 然而, 最近我们发现这一问题可以使用PostgreSQL的search_path参数轻松地解决. 一个简单的例子 假设一个django项目中所有的表都创建在django schema中, 并......

09
7月
2014

如何在 Django models 中使用多语言 (i18n) 的简单方法

本篇介绍一个在django model中使用多语言支持的快速方法, 该方法通过建立自定义的template tag 选取model中重复的语言field来达到多语言显示的目的. 假设我们有这样一个models.py, 某一个model中包含多个重复的field, 每个重复的field都是用来保存其对应的显示语言: class MyObject(m......

06
7月
2014

将 Django 作为 bootstrap 的后台框架

如果你想在Django中使用Bootstrap作为前台框架, 但又不知道如何将他们整合到一起的话, 那么本篇我们就介绍一下使用django自带的staticfiles app将Bootstrip整合到Django中: 首先我们需要在GetBootstrip.com下载Bootstrip. 然后我们解压缩zip文件, 将加压缩的文件放入项目中. 接着在set......

01
7月
2014

在 Selenium 中设置不同的浏览器进行 web application 测试

通常我们当我们需要测试JavaScipt, 兼容性或模拟用户行为时, 我们会用使用 Selenium 和 django 的 LiveServerTestCase Class. 默认情况下 Selenium 的 WebDriver 启动的是 Firefox 浏览器, 那么如何使用 Selenium 配合其他浏览器呢? 当然 Selenium 是支持其他浏览器的......

28
6月
2014

Django 1.6 最佳实践: 如何搜索查找并解决Django相关的问题

每个程序员都会在开发过程中遇到这样或那样的问题, 有时光靠一个人是无法解决所有问题的, 所以我们应该找到适当的地方提问. 1. 卡住是怎么办 按照以下步骤, 前提是你需要懂点英文: 尽可能自己想办法解决 仔细阅读相关文档, 确保不错过任何相关内容 在Google, 百度, mailing lists或StackOverFlow上查看是否有人遇到......

27
6月
2014

Django 1.6 最佳实践: Continuous Integration

Continuous integration (CI) 是一种软件开发实践, 常用于团队间频繁合并工作使用. 每一次合并都要经过自动构建和测试尽快验证其正确性. 许多团队都发现这一方式能大大降低合并中出现的麻烦和, 并增强软件统一性. 以下是一个典型的开发流程: 程序员写代码, 运行本地测试, 将代码推至代码库, 通常最少一天一次 代码库变化触发自......