In Django project, We could manage by executing some commands which could be invoked through the manage.py.
For example:
# Start the webserver
python manage.py runserver
Management Command is used to create our own actions with manage.py.
If your app is in projectdirectory then create the directories projectdirectory/app/management/commands.
Create an empty file called __init__.py in both the management and commands directories. This will make that every other python file in the commands directory can be executed via manage.py command.
If you create the file project/app/management/commands/management_command.py. Django will register a manage.py command for each Python module in that directory whose name doesn’t begin with an underscore, then it can be run as manage.py management_command.
Example: Management command to create elasticsearch index.
In the app which the command is used for make the following directory structure:
management/
__init__.py
commands/
__init__.py
create_index.py
#in create_index.py file add the following code.
import json, requests
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
help = 'create elasticsearch index'
def handle(self, *args, **options):
data = {
"settings": {
"number_of_shards": 4,
"number_of_replicas": 1
},
"mappings": {
"notebook": {
"properties": {
"title": { "type": "string", "boost": 4 },
"description": { "type": "string", "boost": 2 },
"content": { "type": "string" }
}
}
}
}
url = 'http://127.0.0.1:9200/my_index/'
response = requests.put(url, data=json.dumps(data))
print(response.text)
In the above example, I'm using management command to create a my_index with title, description and content. Now run the following command to create index.
python manage.py create_index
Above command should return the response '{"acknowledged":true}' after successful index creation.
Micropyramid is a software development and cloud consulting partner for enterprise businesses across the world. We work on python, Django, Salesforce, Angular, Reactjs, React Native, MySQL, PostgreSQL, Docker, Linux, Ansible, git, amazon web services. We are Amazon and salesforce consulting partner with 5 years of cloud architect experience. We develop e-commerce, retail, banking, machine learning, CMS, CRM web and mobile applications.
Django-CRM :Customer relationship management based on Django
Django-blog-it : django blog with complete customization and ready to use with one click installer Edit
Django-webpacker : A django compressor tool
Django-MFA : Multi Factor Authentication
Docker-box : Web Interface to manage full blown docker containers and images
More...