Django
प्रबंधन आदेश
खोज…
परिचय
प्रबंधन कमांड शक्तिशाली और लचीली स्क्रिप्ट हैं जो आपके 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