管理django的命令行工具集合
区别:manage.py会在每个django项目中自动生成(局部的命令行工具)
二者命令相同,manage.py更方便在项目中使用
django-admin startproject name
python manage.py startapp name
python manage.py runserver
python manage.py createsuperuser
python manage.py changepassword
python manage.py check
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic
python manage.py shell
python manage.py clearsessions
调用方法
python manage.py 自定义命令
步骤
- mine(app名)
- __init__.py
- models.py
- management
- __init__.py
- commands
- __init__.py
- update.py
- urls.py
- views.py
实现
django.core.management.base.BaseCommand
的子类
添加命令参数
add_arguments
处理命令逻辑
handle
显示处理过程(
self.stdout.write/self.stderr.write
)
实现逻辑内容-- update.py
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = "自定义命令行工具"
def add_arguments(self, parser):
"""
添加命令的参数
python manage.py update --all
python manage.py update --one 2020
"""
parser.add_argument('--all', action='store_true', dest='all', default=False, help='all')
parser.add_argument('--one', action='store', dest='one', default=False, help='all')
def handle(self, *args, **options):
"""
按照接收到的参数的进行不同的处理逻辑
"""
if options['all']:
self.stdout.write('start argparse all')
# 逻辑处理代码
self.stdout.write('end argparse all')
elif options['one']:
self.stdout.write('start argparse one {}'.format(options['one']))
else:
self.stderr.write('argparse error')
argparse模块参考文档(https://docs.python.org/zh-cn/3/howto/argparse.html)
context_processor
middleware
Context
RequestContext
作用:连接views(视图)和templates(模板)