[django学习]快速笔记,Django碰到的问题总结

最近学习Django中,在看limodou的Django Step by Step,不过自己随便写写还是碰到了挺多问题,不过貌似都是比较常见,还能顺利解决。现在写下来,也许以后会忘记,也许能帮上碰到同样问题的


  1. 中文URL:这个其实是很常识的东西,但是之前做web一直没注意过,在使用HttpResponseRedirect的时候,如果Redirect的URL中带中文的话,会报UnicodeEncodeError错误。解决的办法是使用urlquote对URL进行编码
    from  django.utils.http  import  urlquote

    # return的时候在URL前加上urlquote
    return  HttpResponseRedirect(urlquote( " /wiki/%s "   %  page.pagename)) 

    这个URL在ie的地址栏看到的就是一堆%的东西,Firefox等好像看到的是中文

  2. Django版本:Django Step by Step用的是Django0.9.x版本的,很多语法和结构和最新的1.0.x已经有所变化,这个变化挺多,网上已经有所总结
    将基于0.96的 Apps 迁移到 1.0.
  3. 模板对于HTML字符的转义:一般来说,你用于替换模板的对象或者字符串中的HTML字符都会被转义,如果不让它做转义呢?
    将原有的{{content}}写为{{content|safe}}
  4. 表格的奇偶css变化:一般表格的tr的class会做成交错的形式,那么在模板中可以使用语法
    <tr class="{% cycle row1,row2 %}">使得tr在for循环里来回的改变class
  5. 正则表达式:之前没怎么看,不过现在发现正则表达式实在是好东东,熟练的话可以少些很多代码,而且很多时候正则表达式可以做到原先做不到的事。

    这里讲个碰到的很简单的问题,比如一个博客的内容,它可能是很长的,那么在列表或者首页的时候就希望只截取前100个单词,但是又不希望它把一个单词给分开了.
    那么问题就变成:寻找一个字符串s中位置大于100的第一个空字符(空格,\t,\r\n),返回到这个空字符为止的前缀子串。
    ExpandedBlockStart.gif 代码
    import  re
    =  re.compile( ' \s ' )                 # \s代表任何空字符

    match 
    =  r.search(wiki.content, 100 )   # 从wiki.content的100个字符后开始寻找匹配
    if  match:                            # 如果找到,match不是空
        index  =  match.start()            # 得到找到匹配的开始位置
    else :                                # 如果match是None,未找到
        index  =  len(wiki.content)        # index是就整个字符串长度

    wiki.content 
    =  wiki.content[:index]  +   ' ... '    # 将得到的子串加上... 

暂时就想到这些,看了点Django之后,现在发现之前用的java的web框架开发的时候实在是又笨重又难用。不过现在弄起javascript和css来倒是熟练不少。

 

转载于:https://www.cnblogs.com/kakafei/archive/2009/12/29/1634634.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值