9.Django应用及分布式路由

目录

1  应用

1.1  创建应用文件夹

1.2  配置应用文件夹

2  分布式路由

2.1  在应用中创建urls.py

2.2  主路由中调用include函数

3  在应用中使用模版


1  应用

django中的应用相当于flask中的蓝图,一个应用中可以有自己的路由,视图,模版,模型,但是一个应用不能独立运行,使用应用的目的是方便继承

1.1  创建应用文件夹

使用 python manage.py startapp [应用名称] 创建应用文件夹,我们现在创建一个名为login的应用

9.Django应用及分布式路由_第1张图片

创建之后我们在项目路径下就可以看到这个文件夹

9.Django应用及分布式路由_第2张图片

  • migrations放置模型层(数据库)的内容
  • __init__.py 初始化文件,只要是包都会有
  • admin.py 与管理后台相关
  • app.py 应用中的相关配置
  • models.py 模型层的入口
  • test.py 用来测试应用的
  • views.py 放视图的

1.2  配置应用文件夹

在setting.py中有一个INSTALLED_APPS,上面的django.这些都是创建项目时就有的,我们刚刚创建了应用login,我们就把login写在这里

9.Django应用及分布式路由_第3张图片

2  分布式路由

之前我们都是将所有路由都写在urls.py这个文件中,如果要改会麻烦一点,现在我们使用分布式路由,不在urls.py处理具体路由,只做路由的分发,就像下面这样

9.Django应用及分布式路由_第4张图片

我们下面开始配置

2.1  在应用中创建urls.py

我们首先在应用文件夹下创建一个urls.py,之后填写内容,内容与主路由相似,为了后面测试我们加上一个路由hello

9.Django应用及分布式路由_第5张图片

并且写一个相对应的视图

9.Django应用及分布式路由_第6张图片

  • 注意这里改的是login/views.py

2.2  主路由中调用include函数

我们在主路由中这样写

9.Django应用及分布式路由_第7张图片

前面的 login/ 是路由的名字,这个能自定,后面的 login. 是应用的名字,要与之前创建的一致

现在我们访问一下

9.Django应用及分布式路由_第8张图片

3  在应用中使用模版

如果要使用应用中的模版文件,我们要保证setting.py中的TEMPLATES的APP_DIRS为True

9.Django应用及分布式路由_第9张图片

  • 默认就是True

之后我们在应用文件夹下创建templates文件夹,然后创建一个html文件,命名为this_is_a_template

9.Django应用及分布式路由_第10张图片

我们在项目路径下的templates中也有相同名称的模版,当两个模版名称相同时,会优先使用项目路径下的模版

9.Django应用及分布式路由_第11张图片

这两个我写了不同的内容

9.Django应用及分布式路由_第12张图片

我们现在在应用中创建一个视图

9.Django应用及分布式路由_第13张图片

然后创建一个路由

9.Django应用及分布式路由_第14张图片

访问一下,发现使用的是我们项目路径下的模版,说明项目路径模版下的优先级更高

9.Django应用及分布式路由_第15张图片

如果我们想用应用中的模版,我们就将其改个名字,然后将视图中的名称也换掉

9.Django应用及分布式路由_第16张图片

这样就会使用应用下的模版了

除了项目路径与应用路径下模版的顺序,如果有多个应用,应用之间的模版也有读取顺序

9.Django应用及分布式路由_第17张图片

比如我又写了一个应用register,那么它就会先读login的模版,再读register的模版,哪个应用再上面哪个优先级高

一定注意不是优先应用自身的模版,所以模版最好不要重名

你可能感兴趣的:(Django笔记,django)