project:工程
app(application):应用,应用程序
它们的区别就是一个是配置另一个是代码:
一个project包含很多个Django app以及对它们的配置。
技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS(template_dirs),等等。
一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。
例如,Django本身内建有一些app,如注释系统和自动管理界面。值得关注的是,这些app很容易移植到其他project和被多个project重用。
如果你只是建造一个简单的web站点,那么可能你只需要一个app就可以了。如果是复杂的像淘宝等电商之类的Web站点,你可能需要把这些功能划分成不同的app,以便以后重用。
确实,还可以不用创建app,例如以前写的视图,只是简单的放在 views.py ,不需要app。
当然,系统对app有一个约定:如果你使用了Django的数据库层(模型),你必须创建一个django app。模型必须在这个app中存在。因此,为了开始建造我们的模型,我们必须创建一个新的app。
转到 mysite 项目目录,执行下面的命令来创建一个新app叫做books:
python manage.py startapp books</