[解決済み] Djangoの "slug "とは何ですか?
2022-03-14 11:47:12
質問
Django のコードを読んでいると、モデルの中に "slug" と呼ばれるものをよく見かけます。これが何であるかはよく分かりませんが、URL と関係があることは知っています。このスラッグというものは、いつ、どのように使われることになっているのでしょうか?
(での定義を読みました。 この用語集 .)
解決方法は?
スラッグとは、有効なURLを生成する方法の一つで、一般的には既に取得したデータを使用します。例えば、スラッグは、記事のタイトルを使用してURLを生成します。私は、手動で設定するよりも、タイトル(または他のデータ)を与えて、関数によってスラッグを生成することをお勧めします。
一例です。
<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>
では、次のような Django モデルがあると仮定してみましょう。
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=1000)
slug = models.SlugField(max_length=40)
このオブジェクトをURLで、意味のある名前で参照するにはどうしたらよいでしょうか。例えばArticle.idを使うことができ、URLはこのようになります。
www.example.com/article/23
あるいは、このようにタイトルを参照したい場合もあります。
www.example.com/article/The 46 Year Old Virgin
空白文字はURLでは無効なので、空白文字を
%20
という結果になります。
www.example.com/article/The%2046%20Year%20Old%20Virgin
どちらの試みも、あまり意味のある、読みやすいURLにはなりません。この方がよいでしょう。
www.example.com/article/the-46-year-old-virgin
この例では
the-46-year-old-virgin
はスラッグです。すべての文字を小文字にし、スペースをハイフンに置き換えて、タイトルから作成されます。
-
.
また、別の例として、まさにこのウェブページのURLもご覧ください。
関連
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Pythonコンテナのための組み込み汎用関数操作
-
python string splicing.join()とsplitting.split()の説明
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
PythonによるExcelファイルの一括操作の説明
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み] データ型が理解できない
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】「ナメクジ」の語源は何ですか?[クローズド]。