2014-05-20 67 views
1

我使用Python 2.7和1.4的Django如何告訴Python不要解釋字符串中的反斜槓?

如果我有一個字符串變量result = "fred\xbf",我怎麼告訴Django的模板來顯示"fred\xbf",而不是處理反斜槓和顯示一些性格怪異?

我知道我可以逃避反斜槓:"fred\\xbf",但我可以得到Django模板來理解我想反斜槓不被處理嗎?

回答

3

如果你不想使用\\,然後再使用原始字符串:

result = r"fred\xbf" 

串用Rr前綴被解釋爲原始字符串,轉義字符不被處理。

>>> print "fred\xbf" 
fred¿ 
>>> print r"fred\xbf" 
fred\xbf 

這也是非常有用的正則表達式

+0

如果字符串在變量中,我該如何將變量轉換爲raw?謝謝。 – smithy

+0

@smithy如果它已經存儲在一個字符串中,你不能輕易做到這一點。 'r'前綴被附加到一個文字字符串。你可以嘗試通過做'repr(result)'來搞砸。讓我考慮一下 –

+0

我試過s =「%r」%s,它似乎工作。如果你知道一個更好或更多pythonic的方式,將是偉大的。謝謝。 – smithy

2

這有什麼好做的Django的模板,但你如何定義在第一位的變量。

當您在Python代碼中指定它們爲文字時,Basckslashes只能被「解釋」。因此,考慮到上面的Python代碼,您可以使用雙反斜槓或使用原始字符串。

如果您從數據庫加載字符串「fred \ xbf」並將其輸出到模板中,則不會「轉義」。

相關問題