खोज…


परिचय

प्रबंधन कमांड शक्तिशाली और लचीली स्क्रिप्ट हैं जो आपके Django प्रोजेक्ट या अंतर्निहित डेटाबेस पर कार्रवाई कर सकती हैं। विभिन्न डिफ़ॉल्ट आदेशों के अलावा, अपना स्वयं का लिखना संभव है!

नियमित पायथन लिपियों की तुलना में, प्रबंधन कमांड ढांचे का उपयोग करने का मतलब है कि पर्दे के पीछे कुछ थकाऊ सेटअप कार्य स्वचालित रूप से आपके लिए किया जाता है।

टिप्पणियों

प्रबंधन आदेश से या तो बुलाया जा सकता है:

  • django-admin <command> [options]
  • python -m django <command> [options]
  • python manage.py <command> [options]
  • ./manage.py <command> [options] यदि मैनेजमेन्डो में एक्जीक्यूटिव अनुमतियाँ हैं ( chmod +x manage.py )

क्रोन के साथ प्रबंधन कमांड का उपयोग करने के लिए:

*/10 * * * * pythonuser /var/www/dev/env/bin/python /var/www/dev/manage.py <command> [options] > /dev/null

प्रबंधन कमान बनाना और चलाना

कमांडो या अन्य सेवाओं (जहां उपयोगकर्ता / अनुरोध का उपयोग नहीं किया जाता है) का उपयोग करके Django में कार्रवाई करने के लिए, आप management commands उपयोग कर सकते हैं।

Django मॉड्यूल को आवश्यकतानुसार आयात किया जा सकता है।

प्रत्येक कमांड के लिए एक अलग फाइल बनाने की जरूरत है: myapp/management/commands/my_command.py
( management और commands निर्देशिकाओं के पास खाली __init__.py फ़ाइल होनी चाहिए)

from django.core.management.base import BaseCommand, CommandError

# import additional classes/modules as needed
# from myapp.models import Book

class Command(BaseCommand):
    help = 'My custom django management command'

    def add_arguments(self, parser):
       parser.add_argument('book_id', nargs='+', type=int)
       parser.add_argument('author' , nargs='+', type=str)

    def handle(self, *args, **options):
       bookid = options['book_id'] 
       author = options['author']
       # Your code goes here
        
        # For example:
        # books = Book.objects.filter(author="bob")
        # for book in books:
        #    book.name = "Bob"
        #    book.save()

यहां क्लास नाम कमांड अनिवार्य है जो कि बेसकमांड या उसके किसी उपवर्ग का विस्तार करता है।

प्रबंधन कमांड का नाम फ़ाइल युक्त नाम है। ऊपर दिए गए उदाहरण में कमांड चलाने के लिए, अपने प्रोजेक्ट डायरेक्टरी में निम्नलिखित का उपयोग करें:

python manage.py my_command

ध्यान दें कि कमांड शुरू करने में कुछ सेकंड लग सकते हैं (मॉड्यूल के आयात के कारण)। इसलिए कुछ मामलों में management commands बजाय daemon प्रक्रियाओं को बनाने की सलाह दी जाती है।

प्रबंधन आदेशों पर अधिक

मौजूदा आदेशों की सूची प्राप्त करें

आप निम्न तरीकों से उपलब्ध आदेशों की सूची प्राप्त कर सकते हैं:

>>> python manage.py help

यदि आप किसी आदेश को नहीं समझते हैं या वैकल्पिक तर्कों की तलाश कर रहे हैं, तो आप इस तरह -h तर्क का उपयोग कर सकते हैं

>>> python manage.py command_name -h

यहां command_name आपका इच्छा कमांड नाम होगा, यह आपको कमांड से टेक्स्ट की मदद दिखाएगा।

>>> python manage.py runserver -h          
>>> usage: manage.py runserver [-h] [--version] [-v {0,1,2,3}]
                           [--settings SETTINGS] [--pythonpath PYTHONPATH]
                           [--traceback] [--no-color] [--ipv6] [--nothreading]
                           [--noreload] [--nostatic] [--insecure]
                           [addrport]

Starts a lightweight Web server for development and also serves static files.

positional arguments:
  addrport              Optional port number, or ipaddr:port

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --ipv6, -6            Tells Django to use an IPv6 address.
  --nothreading         Tells Django to NOT use threading.
  --noreload            Tells Django to NOT use the auto-reloader.
  --nostatic            Tells Django to NOT automatically serve static files
                        at STATIC_URL.
  --insecure            Allows serving static files even if DEBUG is False.

उपलब्ध कमांड की सूची

प्रबंधन के बजाय django- व्यवस्थापक का उपयोग करना

आप इसके बदले manage.py हटा सकते हैं और django-admin कमांड का उपयोग कर सकते हैं। ऐसा करने के लिए, आपको मैन्युअल रूप से वही करना होगा जो manage.py करता है:

  • अपने प्रोजेक्ट पथ को अपने PYTHONPATH में जोड़ें
  • DJANGO_SETTINGS_MODULE सेट करें
export PYTHONPATH="/home/me/path/to/your_project"
export DJANGO_SETTINGS_MODULE="your_project.settings"

यह एक virtualenv में विशेष रूप से उपयोगी है जहां आप इन पर्यावरण चर को postactivate स्क्रिप्ट में सेट कर सकते हैं।

django-admin कमांड में आपके फ़ाइल सिस्टम पर कहीं भी उपलब्ध होने का लाभ है।

बिलिन प्रबंधन कमांड

Django कई अंतर्निहित प्रबंधन आदेशों के साथ आता है, जब python manage.py [command] या, जब manage.py + x (निष्पादन योग्य) अधिकार बस ./manage.py [command] । निम्नलिखित सबसे अक्सर इस्तेमाल किया जाता है:

सभी उपलब्ध आदेशों की एक सूची प्राप्त करें

./manage.py help

अपने Django सर्वर को स्थानीयहोस्ट पर चलाएं: 8000; स्थानीय परीक्षण के लिए आवश्यक है

./manage.py runserver

अपने प्रोजेक्ट के Django सेटिंग के साथ पहले से लोड किए गए एक अजगर (या ipython स्थापित होने पर) चलाएं (ऐसा न करने पर अजगर प्रोजेक्ट में आपके प्रोजेक्ट के कुछ हिस्सों को एक्सेस करने का प्रयास करेगा)।

./manage.py shell

अपने मॉडल में किए गए परिवर्तनों के आधार पर एक नया डेटाबेस माइग्रेशन फ़ाइल बनाएँ। पलायन देखें

./manage.py makemigrations

वर्तमान डेटाबेस में कोई भी अप्रयुक्त माइग्रेशन लागू करें।

./manage.py migrate

अपने प्रोजेक्ट का परीक्षण सूट चलाएं। यूनिट परीक्षण देखें

./manage.py test

अपनी परियोजना की सभी स्टैटिक फाइलें ले लें और उन्हें STATIC_ROOT में निर्दिष्ट फ़ोल्डर में STATIC_ROOT ताकि उन्हें उत्पादन में परोसा जा सके।

./manage.py collectstatic

सुपरयुसर बनाने की अनुमति दें।

./manage.py createsuperuser

एक निर्दिष्ट उपयोगकर्ता का पासवर्ड बदलें।

./manage.py changepassword username

उपलब्ध आदेशों की पूरी सूची



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow