django安装后会生成django-admin与django-admin.py命令,二者相同。 创建django项目(例如python3 django-admin startproject myapp)会在myapp目录下生成manage.py文件。 在后续使用django过程中manage.py会经常使用,现在对常用命令进行说明,可以结合后续文章加深命对命令的理解。
命令 | 解释 |
---|---|
django-admin.py startproject [projectname] | 创建项目,例子:django-admin.py startproject myblog |
python manage.py startapp appname | cd到projectname 目录,在项目中创建应用,例如python manage.py startapp social_auth |
python manage.py makemigrations | 根据django默认的model或者自己定义的model,生成数据库迁移文件(建表语句),,可以跟[appname]可选参数,只对一个app执行 |
python manage.py showmigrations | 查看相关app的数据库迁移状态 |
python manage.py migrate | 执行数据库迁移(执行建表语句),可以跟[appname]可选参数,只对一个app执行;也可以进行回退操作 |
python manage.py flush | 清空数据库数据,只保留表结构 |
python manage.py runserver | 运行django服务,后面可以跟参数IP:PORT ,默认监听在127.0.0.1:8000,可以用0.0.0.0:80等代替地址和端口 |
python manage.py createsuperuser | 创建超级管理员,可以登陆django的admin后台 |
python manage.py changepassword | 修改用户密码 |
python manage.py dumpdata appname > app.json | 导出app数据 |
python manage.py loddata app.json | 导入数据 |
python manage.py shell | django的shell交互界面,可以进行调试 |
python manage.py collectstatic | 收集所有的静态资源文件到static目录(static根据settings.py配置确定),用于django部署,statis目录可以用nginx直接访问 |
python manage.py clearsessions | 清理用户登陆session |
python manage.py inspectdb | 数据库反向操作,根据现有的数据库生成models文件 |
其他命令参数 | 查看python manage.py查看相关命令帮助文档 |
高级 | 编写自定义django-admin命令 |
修改settings.py,增加app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myblog', <-- 添加
]
为应用添加一个 management/commands 目录
#linux执行
[root@work1 myblog]# mkdir -pv myblog/management/commands
--------
#windows执行
C:\Users\Administrator\Desktop\myblog>mkdir myblog\management\commands
创建命令脚本文件,在myblog/management/commands/ 目录下创建helloworld.py文件,编辑如下内容:
[root@work1 myblog]# vim myblog/management/commands/helloworld.py
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
def handle(self, *args, **options):
print("hello world !")
[root@work1 myblog]# python3 manage.py
[django]
check
...省略部分输出内容...
[myblog]
helloworld <--已经存在
[sessions]
clearsessions
可以定义自己的命令用于定时任务,特定时间发布或者执行某些操作