1、什么是应用
一个项目中又可以细分为多个应用(application,简写app)。在Django中,将完成某个或某几个功能的集合称为一个应用。所以一个功能比较多的网站常常是由多个应用组成的。在每个django项目中可以包含多个app,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。所有的app共享项目资源。
通常会新建一个apps文件夹,专门用来存储各种应用。在templates下,为每个应用建立文件夹,专门用来存储各个应用下的模板文件。
2、新建应用
python manage.py startapp 应用名称
在刚刚新建的项目下,新建一个叫cmdb的应用。
在pycharm下方的terminal终端中,先切换到项目所在的路径(即项目下manage.py文件所在的路径),输入命令:
python manage.py startapp cmdb
这样就创建了一个叫做cmdb
的app
,django
自动生成“cmdb
”文件夹。如下图所示:
各个文件说明如下:
(1)migrations
:这是一个目录,用于存储应用的数据库表结构的指令,通过这些指令可以修改和创建数据库,从而实现models.py模型类和数据库表之间迁移。
(2)admin.py
:自定义Django管理工具,比如设置在管理界面能够管理的项目,或者通过重新自定义与系统管理有关的类对象,向管理功能增加新的内容。
(3)apps.py
:Django1.10之后增加的,通常包含对应用的配置,比如为管理功能提供一个合适的应用名称。
(4)models.py
:这是应用的数据模型,每个Django应用都应当有一个models.py文件,虽然该文件可以为空,但不宜删除。
(5)tests.py
:在这个文件中可以编写测试文档来测试所创建的应用。
(6)views.py
:这是一个重要的文件,用于保存响应各种请求的函数或者类。如果编写的是函数,则基于函数的视图;如果编写的是类,则称为基于类的视图。views.py就是保存函数或者类的视图文件。当然,也可以用其他的文件名称,只不过在引入相应函数或者类时,要注意名称的正确性,views.py是我们习惯使用的文件名称。
在项目下新建一个apps
文件夹,把应用cmdb
拖放至apps
文件夹内。如下图所示:
3、新建模板
在项目templates
文件夹下新建一个以应用名命名的文件夹cmdb
,在其下创建一个login.html
页面,如下图所示:
login.html
页面如下:
<body>
<h1>登录页面</h1>
</body>
4、配置总路由
如果请求的是应用下的资源,通过总路由将请求导到子路由。
5、新建应用子路由,并配置子路由
目标:输入http://127.0.0.1:8000/cmdb/login
时,返回login.html
页面。
在应用cmdb
下新建子路由urls.py
文件,配置路由,如下图所示:
6、定义视图函数
7、测试
启动服务,输入http://127.0.0.1:8000/cmdb/login/
,效果如下:
8、小结
(1)Django版本之间有区别,选择时注意版本,建议选择LTS。
(2)创建项目前要规划项目的存储位置,推荐使用pycharm创建项目、启动项目。
一个Django项目中通常包含多个应用,通常将创建的应用放在专门新建的apps文件夹。创建应用:python manage.py startapp 应用名称。
(3)每个应用的模板通常也建议放在templates下对应的应用名文件夹下。
(4)在总路由文件中,通常配置路由导到每个应用下的子路由中,在每个子路由中配置资源的具体路由。
(5)在定义视图函数时,request参数必须有,名字是类似self的默认规则,可以改。它封装了用户请求的所有内容。返回时,必须返回HttpRespone的对象。当想返回一个html页面时,可以使用render方法来渲染,第一个参数是request,第二个参数是要返回的页面。Render是django提供的方法和规则。