目录

一、Django内置命令选项

  1. check
  2. dbshell
  3. diffsettings
  4. flush
  5. makemigrations
  6. migrate
  7. runserver
  8. shell
  9. startapp
  10. startproject
  11. test

二、app提供的命令

  1. changepassword
  2. createsuperuser
  3. clearsessions
  4. collectstatic

三、 共有参数

  1. --pythonpath PYTHONPATH
  2. --settings SETTINGS
  3. --traceback
  4. --verbosity {0,1,2,3}, -v {0,1,2,3}
  5. --no-color

四、颜色控制

五、在代码中调用管理命令


django-admin是用于管理Django的命令行工具集,当我们成功安装Django后,在操作系统中就会有这个命令,但是根据安装方式或者系统环境的不同,你可能需要配置一下调用路径。在Linux下,该命令一般位于site-packages/django/bin,最好做一个链接到/usr/local/bin,方便调用。Windows下可以配置系统环境变量,参考教程开始部分。

manage.py则是每个Django项目中自动生成的一个用于管理项目的脚本文件,需要通过python命令执行。

有三种方式,可以执行Django提供的内置命令:

$ django-admin <command> [options]
$ manage.py <command> [options]
$ python -m django <command> [options]

其中的command是Django内置的或者你自定义的命令。

有三种获取帮助信息的办法:

django-admin help:显示使用信息和命令列表。

django-admin help --commands:所有可用命令的列表。

django-admin help <command>:命令的介绍及其可用的参数列表。

django-admin version:获取当前使用的Django版本。

使用--verbosity参数指定django-admin将通知和调试信息打印到控制台。

一、Django内置命令选项

Django为我们提供了一系列命令选项,有一些天天都用,有一些很重要,有一些基本用不到。下面列出了一些重要的:

调用方式:django-admin 命令选项 额外参数

1. check

检查整个Django项目是否存在常见问题。

默认情况下,所有应用都将被选中。可以通过提供app的名字检查指定的应用:

django-admin check auth admin myapp

如果你没有指定任何一个应用,那么将对全部的应用进行检查。

2. dbshell

运行ENGINE设置中指定的数据库引擎的命令行客户端,其中USER,PASSWORD等指定连接参数。

--database DATABASE

指定打开某个数据库的shell。 默认为default。

3. diffsettings

django-admin diffsettings

显示当前设置文件与Django的默认设置之间的差异。

4. flush

django-admin flush

从数据库中删除所有数据。已应用的迁移不会被清除。只删除具体数据,不删除数据表!

如果您希望从空数据库启动并重新运行所有迁移,则应该删除并重新创建数据库,然后再运行migrate,这样会连原来的数据表都删了。

5. makemigrations

django-admin makemigrations [app_label [app_label ...]]

根据检测到的模型创建新的迁移。迁移的作用,更多的是将数据库的操作,以文件的形式记录下来,方便以后检查、调用、重做等等。尤其是对于Git版本管理,它无法获知数据库是如何变化的,只能通过迁移文件中的记录来追溯和保存。

6. migrate

django-admin migrate [app_label] [migration_name]

使数据库状态与当前模型集和迁移集同步。说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等等。

7. runserver

django-admin runserver [addrport]

启用Django为我们提供的轻量级的开发用的Web服务器。默认情况下,服务器运行在IP地址127.0.0.1的8000端口上。如果要自定义服务器端口和地址,可以显式地传递一个IP地址和端口号给它。

在Linux中,如果你以一个普通用户的身份来运行脚本,你可能没有权限在低位端口上运行。低端口数(即1024以下)是预留出来给超级用户(root)的。

这个服务器使用的WSGI application对象是在WSGI_APPLICATION中设置的。

不要在生产环境中使用这个服务器。

通常,每当我们写的代码有变化时,这个服务器会自动重启,但这不是绝对的,所以,为了不出意外,每次测试时,还是手动重启一下吧。

当你启动服务器之后,在服务器运行过程中每当你的Python代码有变更时,系统的检测框架将会检查整个项目中是否存在一些直观的错误,如果检测到了错误,这些错误信息将会输出至标准输出。

可以同时启动多个服务器,只要它们在不同的端口上,多次执行django-admin runserver ...即可。

注意:默认的IP为127.0.0.1,它是不可被网络中的其它主机所访问的,只能本机。要使网络上的其他计算机可以访问你的开发服务器,请使用自己的IP地址(例如192.168.2.1)或0.0.0.0或 :: (启用IPv6)。也可以使用只包含ASCII码的主机名.

Django开发服务器,默认支持多线程,可以通过--nothreading参数关闭。

下面是使用不同端口和地址的示例:

端口8000在IP地址127.0.0.1:

django-admin runserver

端口8000在IP地址1.2.3.4:

django-admin runserver 1.2.3.4:8000

端口7000在IP地址127.0.0.1:

django-admin runserver 7000

端口7000在IP地址1.2.3.4:

django-admin runserver 1.2.3.4:7000

端口8000在IPv6地址::1:

django-admin runserver -6

端口7000在IPv6地址::1:

django-admin runserver -6 7000

端口7000在IPv6地址2001:0db85678::9:

django-admin runserver [2001:0db8:1234:5678::9]:7000

端口8000在主机的IPv4地址localhost:

django-admin runserver localhost:8000

端口8000在主机的IPv6地址localhost:

django-admin runserver -6 localhost:8000

8. shell

django-admin shell

启动带有Django环境的Python交互式解释器,也就是命令行环境。默认使用基本的python交互式解释器。这个命令非常常用,是我们测试和开发过程中不可或缺的部分!

--interface {ipython,bpython,python}, -i {ipython,bpython,python}

指定要使用的shell。 默认情况下,Django将使用IPython或bpython。如果同时安装了两个,请指定您想要的那个,如下所示:

使用IPython:

django-admin shell -i ipython

使用bpython:

django-admin shell -i bpython

9. startapp

django-admin startapp name [directory]

创建新的app。

默认情况下,会在这个新的app目录下创建一系列文件模版,比如models.py、views.py、admin.py等等。

10. startproject

django-admin startproject name [directory]

新建工程。默认情况下,新目录包含manage.py脚本和项目包(包含settings.py和其他文件)。

11. test

django-admin test [test_label [test_label ...]]

运行所有已安装的app的测试代码。

二、app提供的命令

前面是Django核心提供的命令项,下面则是一些内置app,比如auth等提供的命令项。它们只在对应的app启用的时候才可用。

下面是最重要的几个:

1. changepassword

此命令仅在安装了Django的authentication system(django.contrib.auth)时可用。

该命令用于更改用户的密码。它会提示为给定用户输入两次新密码。如果两次输入相同,则立即成为新密码。 如果不提供用户名,该命令将尝试更改与当前用户匹配的用户名的密码。

用法示例:

django-admin changepassword tom

2. createsuperuser

此命令仅在安装了Django的authentication system(django.contrib.auth)时可用。

创建超级用户帐户(具有所有权限的用户)。如果你需要创建初始超级用户帐户,或者需要以编程方式为你的网站生成超级用户帐户,这将非常有用。

以交互方式运行时,此命令将提示输入新超级用户的密码。

当以非交互方式运行时,将不会设置密码,并且超级用户帐户将无法登录,直到为其手动设置密码。

可以使用命令行上的--username--email参数提供新帐户的用户名和电子邮件地址。如果未提供其中任何一个,则createsuperuser将在以交互方式运行时提示输入。

3. clearsessions

清除过期的会话。可以作为cron定期作业或直接运行。

4. collectstatic

仅当安装了static files application(django.contrib.staticfiles)时,此命令才可用。

用于在线上环境,当DEBUG设置为False时,将静态文件等统一集中到一个目录下,为Web服务器提供静态文件支持。

这是一个不起眼,但非常重要的命令!

三、 共有参数

每种命令都有自己特定的参数选项,但下面几个是所有命令都可以使用的参数:

1. --pythonpath PYTHONPATH

将给定的文件系统路径添加到Python的模块导入搜索路径(import search path)。

如果未提供,django-admin将使用PYTHONPATH环境变量的值。

用法示例:

django-admin migrate --pythonpath='/home/djangoprojects/myproject'

2. --settings SETTINGS

指定要使用的配置文件。例如mysite.settings。如果未提供,django-admin将使用DJANGO_SETTINGS_MODULE环境变量的值。

用法示例:

django-admin migrate --settings=mysite.settings

3. --traceback

当引发CommandError时,显示完整的错误栈信息。默认情况下,django-admin将显示一个简单的错误消息。

用法示例:

django-admin migrate --traceback

4. --verbosity {0,1,2,3}, -v

指定向控制台打印消息的方式。

  • 0表示无输出。
  • 1表示正常输出(默认)。
  • 2表示详细输出。
  • 3表示非常详细输出。

用法示例:

django-admin migrate --verbosity 2

5. --no-color

禁用彩色的输出信息。 一些命令会给它输出的内容添加色彩。例如,错误将以红色打印到控制台,SQL语句将突出显示语法。

用法示例:

django-admin runserver --no-color

四、颜色控制

如果你的终端支持ANSI颜色输出,则django-admin或者manage.py命令将使用漂亮的颜色输出。如果你将命令的输出传递到另一个程序,它不会使用颜色代码。

在Windows下,本机控制台不支持ANSI转义序列,因此默认情况下没有颜色输出。但是,可以安装ANSICON第三方工具,Django命令将检测其存在,并使用带颜色的输出,就像在基于Unix的平台上。

用于语法高亮的颜色可以自定义。Django自带三个调色板:

  • dark,适用于在黑色背景上显示白色文字的终端。 这是默认调色板。
  • light,适用于在白色背景上显示黑色文本的终端。
  • nocolor,禁用语法高亮显示。

可以通过设置DJANGO_COLORS环境变量来指定要使用的调色板。 例如,要在Unix或OS/X BASH shell下指定light调色板,可以运行以下命令:

export DJANGO_COLORS="light"

还可以自定义要使用的颜色,以下是基本规则:

error - 主要错误。
notice - 一个小错误。
success - 成功。
warning - 警告。
sql_field - SQL中模型字段的名称。
sql_coltype - SQL中的模型字段的类型。
sql_keyword - 一个SQL关键字。
sql_table - SQL中模型的名称。
http_info - 1XX HTTP信息服务器响应。
http_success - 2XX HTTP成功服务器响应。
http_not_modified - 304 HTTP未修改服务器响应。
http_redirect - 除304之外的3XX HTTP重定向服务器响应。
http_not_found - 404 HTTP未找到服务器响应。
http_bad_request - 除404之外的4XX HTTP错误请求服务器响应。
http_server_error - 5XX HTTP Server错误响应。
migrate_heading - 迁移管理命令中的标题。
migrate_label - 迁移名称。

可以从以下列表中分配特定的前景和背景颜色:

black
red
green
yellow
blue
magenta
cyan
white

可以使用以下显示选项修改每种颜色:

bold
underscore
blink
reverse
conceal

颜色的配置规范遵循以下模式之一:

role=fg
role=fg/bg
role=fg,option,option
role=fg/bg,option,option

其中role是有效颜色配置的名称,fg是前景颜色,bg是背景颜色,每个option是一个颜色修改选项(用分号分隔)。 像这样:

export DJANGO_COLORS="error=yellow/blue,blink;notice=magenta"

或者:

export DJANGO_COLORS="light;error=yellow/blue,blink;notice=magenta"

五、在代码中调用管理命令

django.core.management.call_command(name, args, *options)

要在代码中调用管理命令,需要使用call_command方法,它接受下面的参数:

name

要调用的命令的名称或命令对象。

*args:

该命令接受的参数列表。 例如,call_command('flush', ' - verbosity = 0')

**options:

传递给命名的选项。 例如,call_command('flush', verbosity = 0)

例子:

from django.core import management
from django.core.management.commands import loaddata management.call_command('flush', verbosity=0, interactive=False)
management.call_command('loaddata', 'test_data', verbosity=0)
management.call_command(loaddata.Command(), 'test_data', verbosity=0)

命名参数可以通过使用以下语法之一传递:

# Similar to the command line
management.call_command('dumpdata', '--natural-foreign') # Named argument similar to the command line minus the initial dashes and
# with internal dashes replaced by underscores
management.call_command('dumpdata', natural_foreign=True) # `use_natural_foreign_keys` is the option destination variable
management.call_command('dumpdata', use_natural_foreign_keys=True)

有多个参数时,传递列表:

management.call_command('dumpdata', exclude=['contenttypes', 'auth'])

可以重定向标准输出和错误流,因为所有命令都支持stdout和stderr选项。 例如:

with open('/path/to/command_output') as f:
management.call_command('dumpdata', stdout=f)

第六章:Django 综合篇 - 4:django-admin和manage.py的更多相关文章

  1. pycharm中配置Django运行环境(包括run manage.py task)

    1.特别注意Environment variables(环境变量)的配置 DJANGO_SETTINGS_MODULE=(项目名).settings 如: DJANGO_SETTINGS_MODULE ...

  2. Django学习(1)——python manage.py startapp app-name新建app报错问题

    作为一个刚接触python的小白,开始学习Django注定前路漫漫,记录一下学习过程中的问题和解决方案. 感谢“自强学堂”的无私奉献,根据教程安装了Django 1.9.12后,尝试新建项目,此时使用 ...

  3. Django 中 python manage.py makemigrations 与 python manage.py migrate

    执行 python manage.py makemigrations django根据settings.py里面的INSTALLED_APPS项设置找到对应app里的models.py,应用里面创建的 ...

  4. django manage.py 的各种功能

    [简介] django-admin.py是Django的一个用于管理任务的命令行工具.本文将描述它的大概用法. 另外,在每一个Django project中都会有一个manage.py.manage. ...

  5. Django 命令行工具django-admin.py与manage.py

    django-admin.py是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每个Django Project里面都会包含一个manage ...

  6. The Django Book第六章(Admin)随笔

    要使用Django自带的管理界面,首先得激活- 激活的前提首先在你的项目的seeting目录下的INSTALL_APPS必须有以下的的包 django.contrib.admin django.con ...

  7. 第六章:Django 综合篇 - 19:部署 Django

    补充说明:关于项目部署,历来是开发和运维人员的痛点.造成部署困难的主要原因之一是大家的Linux环境不同,这包括发行版.解释器.插件.运行库.配置.版本级别等等太多太多的细节.因此,一个成功的部署案例 ...

  8. 第六章:Django 综合篇 - 18:国际化和本地化

    所谓的国际化,是指使用不同语言的用户在访问同一个网站页面时能够看到符合其自身语言的文本页面. 国际化的基本原理是: 浏览器通过LANGUAGE_CODE在HTTP请求头中告诉网站后台服务器用户所需要的 ...

  9. 第六章:Django 综合篇 - 16:Authentication

    Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. Django的认证系统包含了身份验证和权限管理两部分.简单地说,身份验证用于核实某个用户是否合法,权限管理 ...

随机推荐

  1. API管理之利剑 -- Eolink

    随着信息化飞速增长的还有各信息系统中的应用接口( API ),API 作为信息系统内部及不同信息系统之间进行数据传输的渠道,其数量随着软件系统的不断庞大而呈指数型增长,如何管理这些 API 已经在业界 ...

  2. 总结几个简单好用的Python人脸识别算法

    原文连接:https://mp.weixin.qq.com/s/3BgDld9hILPLCIlyysZs6Q 哈喽,大家好. 今天给大家总结几个简单.好用的人脸识别算法. 人脸识别是计算机视觉中比较常 ...

  3. 业务可视化-让你的流程图"Run"起来(4.实际业务场景测试)

    前言 首先,感谢大家对上一篇文章[业务可视化-让你的流程图"Run"起来(3.分支选择&跨语言分布式运行节点)]的支持. 下面我以实际业务场景为例,来介绍一下ladybug ...

  4. 利用Css3样式属性Cursor来更换自定义个性化鼠标指针(光标)

    现而今,我们纵向的回顾整个大前端的历史,不难发现,人们对前端的审美要求越来越高,越来越严苛,与此同时,人们对追求美的体验是也极致的,从理性到感性,从平面到几何,从现实到虚拟,所以从某种角度来说,作为前 ...

  5. 在Centos下对高并发web框架Tornado的性能进行测试

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_89 在之前的一篇文章中,我们在1g1核的惨淡硬件环境下,对 uwsgi + django 和 gunicorn+ django 的 ...

  6. 鲜衣怒马散尽千金,Vue3.0+Tornado6前后端分离集成Web3.0之Metamask钱包区块链虚拟货币三方支付功能

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_219 不得不承认,大多数人并不拥有或者曾经拥有加密货币.是的,Web3.0.加密货币.区块链,对于大多数的互联网用户来说,其实是一 ...

  7. Python数据分析--Numpy常用函数介绍(9)-- 与线性代数有关的模块linalg

    numpy.linalg 模块包含线性代数的函数.使用这个模块,可以计算逆矩阵.求特征值.解线性方程组以及求解行列式等.一.计算逆矩阵 线性代数中,矩阵A与其逆矩阵A ^(-1)相乘后会得到一个单位矩 ...

  8. Java 将Excel转为XML

    可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性.通常,我们可以通过格式转换的方式来得到XML格式的文件.本文,将通过Java代码介绍如何实现由Excel ...

  9. PLC中增益和偏移

    y=kx+b这个直线方程,那么增益就是指k这个斜率,而偏移就是指b. 模拟量转换时一般是不需要设置这两个参数的,只有当外部信号与模块接收的信号在值上有偏差的情况下才会去调整这个参数. 如果的模块信号是 ...

  10. Linux Shell 自动交互功能

    需求背景:   近日,在安装某软件过程,发现在安装过程需要输入一些信息才能继续下一步操作,在机器数量较少情况下,我们可以单台登录上去完成安装操作,但当机器数量超过一定时,如果再手动登录操作,就会产生大 ...