Django 2.1 - Writing your first Django app, part 6

अपना पहला Django ऐप लिखना, भाग 6




django

अपना पहला Django ऐप लिखना, भाग 6

यह ट्यूटोरियल शुरू होता है जहां ट्यूटोरियल 5 छोड़ दिया गया है। हमने एक परीक्षण वेब-पोल एप्लिकेशन बनाया है, और अब हम एक स्टाइलशीट और एक छवि जोड़ेंगे।

सर्वर द्वारा उत्पन्न HTML के अलावा, वेब अनुप्रयोगों को आम तौर पर अतिरिक्त फ़ाइलों की सेवा करने की आवश्यकता होती है - जैसे कि चित्र, जावास्क्रिप्ट, या सीएसएस - पूरा वेब पेज रेंडर करने के लिए आवश्यक है। Django में, हम इन फ़ाइलों को "स्थिर फ़ाइलों" के रूप में संदर्भित करते हैं।

छोटी परियोजनाओं के लिए, यह कोई बड़ी बात नहीं है, क्योंकि आप स्थैतिक फाइलों को अपने वेब सर्वर पर कहीं रख सकते हैं। हालाँकि, बड़ी परियोजनाओं में - विशेष रूप से उनमें कई ऐप्स शामिल होते हैं - प्रत्येक एप्लिकेशन द्वारा प्रदान की गई स्थिर फ़ाइलों के कई सेटों के साथ काम करना मुश्किल होने लगता है।

यह वही है जो django.contrib.staticfiles के लिए है: यह आपके प्रत्येक एप्लिकेशन (और आपके द्वारा निर्दिष्ट किसी अन्य स्थान) से स्थिर फ़ाइलों को एक ही स्थान पर एकत्रित करता है जिसे आसानी से उत्पादन में परोसा जा सकता है।

अपने एप्लिकेशन के रूप और स्वरूप को कस्टमाइज़ करें

सबसे पहले, अपने polls निर्देशिका में static नामक एक निर्देशिका बनाएं। Django वहाँ स्थिर फ़ाइलों की तलाश करेगा, इसी तरह Django कैसे polls/templates/ अंदर टेम्पलेट्स पाता है।

Django के STATICFILES_FINDERS सेटिंग में ऐसे खोजकर्ताओं की एक सूची है, जो विभिन्न स्रोतों से स्थिर फ़ाइलों की खोज करना जानते हैं। डिफॉल्ट में से एक AppDirectoriesFinder जो प्रत्येक INSTALLED_APPS में "स्थिर" उपनिर्देशिका के लिए दिखता है, जैसे कि polls हमने बनाया। व्यवस्थापक साइट अपनी स्थिर फ़ाइलों के लिए समान निर्देशिका संरचना का उपयोग करती है।

आपके द्वारा अभी-अभी बनाए गए static निर्देशिका के भीतर, polls नामक एक और निर्देशिका बनाएं और उसके भीतर एक फ़ाइल बनाएं जिसे style.css कहा जाता है। दूसरे शब्दों में, आपकी स्टाइलशीट polls/static/polls/style.css पर होनी चाहिए। AppDirectoriesFinder staticfile AppDirectoriesFinder कैसे काम करता है, इस वजह से, आप Django में इस स्थिर फ़ाइल को केवल polls/style.css AppDirectoriesFinder रूप में संदर्भित कर सकते हैं। जैसे आप टेम्प्लेट के लिए पथ का संदर्भ देते हैं।

स्टेटिक फ़ाइल नामस्थान

टेम्प्लेट की तरह, हम अपनी स्थैतिक फ़ाइलों को सीधे polls/static (दूसरे polls उपनिर्देशिका बनाने के बजाय) में डालकर दूर जा सकते हैं, लेकिन यह वास्तव में एक बुरा विचार होगा। Django पहली स्टैटिक फ़ाइल का चयन करेगा, जिसके नाम से पता चलता है, और यदि आपके पास किसी भिन्न एप्लिकेशन में एक ही नाम के साथ एक स्टैटिक फ़ाइल है, तो Django उन दोनों के बीच अंतर करने में असमर्थ होगा। हमें सही तरीके से Django को इंगित करने में सक्षम होने की आवश्यकता है, और यह सुनिश्चित करने का सबसे आसान तरीका उन्हें नाम स्थान देना है। यही है, उन स्थिर फाइलों को आवेदन के लिए नामित एक और निर्देशिका के अंदर डालकर।

निम्नलिखित कोड उस स्टाइलशीट ( polls/static/polls/style.css ) में डालें:

li a {
    color: green;
}

अगला, polls/templates/polls/index.html के शीर्ष पर निम्नलिखित जोड़ें polls/templates/polls/index.html :

{% load static %}

<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">

{% static %} टेम्पलेट टैग स्थिर फ़ाइलों का पूर्ण URL उत्पन्न करता है।

विकास के लिए आपको बस इतना ही करना है। Reload http://localhost:8000/polls/ और आपको यह देखना चाहिए कि प्रश्न लिंक हरे हैं (Django शैली!) जिसका अर्थ है कि आपकी स्टाइलशीट ठीक से भरी हुई थी।

बैकग्राउंड-इमेज जोड़ना

अगला, हम छवियों के लिए एक उपनिर्देशिका बनाएंगे। polls/static/polls/ में एक images उपनिर्देशिका polls/static/polls/ निर्देशिका बनाएँ। इस निर्देशिका के अंदर, background.gif नामक एक छवि डालें। दूसरे शब्दों में, अपनी छवि को polls/static/polls/images/background.gif

फिर, अपनी स्टाइलशीट में जोड़ें ( polls/static/polls/style.css ):

body {
    background: white url("images/background.gif") no-repeat;
}

Reload http://localhost:8000/polls/ और आपको स्क्रीन के ऊपरी बाएं भाग में लोड की गई पृष्ठभूमि को देखना चाहिए।

चेतावनी

निश्चित रूप से {% static %} टेम्प्लेट टैग आपकी स्टाइलशीट जैसी स्थिर फाइलों में उपयोग के लिए उपलब्ध नहीं है जो कि Django द्वारा उत्पन्न नहीं की गई हैं। आपको अपनी स्थिर फ़ाइलों को एक-दूसरे के बीच लिंक करने के लिए हमेशा संबंधित पथों का उपयोग करना चाहिए, क्योंकि तब आप STATIC_URL ( static टेम्प्लेट टैग द्वारा इसका उपयोग अपने URL को उत्पन्न करने के लिए) को बदल सकते हैं, साथ ही अपनी स्थैतिक फ़ाइलों में पथों का एक गुच्छा संशोधित करने के बिना।

ये मूल बातें हैं । रूपरेखा के साथ शामिल सेटिंग्स और अन्य बिट्स के बारे में अधिक जानकारी के लिए , स्टैटिक फाइलें हाउटो और स्टेटिकफाइल्स संदर्भ देखें स्थैतिक फ़ाइलों को नियोजित करना चर्चा करता है कि वास्तविक सर्वर पर स्थिर फ़ाइलों का उपयोग कैसे करें।

जब आप स्थिर फ़ाइलों के साथ सहज हों, तो Django के स्वचालित रूप से जेनरेट की गई व्यवस्थापक साइट को कस्टमाइज़ करने के तरीके के लिए इस ट्यूटोरियल के भाग 7 को पढ़ें।