一般情况我们使用django-debug-toolbar就能够看到每个步骤的耗时等信息,不过如果需要调试某个接口就不那么直观了,这种情况下我们可以使用下面的中间件来解决问题:
# Orignal version taken from http://www.djangosnippets.org/snippets/186/
# Original author: udfalkso
# Modified by: Shwagroo Team and Gun.
虽说接触过的大部分接口都是以restfullapi的形式返回json数据,但最近有些接口是soap的,如果只是需要一个python的soap客户端的话,suds库是十分不错的一个选择,文档
使用pip安装即可,最基础的使用方法如下,示例来源官网:
from suds.client import Client
url = 'http://localhost:7080/webservices/WebServiceTestBean?wsdl'
client = Client(url)
print client
Suds - version: 0.
以前经常使用python-memcached对内存进行操作,但应用都比较简单,最近需要有一个分布式缓存系统于是看了看关于twemproxy 以及 mcrouter 这两款分别由twitter和facebook开源的软件文档。这2个软件都能容易的扩展缓存节点以及自动删除问题节点,并且提供不同的算法把数据缓存到各个节点中。这时候我想起来使用python-memcached的时候,也可以使用多个节点,并且某个节点挂掉后并不影响整个缓存程序的使用,那么它是怎么将数据分配到不同的节点呢?以及怎么处理的故障节点呢? python-memcached的源码只有一个文件,不管是get或者set,取得服务节点Ip的函数如下:
_SERVER_RETRIES = 10 # how many times to try finding a free server.
2015-08-28更新 不可否认django是一个功能齐全的、文档最完善的、最容易入门的python框架,但随着业务发展,发现并没有用到django最强大、最方便的后台管理功能。同时相比web.py、flask也确实“重”了一些,所以经过考虑决定将框架换为flask。如果说django是一个组装好的变形金刚,那么flask则是乐高积木,小巧而灵活,可以根据需要选择不同的功能扩展。下面列出了我使用过的一些插件,持续补充…
flask官网 https://dormousehole.readthedocs.org/en/latest/index.html 这个就不多解释了。
jinja2 http://docs.jinkan.org/docs/jinja2/index.html flask默认模板引擎。
sqlalchemy http://www.sqlalchemy.org/ 如果喜欢用ORM操作数据的话,这个可以说是不错的选择,用来替代django自身提供的ORM系统。
N久之前使用这对好伙伴实现支持抓取ajax数据的爬虫,最近有个需求是完全模拟某网站的购物操作,结果这个网站比较奇葩,对于表单中某些文本框、复选框等修改后会触发post操作并更改页面内容,而且这些控件之间还会互相影响,直接使用post方式的话比较困难,于是再次祭出神器: selenium 和phantomjs,此外还可以尝试selenium-ide。
这里phantomjs2.0版本并没提供编译好的通用Linux版,所以本文依然使用1.9版,但在2.0版上测试通过。
# coding=utf-8
from selenium import webdriver
def main():
dcap = dict(DesiredCapabilities.
django-userena扩展了django原生的用户系统,提供了注册、登录、修改密码、邮件验证等一系列常用功能。直接使用pip安装即可:pip install django-userena
会自动安装其所需的依赖包,不过个人建议为了更好的定制模板或相关功能,把这个包放到项目目录下当作一个app更方便一些。安装完成后修改settings.py,首先来创建一个app用于扩展用户系统 python manage.py startapp accounts 然后修改Models.py来扩展原生用户字段,我这里以添加用户等级为例:
# coding=utf-8
from django.