others linux服务器运维 django3 监控 k8s golang 数据库 大数据 前端 devops 理论基础 java oracle 运维日志

django常用命令释例

访问量:1520 创建时间:2020-01-08

django安装后会生成django-admin与django-admin.py命令,二者相同。 创建django项目(例如python3 django-admin startproject myapp)会在myapp目录下生成manage.py文件。 在后续使用django过程中manage.py会经常使用,现在对常用命令进行说明,可以结合后续文章加深命对命令的理解。

django常用命令列表

命令 解释
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命令

编写自定义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

可以定义自己的命令用于定时任务,特定时间发布或者执行某些操作

登陆评论: 使用GITHUB登陆