জ্যাঙ্গোতে একটি "স্লাগ" কী?


588

আমি যখন জাঙ্গো কোড পড়ি তখন প্রায়শই আমি মডেলগুলিতে দেখতে পাই যা "স্লাগ" বলে। এটি কী তা আমি পুরোপুরি নিশ্চিত নই, তবে আমি জানি এটির URL এর সাথে কিছু করার আছে। এই স্লাগ-জিনিসটি কখন এবং কখন ব্যবহার করা হবে?

(আমি এই শব্দকোষে এর সংজ্ঞাটি পড়েছি ।)

উত্তর:


752

একটি "স্লাগ" একটি বৈধ URL উত্পন্ন করার একটি উপায়, সাধারণত ইতিমধ্যে প্রাপ্ত ডেটা ব্যবহার করে। উদাহরণস্বরূপ, একটি স্লাগ একটি URL তৈরি করতে একটি নিবন্ধের শিরোনাম ব্যবহার করে। আমি ম্যানুয়ালি সেট করার পরিবর্তে শিরোনাম (বা অন্য কোনও ডেটা) প্রদত্ত কোনও ফাংশনের মাধ্যমে স্লাগ তৈরির পরামর্শ দিচ্ছি।

একটি উদাহরণ:

<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>

এখন আমরা ভান করি যে আমাদের মতো জ্যাঙ্গো মডেল রয়েছে:

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField(max_length=1000)
    slug = models.SlugField(max_length=40)

আপনি কীভাবে এই বিষয়টিকে একটি ইউআরএল এবং অর্থবহ নামের সাথে উল্লেখ করবেন? আপনি উদাহরণস্বরূপ আর্টিকেল.আইড ব্যবহার করতে পারেন সুতরাং URL টির মতো দেখতে:

www.example.com/article/23

অথবা, আপনি শিরোনামটি এর মতো উল্লেখ করতে চাইতে পারেন:

www.example.com/article/The 46 Year Old Virgin

যেহেতু স্পেসগুলি ইউআরএলগুলিতে বৈধ নয়, তাদের অবশ্যই প্রতিস্থাপন করা উচিত %20, যার ফলস্বরূপ:

www.example.com/article/The%2046%20Year%20Old%20Virgin

উভয় প্রয়াসই খুব অর্থবহ, সহজেই পঠনযোগ্য ইউআরএল হিসাবে ফল দেয় না। ইহা ভাল:

www.example.com/article/the-46-year-old-virgin

এই উদাহরণে, the-46-year-old-virginএকটি স্লাগ: এটি শিরোনাম থেকে সমস্ত অক্ষরকে আচ্ছন্ন করে এবং হাইফেন দ্বারা স্পেসগুলি প্রতিস্থাপন করে তৈরি করা হয়েছিল -

অন্য উদাহরণের জন্য এই খুব ওয়েব পৃষ্ঠার ইউআরএলও দেখুন।


72
ভাল বর্ণনা, তবে যোগ করতে: স্লগফিল্ড বাক্সের বাইরে স্বাতন্ত্র্যতা নিশ্চিত করে না, সুতরাং এটি ডিফল্টরূপে ব্যবহার করা হলে এটি আরও ভাল ইউআরএল: www.example.com/article/the-40-year-old- Virgin/23 / যেখানে '23' হ'ল আর্টিকেল.আইডি, এবং এটি আসলে ক্যোয়ারী করতে ব্যবহৃত হয় (স্লাগের অনুসন্ধানের চেয়েও দ্রুত)।
ড্যানিয়েল নবাব

126
আমি www.example.com/article/23/the-40-year-old- ভার্জিন পড়া সহজ।
MiniQuark

16
আপনি যদি আইডির উপর ভিত্তি করে বিষয়বস্তু পরিবেশন করেন তবে স্লাগটি সামগ্রীর সাথে মেলে কিনা তা পরীক্ষা করুন (এবং 404 ফেরত না দিলে) বা সম্পূর্ণ উপেক্ষা করুন কিনা তা স্থির করুন। এসইও-বুদ্ধিমান, সর্বোত্তম কিসের জন্য একটি সাধারণ নিয়ম আছে বলে আমি মনে করি না। আপনি যদি আপনার ব্রাউজারে স্ট্যাকওভারফ্লো / প্রশ্নগুলি / ৪৪২০১০২/ … প্রবেশ করেন তবে এসও এখনও এই পৃষ্ঠাটি প্রদর্শন করবে ।
টমাস অ্যান্ড্রেল

2
@ ড্যানিয়েল ঠিক মনে রাখবেন, একটি স্লাগ আসল ডাটাবেস আইডিটিও গোপন করে, তাই আপনার উদাহরণটি স্লাগ ব্যবহারের একটি সুবিধাকে পরাস্ত করে।
এএনও

15
@ এসইও এবং পারমিলিংক সুন্দর-নেসের জন্য কোনও স্লাগ যোগ করা হয়নি। আইডিটি সূচকযুক্ত অনুসন্ধানের জন্য ব্যবহৃত হয়। স্ট্যাকওভারফ্লোয়ের জন্য এসইও উজ্জ্বল - এবং তারা ঠিক এই কৌশলটি ব্যবহার করে। আপনার যুক্তিটি ছিল "ডাটাবেস আইডিটি লুকান", যা আপনি এখন "এসইও" তে পরিণত করেছেন। যাও কি?
জোশ স্মিটন

134

আমি যদি কিছু historicalতিহাসিক প্রসঙ্গ সরবরাহ করতে পারি:

"স্লাগ" শব্দটি কাস্টিং মেটাল-লিডের সাথে সম্পর্কিত, এই ক্ষেত্রে — যার মধ্যে প্রেস ফন্টগুলি তৈরি হয়েছিল। তারপরে প্রতিটি কাগজের ফন্টের কারখানাটি নিয়মিত পুনরায় গলে যায় এবং তাজা ছাঁচগুলিতে পুনরায় মেশানো হয়, যেহেতু অনেকগুলি প্রিন্ট পরে তারা জীর্ণ হয়ে যায়। আমার মতো শিক্ষানবিসরা তাদের ক্যারিয়ারটি সেখানে শুরু করেছিলেন এবং পুরো পথে চলে গেলেন (আর নয়)।

টাইপোগ্রাফগুলিকে একটি নিবন্ধের পাঠ্যকে পশ্চাদপটে পদ্ধতিতে রচনা করতে হয়েছিল যাতে বুদ্ধিমানভাবে সজ্জিত সীমিত অক্ষর থাকে। মুদ্রণের সময় চিঠিগুলি সরাসরি কাগজে থাকত। সমস্ত টাইপোগ্রাফগুলি মুদ্রিত হিসাবে তত দ্রুত মিরর করা সংবাদপত্রটি পড়তে পারে। অতএব স্লাগস (শামুকের মতো) ধীরগতির গল্পগুলিও (শেষের জন্য স্থির করা হয়েছিল) অনেকগুলি বেঞ্চের অপেক্ষায় ছিল, কেবল তাদের মুঠির অক্ষর দ্বারা চিহ্নিত হয়েছিল, বেশিরভাগ পুরো শিরোনামটি সাধারণত বেশি পাঠযোগ্য able কিছু "হট" নিউজ সেখানে সম্ভাব্য শেষ মুহূর্তের সংশোধনের জন্য, বেঞ্চে অপেক্ষা করেছিল, শেষ সমাবেশ এবং নির্দিষ্ট মুদ্রণের আগে (সন্ধ্যা কাগজ)।

জঙ্গো কানসাসের লরেন্স জার্নালের অফিসগুলি থেকে উত্থিত হয়েছিল। যেখানে সম্ভবত কিছু মুদ্রণ কলঙ্ক এখনও অলস রয়েছে। এ-জ্যাঙ্গো-উত্সাহী - & - বন্ধুত্বপূর্ণ বয়সী-স্লাগ্-ছেলে-থেকে-ফ্রান্স।


61

শব্দ 'স্লাগ' সংবাদপত্রের প্রযোজনা থেকে এসেছে world

এটি নির্মাণ প্রক্রিয়া চলাকালীন একটি গল্পকে দেওয়া একটি অনানুষ্ঠানিক নাম। গল্পটি "প্রিন্টিং প্রেসগুলি" সম্পাদকের মাধ্যমে বীট রিপোর্টার (এইগুলি আরও উপস্থিত রয়েছে কি? ধরে নেওয়া) থেকে তার পথটি বয়ে যায় , এই নামটিই যার দ্বারা উল্লেখ করা হয়, যেমন, "আপনি কি এই ত্রুটিগুলি ঠিক করেছেন? ' কেট এবং উইলিয়াম 'গল্প? "।

কিছু সিস্টেম (যেমন জ্যাঙ্গো) গল্পটি সনাক্ত করতে URL এর অংশ হিসাবে স্লাগ ব্যবহার করে, উদাহরণ হ'ল www.mysite.com/archives/kate-and-william

এমনকি স্ট্যাক ওভারফ্লো নিজেই এটি করেন, জিইবি-ইশ (ক) স্ব-রেফারেন্সিয়াল দিয়ে /programming/427102/what-is-a-slug-in-django/427201#427201, যদিও আপনি স্লাগটির সাথে প্রতিস্থাপন করতে পারেন blahblahএবং এটি এখনও এটি ঠিক আছে।

এটি এমনকি তার আগেরও হতে পারে, যেহেতু চিত্রনাট্যগুলির প্রতিটি দৃশ্যের শুরুতে "স্লাগ লাইন" ছিল, যা মূলত সেই দৃশ্যের পটভূমি নির্ধারণ করে (কোথায়, কখন এবং এরকম)। এটি একেবারে অনুরূপ যে এটি অনুসরণ করে যা পূর্বরূপ বা পূর্বসূচী।

লিনোটাইপ মেশিনে স্লাগটি ধাতুর একক লাইন টুকরো ছিল যা পৃথক বর্ণের ফর্মগুলি থেকে তৈরি হয়েছিল। পুরো লাইনটির জন্য একটি একক স্লাগ তৈরি করে, এটি পুরানো চরিত্র অনুসারে চরিত্রের মিশ্রণে ব্যাপক উন্নতি হয়েছে।

যদিও নীচেরটি নিখুঁত অনুমানযোগ্য, স্লাগের প্রাথমিক অর্থ ছিল একটি জাল মুদ্রা (যা কোনওভাবে চাপতে হবে)। আমি ভাবতে পারি যে ব্যবহারটি মুদ্রণ শব্দটিতে রূপান্তরিত হচ্ছে (যেহেতু স্লাগটি মূল চরিত্রগুলি ব্যবহার করে চাপতে হয়েছিল) এবং সেখান থেকে 'ধাতুর টুকরা' সংজ্ঞা থেকে পরিবর্তিত হয়ে 'গল্পের সংক্ষিপ্তসার' সংজ্ঞাতে পরিণত হয়েছে। সেখান থেকে অনলাইনে বিশ্বে সঠিক প্রিন্টিং থেকে এটি একটি ছোট পদক্ষেপ।


(ক) "গডেল এসচার, বাচ", একটি ডগলাস হাফস্টাডটার দ্বারা , যা আমি (কমপক্ষে) একটি দুর্দান্ত আধুনিক বৌদ্ধিক কাজ বিবেচনা করি। আপনার অন্যান্য কাজ "मेटाটিকাল থিমস "ও পরীক্ষা করা উচিত।


29

স্লাগ একটি সংবাদপত্রের শব্দ। একটি স্লাগ হ'ল অক্ষর, সংখ্যা, আন্ডারস্কোর বা হাইফেন সম্বলিত কোনও কিছুর জন্য একটি ছোট লেবেল। এগুলি সাধারণত ইউআরএল-এ ব্যবহৃত হয়। (জাজানো ডক্সের মতো)

জাজানোতে একটি স্লাগ ফিল্ড আপনার গতিশীলভাবে তৈরি ওয়েব পৃষ্ঠাগুলির জন্য বৈধ ইউআরএল সংরক্ষণ এবং তৈরি করতে ব্যবহৃত হয় ।

স্ট্যাক ওভারফ্লোতে আপনি যেভাবে এই প্রশ্নটি যুক্ত করেছিলেন এবং ঠিক তেমনি একটি গতিশীল পৃষ্ঠা তৈরি হয়েছিল এবং ঠিকানার বারে আপনি যখন দেখবেন তখন আপনার প্রশ্নের শিরোনাম জায়গাগুলির জায়গায় "-" দিয়ে দেখতে পাবেন। ঠিক এটি একটি স্লাগ ফিল্ডের কাজ।

এখানে চিত্র বিবরণ লিখুন

আপনার দ্বারা প্রবেশ করা শিরোনামটি এরকম কিছু ছিল -> জ্যাঙ্গোতে "স্লাগ" কী?

এটিকে স্লাগ ফিল্ডে সংরক্ষণ করার পরে এটি "কী-এ-স্লাগ-ইন-জাজানো" হয় (এই পৃষ্ঠার ইউআরএল দেখুন)


27

থেকে এখানে

"স্লাগ" একটি সংবাদপত্রের শব্দ, তবে এটির অর্থ এখানে URL এর চূড়ান্ত বিট। উদাহরণস্বরূপ, "জাজানো সম্পর্কে কিছুটা" শিরোনামযুক্ত একটি পোস্টটি হয়ে উঠবে, "বিট-অব-জাঙ্গো" স্বয়ংক্রিয়ভাবে (আপনি অবশ্যই স্বয়ংক্রিয়ভাবে উত্পন্ন স্লাগ পছন্দ না করলে এটিকে সহজেই পরিবর্তন করতে পারেন)।


18

এটি ইউআরএলটির বর্ণনামূলক অংশ যা এটিকে আরও বেশি মানব বর্ণনামূলক করে তুলতে হয় তবে ওয়েব সার্ভারের প্রয়োজন ছাড়াই - ইন জ্যাঙ্গোতে "স্লাগ" কী? স্লাগটি 'ইন-জাজানো-হোয়াট-এ-স্লাগ' হয় তবে স্লাগটি প্রদত্ত পৃষ্ঠা নির্ধারণ করতে ব্যবহৃত হয় না (কমপক্ষে এই সাইটে)


17

স্লাগ নির্দিষ্ট সামগ্রীর জন্য একটি ইউআরএল বান্ধব শর্ট লেবেল। এটিতে কেবলমাত্র অক্ষর, সংখ্যা, বোঝার বা হাইফেন থাকে। স্লাগগুলি সাধারণত সম্পর্কিত সামগ্রী দিয়ে সংরক্ষণ করা হয় এবং এটি ইউআরএল স্ট্রিং হিসাবে পাস হয় pass

স্লাগ স্লাগফিল্ড ব্যবহার করে তৈরি করতে পারে

উদা:

class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100)

আপনি যদি স্লগ হিসাবে শিরোনামটি ব্যবহার করতে চান, জাঙ্গোর একটি সাধারণ ফাংশন বলা হয় slugify

from django.template.defaultfilters import slugify

class Article(models.Model):
    title = models.CharField(max_length=100)

    def slug(self):
        return slugify(self.title)

যদি এর স্বতন্ত্রতা প্রয়োজন হয় তবে unique=Trueস্লাগ ফিল্ডে যুক্ত করুন।

উদাহরণস্বরূপ, পূর্ববর্তী উদাহরণ থেকে:

class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100, unique=True)

আপনি স্লাগ প্রক্রিয়া করতে অলস? চিন্তা করবেন না, এই প্লাগইন আপনাকে সাহায্য করবে। জ্যাঙ্গো-autoslug


8

জাঙ্গো-অ্যাডমিনে অটো স্লাগ। মডেলএডমিনে যুক্ত হয়েছে:

prepopulated_fields = {'slug': ('title', )}

এখানে হিসাবে:

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug')
    search_fields = ('content', )

    prepopulated_fields = {'slug': ('title', )}

4

স্লাগ্

কেবলমাত্র অক্ষর, সংখ্যা, আন্ডারস্কোর বা হাইফেন সমন্বিত কোনও কিছুর জন্য একটি ছোট লেবেল। এগুলি সাধারণত ইউআরএল-এ ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি সাধারণ ব্লগ এন্ট্রি ইউআরএল:

https://www.djangoproject.com/weblog/2008/apr/12/spring/ শেষ বিট (বসন্ত) স্লাগ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.