2012-05-23 35 views
1

我在Google App Eninge上使用Django模板。Google App Engine:如何在給定數量的字符後截斷字符串

我想截斷字符串給定數量的字符後,例如, 如果一個字符串(一個職位的標題)太長,「這是一個很長很長的長期標題」,我想顯示第一幾句話,是這樣的:「這是一個很長很長......」

我已經在這裏找到了一些Django的片段:http://djangosnippets.org/snippets/1259/http://djangosnippets.org/snippets/763/

我想知道:

  1. 如果有Google App中更簡單的解決方案引擎蟒蛇?

  2. 如何在App Engine中使用此代碼段http://djangosnippets.org/snippets/1259/ ?我相信搞亂源代碼不是一個好主意。

我需要截斷Django模板中的字符串,而不是python源代碼。類似這樣的:{{ string|truncatesmart:50 }}

+0

是否要根據字符或單詞截斷?你在你的問題中提到了兩個。 –

+0

@尼克都很好。我需要更快的。 –

+0

你需要_faster_一個嗎?像這樣的函數的執行速度將對頁面的總渲染時間幾乎沒有貢獻。 –

回答

1

從您對問題的描述中可以看出,這是純CSS已經具體解決的情況。看看text-overflow:ellipsis屬性,該屬性會截斷一段文本以適合所需的寬度,並將像後面提到的省略號(...)放在尾部。我希望這將是一個更簡單的解決方案,您不必「重新發明輪子」。

+0

方便了解,但是在搜索結果頁面中嵌入整本書可能不是一個好主意。 :) –

1

您找到的django代碼片段中的函數truncatesmart是純粹的python,您可以在應用程序引擎中使用它,而無需更改。

1

截斷字符串的Python代碼是:string = string[:chars]其中string是要修改的字符串,chars是字符數的整數值。

您鏈接到的代碼段非常好,正如@voscausa提到的,如果您在尋找比在X字符處截斷更明智的東西,可以直接在Python中使用。

+0

你似乎沒有得到我。我需要在Django Template中使用它,而不是在Python源代碼中使用它! –