第一个应用程序
你现在已经确认数据库连接正常工作了,让我们来创建一个 Django app-一个包含模型,视图和Django代码,并且形式为独立Python包的完整Django应用。
在这里要先解释一些术语,初学者可能会混淆它们。在第二章我们已经创建了 project
, 那么 project
和 app
之间到底有什么不同呢?它们的区别就是一个是配置另一个是代码:
一个
project
包含很多个Django app以及对它们的配置。技术上,
project
的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表,TEMPLATE_DIRS
,等等。一个
app
是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。例如,Django本身内建有一些
app
,例如注释系统和自动管理界面。app
的一个关键点是它们是很容易移植到其他project
和被多个project
复用。
对于如何架构Django代码并没有快速成套的规则。如果你只是建造一个简单的Web站点,那么可能你只需要一个app就可以了;但如果是一个包含许多不相关的模块的复杂的网站,例如电子商务和社区之类的站点,那么你可能需要把这些模块划分成不同的app,以便以后复用。
不错,你可以不用创建app,这一点已经被我们之前编写的视图函数的例子证明了 。 在那些例子中,我们只是简单的创建了一个称为views.py
的文件,编写了一些函数并在URLconf
中设置了各个函数的映射。 这些情况都不需要使用apps
。
但是,系统对app有一个约定: 如果你使用了Django的数据库层(模型),你必须创建一个Django app。 模型必须存放在apps中。因此,为了开始建造我们的模型,我们必须创建一个新的app。
在mysite
项目文件下输入下面的命令来创建books
app:
python manage.py startapp books
这个命令并没有输出什么,它只在 mysite
的目录里创建了一个 books
目录。 让我们来看看这个目录的内容:
books/
__init__.py
models.py
tests.py
views.py
这个目录包含了这个app的模型和视图。
使用你最喜欢的文本编辑器查看一下 models.py
和 views.py
文件的内容。它们都是空的,除了 models.py
里有一个 import。这就是你Django app的基础。
{$ activeFileHint $}