最后更新于 .

这篇文章的东西可能比较杂,因为每个特性都不那么大,所以就揉在一起,倒是显得庞大了许多。

一.svn命令行在windows下面的安装使用
一直以来都使用svn管理源码,但是在windows下一直使用TortoiseSVN的界面进行管理,但是对于我这种键盘控(vim后遗症)来说,简直是无法忍受的!
搜啊搜啊搜啊,终于发现了-----CollabNetSubversion
下载页面:http://www.collab.net/downloads/subversion/
如果象我一样只需要命令行的话,下载CollabNet Subversion Command-Line Client v1.6.12 (for Windows)即可,网站需要先注册一下。
基本上安装完了,svn up、svn add就可以用了,但是svn ci的时候,你会发现如下提示:

svn: Commit failed (details follow):
svn: Could not use external editor to fetch log message; consider setting the $S
VN_EDITOR environment variable or using the --message (-m) or --file (-F) option
s
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and
no 'editor-cmd' run-time configuration option was found

所以还需要在环境变量里设置一下:

SVN_EDITOR
C:\Vim\vim72\vim.exe

因为机器上本来就有vim,所以直接这样设置了,对于别的编辑器可不可以就不知道啦,截图如下:

1


二.django中autofield无法设置自增字段初始值的问题
众所周知,在mysql中,创建自增字段并设置初始值是采用如下的方法:

AUTO_INCREMENT=初始值

但是django的autofield字段是不支持设置初始值的,解决方案无非3种:
1.在创建库表之后,手动alert table 表明 AUTO_INCREMENT=初始值
2.在创建库表之后,手动插入一条记录,该记录的ID是你想要其实的最小ID
3.重写Model的save方法,设置起始ID

第二种应该是最差劲的,第一种会让部署时出现多余的步骤,还是第三种最为简单,实现代码如下:

class MManDevMedia(models.Model):
    def save(self, force_insert=False, force_update=False, using=None):
        if not MManDevMedia.objects.all():
            self.id = 500000000
        super(MManDevMedia,self).save(force_insert,force_update,using)

三.python中获取类的所有方法和字段列表
代码如下:

def GetProperties(obj):
    propList = [prop for prop in dir(obj) if (not prop.startswith('_') and not callable(getattr(obj, prop))) ]
    return propList
def GetMethods(obj):  
    methodList = [method for method in dir(obj) if (not method.startswith('_') and callable(getattr(obj, method))) ]
    return methodList

对应getattr的函数还有hasattr和setattr,都是动态设置字段值的重要函数。

 

四.Vim中的CTRL+R =
其实是个简单的小功能,就是实现简单的数值计算,不过却可以省去你离开Vim去打开计算器的时间。
操作方式如下:
插入模式下输入ctrl+r,然后输入=,输入任意算数式,比如333*2,回车,即可看到结果。

 

五.fiddler模拟post请求
在公司经常有测试CGI(在遇到python之前写CGI测试代码那叫一个痛苦),但是post方法不像get方法那样可以直接在浏览器里面输入就行,所以有时候还是挺痛苦的,还好我们有fiddler(据说fiddler刚出的时候,可是引起一群前台开发的欢呼呢。。)
方法如下,直接上图:
以自测的一个url为例:http://172.16.56.103/cgi-bin/xyoapp/xyoapp_get_userinfo.cgi?openid=0000000000000000000000000039811C
1.打开fiddler,在浏览器中输入你的url,会看到fiddler抓包如下,注意有个Request Builder标签页.

 2   

2.打开那个Request Builder标签页,把选中的那个url拖到框里去,注意红框的部分:3

3.把红框的部分改成如下,并填写对应的post参数,执行Excute:4

4.左边多了一个请求,成功:

5

OK,就这样吧~~

Pingbacks

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. 怎么样

    怎么样 on #

    快快回来,很多人在想你呐

    Reply

    1. Dante

      Dante on #

      汗呢。。。居然被过滤到垃圾评论里面去了。。。

      Reply

  2. nsdy

    nsdy on #

    很想知道 既然选择了vim 那为什么还要在win下呢?

    Reply

    1. Dante

      Dante on #

      呵呵,公司用的是windows的系统,也是没有办法的呀~~

      Reply

    2. Dante

      Dante on #

      而且我觉得选了vim也并不妨碍使用windows呀,windows下也有vim呀~

      Reply

      1. nsdy

        nsdy on #

        vim 毕竟原产于unix/linux。。。在win下使用 别扭阿...

        Reply

        1. Dante

          Dante on #

          嗯,确实有些不方便的地方,不过有些事情自己也是决定不了的啦~~

          Reply

  3. 神奇

    神奇 on #

    插入模式下输入ctrl+r,然后输入=,输入任意算数式,比如333*2,回车,即可看到结果。

    嘿嘿,,,很神奇啊...

    Reply

  4. zach

    zach on #

    vim的那条有意思

    Reply

    1. Dante

      Dante on #

      哈,Vim的小技巧还有很多~~ 我现在每天还是能发现Vim的一些新东西~~

      Reply

      1. 依云

        依云 on #

        想起昨天在The TeXbook里看到的——
        That’s the way it is with any powerful
        tool: There’s always more to learn, and there are always better ways to do what
        you’ve done before.

        Reply

        1. Dante

          Dante on #

          哈,说的不错~ 永无止境~

          Reply

  5. 吴叔

    吴叔 on #

    https://addons.mozilla.org/en-US/firefox/addon/3829/这个firefox扩展也可以Live HTTP Headers

    Reply

发表评论