草庐IT

Django manage.py 命令详解

Linux huaxiayuyi 2023-04-19 原文

manage.py


查看命令的作用的语句

C:\Users\Administrator> python manage.py help
Type 'manage.py help <subcommand>' for help on a specific subcommand.
Available subcommands:
[auth]
    changepassword   更改密码
    createsuperuser  创建admin超级用户
[contenttypes]
    remove_stale_contenttypes
[django]
    check
    compilemessages
    createcachetable 使用设置文件中的信息创建与数据库高速缓存后端一起使用的高速缓存表
    dbshell          进入数据库的命令行
    diffsettings     显示当前设置文件和Django默认设置(或所指定的另一个设置文件--default)之间的差异
    dumpdata         导出数据库数据
    flush            清空数据库
    inspectdb        让本地的数据库生成models.py内的代码
    loaddata         导入数据库数据
    makemessages
    makemigrations   生成数据库脚本(迁移文件)
    migrate          同步数据库  这个和makemigrations是做数据库迁移,每次数据库有更改或者model有更改都需要操作
    sendtestemail    向指定的收件人发送测试电子邮件,测试django是否能够发送邮件
    shell            django的shell命令行
    showmigrations   显示项目中的所有数据迁移
    sqlflush         打印将对该flush 命令执行的SQL语句
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp         创建应用
    startproject     创建项目
    test             对所有已安装的应用程序运行测试
    testserver runserver 使用自定义配置运行服务
[sessions]
    clearsessions    可以作为cron作业运行,也可以直接清除过期的会话。
[staticfiles]
    collectstatic
    findstatic
    runserver        启动django服务

 

manage.py 命令选项

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

内置命令包含

1 check
2 dbshell
3 diffsettings
4 flush
5 makemigrations
6 migrate
7 runserver
8 shell
9 startapp
10 startprojec

其实有三种方式,可以在cmd 窗口中执行Django 提供的内置命令。

1 django-admin <command> [options]
2 python manage.py <command> [options]
3 python -m django <command> [options]


1 django-admin 是用于管理Django 的命令行工具集,当我们成功安装 Django 后,在操作系统中就会有这个命令。

2 manage.py 则是每个Django 项目中自动生成的一个用于管理项目的脚本文件,需要在cmd窗口中 cd 到 Django项目

的manage.py 所在的目录后通过python命令执行。其中的 command 是Django内置的或者你自定义的命令。

当然你可以在在 pycharm 中启动manage.py 时设置参数。

 

1 check

检查整个Django 项目是否存在常见问题默认情况下,所有应用都将被选中。可以通过提供app的名字检查指定的应用:

python manage.py check app

 

2 diffsettings

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

python manage.py diffsettings

 

3 flush

从数据库中删除所有数据。

已应用的迁移不会被清除。只删除具体数据,不删除数据表。

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

来的数据表都删了。

python manage.py flush

 

4 makemigrations

根据检测到的模型创建新的迁移。

迁移的作用,更多的是将数据库的操作,以文件的形式记录下来,方便以后检查重做等等。

尤其是对于Git版本管理,它无法获知数据库是如何变化的,只能通过迁移文件中的记录来追溯和保存。

python manage.py makemigrations app1 app2

 

5 migrate

使数据库状态与当前模型集和迁移集同步。

说白了,就是将对数据库的更改,主要是数据表设计的更改,在数据库中真实执行。

例如,新建、修改、删除数据表,新增、修改、删除某数据表内的字段等等。

python manage.py migrate

 

6 runserver

启用Django 为我们提供的轻量级的开发用的Web 服务器。

默认情况下,服务器运行在IP地址127.0.0.1 的 8000 端口上。

如果要自定义服务器端口和地址,可以显式地传递一个IP地址端口号给它。

python manage.py runserver
python manage.py runserver 127.0.0.1:8080 # 当提示端口被占用的时候,可以用其它端口

 

7 shell

启动带有Django 环境的Python 交互式解释器,也就是命令行环境。

默认使用基本的python 交互式解释器。这个命令非常常用,是我们测试开发过程中不可或缺的部分!

python manage.py shell

 

8 startapp

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

python manage.py startapp app_name

 

9 startproject

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

python manage.py startproject project_name

 

10 test

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

python manage.py test [test_label [test_label ...]]

 

app提供的命令

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

changepassword 
createsuperuser 
clearsessions 
collectstatic

 

有关Django manage.py 命令详解的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  3. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

  4. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  5. ruby - 在 Ruby 的 if 语句中检查 bash 命令 - 2

    如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最

  6. ruby - 可以正常中断的来自 Rake 的长时间运行的 shell 命令? - 2

    在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa

  7. ruby - Capistrano 中的执行、测试和捕获命令有什么区别? - 2

    关于SSHkit-Github它说:Allbackendssupporttheexecute(*args),test(*args)&capture(*args)来自SSHkit-Rubydoc,我明白execute实际上是test的别名?test之间有什么区别?,execute,capture在Capistrano/SSHKit中我应该什么时候使用? 最佳答案 执行只是执行命令。使用非0退出引发错误。测试方法的行为与execute完全相同,但是它返回bool值(true如果命令以0退出,而false否则)。它通常用于控制任务中的流程

  8. ruby - 如何在 Ruby 中执行 Windows CLI 命令? - 2

    我在目录“C:\DocumentsandSettings\test.exe”中有一个文件,但是当我用单引号编写命令时`C:\DocumentsandSettings\test.exe(我无法在此框中显示),用于在Ruby中执行命令,我无法这样做,我收到的错误是找不到文件或目录。我尝试用“//”和“\”替换“\”,但似乎没有任何效果。我也使用过系统、IO.popen和exec命令,但所有的努力都是徒劳的。exec命令还使程序退出,这是我不想发生的。提前致谢。 最佳答案 反引号环境就像双引号,所以反斜杠用于转义。此外,Ruby会将空格解

  9. ruby - 将命令行上的变量传递给 Cucumber 测试 - 2

    我正在尝试将cucumber项目的用户名和密码置于版本控制之外。有没有办法在命令行上手动将用户名和密码等变量传递给Cucumber脚本?我的备份计划是将它们放在一个YML文件中,然后将该文件添加到gitignore,这样它们就不会被置于版本控制中。 最佳答案 所以,我看到了您对铁皮人的评论,答案是肯定的。cucumberPASSWORD=my_passwordPASSWORD被设置为环境变量,您可以通过将其引用为ENV['PASSWORD']来使用它的值。例如,browser.text_field(:id=>'pwd').setEN

  10. ruby - 无法安装 gem - make 未被识别为内部或外部命令可运行程序或批处理文件 - 2

    我想在Windows7上安装带有ruby​​1.9.3的rspec-railsgem。我收到一些错误消息,提示无法安装某些json库。所以,我使用下面的说明来解决它。来源=The'json'nativegemrequiresinstalledbuildtools从[rubyinstaller.org][3]下载[Ruby1.9.3][2]从[rubyinstaller.org][3]下载DevKit文件对于Ruby1.9.3,使用[DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe][4]将DevKit解压到路径C:\Ruby193\DevKit运行cd

随机推荐