Django是一个很是流行的用python编写的Web框架,在使用Django以前,咱们须要了解一些基本的概念,这样能够在使用Django的时候对其有一个更加深刻的把握。本文主要介绍Django中两个很是基础但又是不少初学者不太明白的概念:project和app.css
Project
其实在计算机领域,要真正了解一个东西,莫过于亲自去阅读它的源代码;同理,对于Django中的project和app,咱们也能够采用相似的方法。咱们能够经过命令:html
django-admin.py startproject mysite 来建立一个新的project,以后咱们能够在当前目录下看到以下目录结构:python
mysite/web
manage.py数据库
mysite/django
__init__.py编程
settings.pyapp
urls.py框架
wsgi.py函数
其中manage.py是在开发web项目时常常用到的工具,如:python manage.py runserver localhost:8000 ; python manage.py syndb 等等,而在内部的mysite目录下放着四个py文件,其中__init__.py用于说明内部的mysite目录是一个python模块,打开settings.py文件,咱们能够看到一些基本的配置信息,包括数据库配置,时区,安装的APP,中间件,日志配置,以及一些基本的目录配置等,其本质上至关于一个基本的web工程的全局配置。urls.py文件中包含一个urlpatterns变量,其实它就是一个URL Dispacher(URL分派器),用于在URL和实际的view之间创建一个映射。
App
在建立完project以后,咱们能够经过命令:python manage.py startapp polls建立一个名叫polls的app,而后整个目录结构变成以下所示:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
polls/
__init__.py
models.py
views.py
test.py
很显然,上述红色部分是多出来的,即运行上述命令后作的一些事情, 其中 __init__.py用于说明polls目录是一个python模块,models.py中包含一系列的模型类,每一个模型类对应数据库中的一个表,这之间的映射由Django来作,有关数据库的配置在mysite/settings.py中。而views.py中包含的是对各个请求的处理逻辑,前面说的URL Dispacher即将URL请求映射到这个文件中的函数或类方法上。同时能够在polls目录下建立template目录,而后将前台的html,css,script等内容放置在这个目录下,并在setttings.py文件添加相应的配置信息。因此,咱们其实能够看到APP至关于一个相对独立的功能模块,其遵循的设计理念是MVT(相似MVC);在一个大型的Project中,能够包含不少APP,并且每一个APP能够在不一样的Project中复用,这也符合Django的编程理念,即:不要作重复的事情。
综上所述,project和APP的区别已经很明显了,project包含一些全局配置,这些配置构成一个全局的运行平台,各个APP都运行在这个全局的运行平台上,而APP表明的是一个相对独立的功能模块,因此程序的逻辑都在APP中。