这次我们来看看Django的基本用法
我们首先来分辨一下Django中的两个名词的不同:project与app
app与project的区别:
- 一个app实现某个功能,比如博客、公共档案数据库或者简单的投票系统;
- 一个project是配置文件和多个app的集合,他们组合成整个站点;
- 一个project可以包含多个app;
- 一个app可以属于多个project!
app的存放位置可以是任何地点,但是通常我们将它们都放在与manage.py同级目录下,这样方便导入文件。
当我们创建好一个Django项目后它的文件格式是这样的:
mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
详细解释:
- 外层的mysite/目录与Django无关,只是你项目的容器,可以任意命名。
- manage.py:一个命令行工具,用于与Django进行不同方式的交互脚本,非常重要!
- 内层的mysite/目录是真正的项目文件包裹目录,它的名字是你引用内部文件的包名,例如:mysite.urls。
- mysite/init.py:一个定义包的空文件。
- mysite/settings.py:项目的主配置文件,非常重要!
- mysite/urls.py:路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的内容表格,非常重要!
- mysite/wsgi.py:一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。
首先我们来建立一个app :python manage.py startapp + (app名)
比如我建立了一个名叫learn的app,那么它的文件结构是这样的:
learn/
├── __init__.py
├── admin.py
├── models.py
├── tests.py
└── views.py
当我们建立好一个app后我们需要将这个app放入项目的settings.py中
INSTALLED_APPS
=
(
'django.contrib.admin'
,
'django.contrib.auth'
,
'django.contrib.contenttypes'
,
'django.contrib.sessions'
,
'django.contrib.messages'
,
'django.contrib.staticfiles'
,
'learn'
,
)
新建的 app 如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)
然后我们来了解下这个app中部分文件的作用:views.py文件中显示的是我们访问页面时的内容
test.py文件是我们用来测试时使用的
admin.py文件代表着管理,Django自带后台管理,所以你无须自行编写后台管理模块。
model.py文件代表着模型,表示数据管理的地方。(扩展:django可以看成一个MVC架构)
model.py文件代表着模型,表示数据管理的地方。(扩展:django可以看成一个MVC架构)
_init_.py文件是用来初始化我们app时用到的