python

调试python程序

Roy

怪不得这几天头疼的厉害,原来是发生了2件大事:官方的XP彻底和我们告别了and爆发了OpenSSL HeartBleed漏洞。这个漏洞可以说是一场大地震,不知道又会有多少网站被“扒光脱裤”,过一阵又得改密码玩了。面对这种网络安全问题,真的是一种待宰羔羊的无力感。

调试python程序我知道有3个东东:pdb,ipdb,pudb。

第一个是python自带模块,第二个如果安了ipython的话貌似自己就被安装了,最后一个有图形界面,十分复古的——蓝底,真是让人怀念。后2个都可以使用pip安装。 ipdb支持语法高亮,不过貌似中文支持不太好。

python列表展开

Roy
某网站今年笔试题,本质就是把某多维数组变成一维数组并去重。本来要求用JS实现,不过用python更简洁一点,就是对列表进行展开操作,递归就KO了。 首先来个不简洁的: arr = [1, [1, 2, [2, 3]], [4], [4]] final=[] def change(x): print "x is:",x if isinstance(x, list): for l in x: print "l is:",l change(l) else: final.

django自带的评论模块

Roy
某个设计本来采用了一个比较不错的在线评论模块,不过答辩的时候丫居然不给网!!想偷个懒还是挺难啊…. 那就用自带的评论模块吧,django版本是1.5.3。 首先把'django.contrib.comments'添加到INSTALLED_APPS中,然后添加url: urlpatterns = patterns('', ...... url(r'^comments/', include('django.contrib.comments.urls')), ...... ) 在需要显示评论的HTML中:

mysql-python:not all arguments converted during string formatting

Roy
今天把django从1.5.5升级到了1.6.2,结果使用mysql-python查询数据库时候就报了这个错误:“not all arguments converted during string formatting” 貌似这个问题应该和django没什么关系,正好今天就看看mysql-python的源码吧。想看如何解决的请直接跳到最后。 查询部分简化后如下: posistion = "top" order = r"select id,p_name,p_explain,p_href from pictures where p_position = %s and p_show = 1 order by -id" self.

Django的view中常用return方法

Roy

第一种HttpResponse,最基本的返回方式,可以直接返回字符:

from django.http import HttpResponse
def index(request):
    return HttpResponse(a test)

或者结合contextloder返回网页:

from django.template import Context, loader  
from polls.models import Poll
def index(request):  
    latest_poll_list = Poll.objects.order_by('-pub_date')[:5]  
    template = loader.get_template('polls/index.html')
    context = Context({ 'latest_poll_list': latest_poll_list, })  
    return HttpResponse(template.render(context))