django project与app

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

1

这段命令行代码运行时并不输出任何结果,但是它在 mysite 目录下创建了一个 books 的文件夹。这个文件夹里的内容如下:

books/

    __init__.py

    models.py

    views.py

2

这些文件里面就包含了这个app的模型和视图。

看一下 models.py 和 views.py 文件。它们都是空的,除了 models.py 里有一个 import。

其实可以抽象的理解为project就是最终完成的项目(例如一份拼图),而app就是拼图上的一片,多个app组成一个大型的项目(好比分裂成1000片的拼图),单个app组成小的项目(好比9片的儿童拼图),而在不同project中重用app也就是相同功能的调用(例如摩托车和汽车两种不同的框架中装上相同的起到发动机作用的零件),单个app完成的简单内容就如本菜目前联系的网页pos机内容一般。

相关推荐