目录
1 应用
django中的应用相当于flask中的蓝图,一个应用中可以有自己的路由,视图,模版,模型,但是一个应用不能独立运行,使用应用的目的是方便继承
1.1 创建应用文件夹
使用 python manage.py startapp [应用名称] 创建应用文件夹,我们现在创建一个名为login的应用
创建之后我们在项目路径下就可以看到这个文件夹
- migrations放置模型层(数据库)的内容
- __init__.py 初始化文件,只要是包都会有
- admin.py 与管理后台相关
- app.py 应用中的相关配置
- models.py 模型层的入口
- test.py 用来测试应用的
- views.py 放视图的
1.2 配置应用文件夹
在setting.py中有一个INSTALLED_APPS,上面的django.这些都是创建项目时就有的,我们刚刚创建了应用login,我们就把login写在这里
2 分布式路由
之前我们都是将所有路由都写在urls.py这个文件中,如果要改会麻烦一点,现在我们使用分布式路由,不在urls.py处理具体路由,只做路由的分发,就像下面这样
我们下面开始配置
2.1 在应用中创建urls.py
我们首先在应用文件夹下创建一个urls.py,之后填写内容,内容与主路由相似,为了后面测试我们加上一个路由hello
并且写一个相对应的视图
- 注意这里改的是login/views.py
2.2 主路由中调用include函数
我们在主路由中这样写
前面的 login/ 是路由的名字,这个能自定,后面的 login. 是应用的名字,要与之前创建的一致
现在我们访问一下
3 在应用中使用模版
如果要使用应用中的模版文件,我们要保证setting.py中的TEMPLATES的APP_DIRS为True
- 默认就是True
之后我们在应用文件夹下创建templates文件夹,然后创建一个html文件,命名为this_is_a_template
我们在项目路径下的templates中也有相同名称的模版,当两个模版名称相同时,会优先使用项目路径下的模版
这两个我写了不同的内容
我们现在在应用中创建一个视图
然后创建一个路由
访问一下,发现使用的是我们项目路径下的模版,说明项目路径模版下的优先级更高
如果我们想用应用中的模版,我们就将其改个名字,然后将视图中的名称也换掉
这样就会使用应用下的模版了
除了项目路径与应用路径下模版的顺序,如果有多个应用,应用之间的模版也有读取顺序
比如我又写了一个应用register,那么它就会先读login的模版,再读register的模版,哪个应用再上面哪个优先级高
一定注意不是优先应用自身的模版,所以模版最好不要重名