Django碰到的問題總結
摘要:最近學習Django中,在看limodou的Django Step by Step,不過自己隨便寫寫還是碰到了挺多問題,不過貌似都是比較常見,還能順利解決。現在寫下來,也許以后會忘記,也許能幫上碰到同樣問題的
最近學習Django中,在看limodou的Django Step by Step,不過自己隨便寫寫還是碰到了挺多問題,不過貌似都是比較常見,還能順利解決。現在寫下來,也許以后會忘記,也許能幫上碰到同樣問題的
- 中文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的第一個空字符(空格,\t,\r\n),返回到這個空字符為止的前綴子串。代碼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] + '...' #將得到的子串加上...
暫時就想到這些,看了點Django之后,現在發現之前用的java的web框架開發的時候實在是又笨重又難用。不過現在弄起javascript和css來倒是熟練不少。
全站熱搜
留言列表