• django常见问题小结,细节容易忽视


    中文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等好像看到的是中文
    
    Django版本:Django Step by Step用的是Django0.9.x版本的,很多语法和结构和最新的1.0.x已经有所变化,这个变化挺多,网上已经有所总结
    将基于0.96的 Apps 迁移到 1.0.
    模板对于HTML字符的转义:一般来说,你用于替换模板的对象或者字符串中的HTML字符都会被转义,如果不让它做转义呢?
    将原有的{{content}}写为{{content|safe}}
    表格的奇偶css变化:一般表格的tr的class会做成交错的形式,那么在模板中可以使用语法
    <tr class="{% cycle row1,row2 %}">使得tr在for循环里来回的改变class
    正则表达式:之前没怎么看,不过现在发现正则表达式实在是好东东,熟练的话可以少些很多代码,而且很多时候正则表达式可以做到原先做不到的事。
    
    这里讲个碰到的很简单的问题,比如一个博客的内容,它可能是很长的,那么在列表或者首页的时候就希望只截取前100个单词,但是又不希望它把一个单词给分开了.
    那么问题就变成:寻找一个字符串s中位置大于100的第一个空字符(空格,	,
    ),返回到这个空字符为止的前缀子串。
    复制代码
    代码
    import re
    r = 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] + '...'  #将得到的子串加上... 
    复制代码
    

      

  • 相关阅读:
    Oracle
    Oracle入门
    数据库测试的测试点
    overload重载与override重写的区别
    Java接口的default关键字用法解释
    pytest执行入口
    Gradle的安装与基本配置
    玩转HTML5+跨平台开发[5] HTML表单标签
    玩转HTML5+跨平台开发[4] HTML表格标签
    玩转HTML5+跨平台开发[3] HTML列表标签
  • 原文地址:https://www.cnblogs.com/pyxiaomangshe/p/7741638.html
Copyright © 2020-2023  润新知