python和django使用小结

今天在写一个使用django的小程序的时候,发现了几个问题,现在总结如下:

1)在python 2.5支持unicode, utf-8, ascii, gb2312, gbk等不同的编码

默认的是使用ascii,可以从下面来得到:

>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>>

 

默认的情况下的操作如下:

>>> name = '测试'
>>> name
'\xb2\xe2\xca\xd4'
>>> name_unicode = unicode(name, 'gbk')
>>> name_unicode
u'\u6d4b\u8bd5'
>>> name_unicode = unicode(name,'gb2312')
>>> name_unicode
u'\u6d4b\u8bd5'
>>> name_utf8 = name_unicode.encode('utf-8')
>>> name_utf8
'\xe6\xb5\x8b\xe8\xaf\x95'
>>>

一般情况下,都上对utf-8的编码进行处理,所以在处理中文等情况时候(如调用md5的函数update),先应该将其转换为utf-8编码,然后再进行处理

 

为了更好地指出中文等编码,最好在编写python文件的时候,最好加上如下一句话:

# -*- coding: utf-8 -*-

 

2)对于django编程,从浏览器地址中传入的字符串默认情况下是以unicode进行编码,所以,为了进行下一步的处理,应该先对其将unicode转变为utf-8编码

 

另外在django中使用template的时候,template里面可以直接使用views、models里面的attributes, 所以感觉是templates是被views加载到代码中,然后再进行替换。如在views中有对象user, user中有attributes name, age等,那么在template中可以包括有如下的代码 {{ user.name }}, {{ user.age }}。

 

另外对于urls.py中的处理,最好是在patterns后使用appname.views等,如rival这个app使用的是rival.views

 

urlpatterns = patterns('rival.views',
        (r'^$', 'index'),
        (r'^(?P<rival_id>\w+)/$','detail'),
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值