Django 基本命令

新建一个 Django Project

这个命令我们在第一章中已经使用,可以翻看之前 HelloWorld 项目建立来实践:

1
$ django-admin.py startproject project-name

注意,在 Windows 系统下,如果报错,尝试用 django-admin 代替 django-admin.py。

在输入完该条指令后,系统会在当前目录增加一个项目名目录,并且其中存有最基础的 Django 项目文件。

新建 app

同样,在第一章中已经使用,可以翻看之前建立 Hello app 的操作流程来实践:

1
$ python3 manage.py startapp app-name

另有一种写法:

1
$ django-admin.py startapp app-name

一般一个项目会存有多个 app ,当然通用的 app 也可以在多个 Django 项目中通用这个 app。

同步数据库

1
2
$ python manage.py makemigrations
$ python manage.py migrate

这种方法可以创建表,当你在 models.py 中新增类时,运行它就可以自动在数据库中创建表,不用手动创建。

备注:对已有的 models 进行修改,Django 1.7 之前的版本是无法自动修改数据库表结构的,不过有第三方的 south 工具可以使用。

使用开发服务器

开发服务器,即开发时使用,一般修改代码后会自动重启,方便调试和开发,但是由于性能问题,建议只用来测试,不要用在生产环境。

1
2
3
4
# 默认情况下在 0.0.0.0:8080 启动
$ python manage.py runserver

# 当提示端口被占用的时候,可以用其他端口

清空数据库 *

1
$ python manage.py flush

此命令会询问是 yes 还是 no,选择 yes 会把数据库全部清空掉,只留下空表。

创建超级管理员 *

1
2
3
4
5
$ python manage.py createsuperuser

# 按照提示输入用户名和对应的密码可以,邮箱可以留空,用户名和密码必填
# 修改用户密码可以使用以下命令
$ python manage.py changepassword username

导出数据 导入数据 *

1
2
$ python manage.py dumpdata appname > appname.json
$ python manage.py loaddata appname.json

关于数据库操作,在后面的数据库课程中会详细介绍。

Django 项目环境终端

1
$ python manage.py shell

如果你安装了 bpython 或 ipython 会自动用它们的界面,这里推荐使用 ipython。

这个命令和直接运行 python 进入 shell 的区别是:**你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

当熟悉使用 shell 环境终端时,你会发现测试新的方法更加的快速,效率成倍提高。(就跟学会了 Vim 一样,并不是想引发圣战 /(ㄒoㄒ)/~~)

数据库命令行 *

1
$ python manage.py dbshell

Django 会自动进入在 settings.py 中设置的数据库,如果是 MySQL 或 postgreSQL ,会要求输入数据库用户密码。在这个终端可以执行数据库的 SQL 语句。如果你对 SQL 比较熟悉,可能会喜欢这种方式。

更多 *

直接在终端上输入以下命令,可以看到详细的列表,在忘记参数名时特别有用。

1
$ python manage.py

更详细的介绍,还是推荐官网的文档。给你列出三个版本,对应学习。

  • 1.10
  • 1.8
  • deb