Django(14)-应用及分布式路由

Django(1)-简介

Django(2)-创建项目及默认项目目录结构介绍

Django(3)-配置文件详解

Django(4)-URL和视图

Django(5)-路由配置实例

Django(6)-请求及响应

Django(7)-Get请求和Post请求

Django(8)-设计模式

Django(9)-模板层简介与入门实例

Django(10)-模板层的变量和标签

Django(11)-模板层的过滤器和继承

Django(12)-url反向解析

Django(13)-静态文件

Django(14)-应用及分布式路由

Django(15)-模型层及ORM介绍

Django(16)-ORM基础字段及选项

Django(17)-ORM创建数据

Django(18)-ORM常用的查询函数详解及实例演示

Django(19)-ORM条件查询

Django(20)-ORM更新操作及实例演示

Django(21)-ORM删除操作及实例演示

Django(22)-ORM中F对象和Q对象

Django(23)-ORM聚合查询和原生数据库操作

Django(24)-admin后台管理设置步骤以及常见样式详解

Django实战技巧(1)-开发测试生产环境配置切换处理技巧

Django实战技巧(2)-git代码仓分支管理技巧

Django实战技巧(3)-项目配置

1、应用

  • 应用在Django项目中是一个独立的业务模块,可以包含自己的路由,视图,模板,模型
  • 创建应用:
    • 在manage.py所在的目录下,执行命令:
    python3 manage.py startapp app_name
    
    • 在setting.py的INSTALLED_APPS列表中配置安装此应用,如下是django自带的应用,在这里将创建的应用在这里面加载进来
      Django(14)-应用及分布式路由_第1张图片
      实例:执行 python manage.py startapp app1,此时目录如下:,同时在配置文件中注册
      Django(14)-应用及分布式路由_第2张图片

2、分布式路由

  • Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件的可以做请求的分发(分布式请求处理),具体可以有各自的应用来处理
  • 为使用分布式路由,每个应用中需要手动去创建一个urls.py文件
  • 配置分布式路由
    *步骤一: 主路由中调用include函数
    • 语法:include('app名字.url模块名’)
    • 作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理
    • 如下,在主路由中配置指向app1的分布式路由
      Django(14)-应用及分布式路由_第3张图片
    • 步骤二:应用中的路由配置urls.py
    • 需要手动去创建
    • 内容结构与主路由配置文件几乎完全一样
    • 如下:
      Django(14)-应用及分布式路由_第4张图片
      此时在app1应用下的视图文件编写视图函数:
from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.

def index(request):
    return HttpResponse("app1的首页")

在浏览器打开:http://127.0.0.1:8080/app1/index/,结果如下:可见,此时app1已经成功注册到mysite项目中,而且分布式路由也已经生效 了
Django(14)-应用及分布式路由_第5张图片

3、应用下的模板

  • 应用内部可以设置模板目录,步骤如下:
    • 应用下需要手动创建templates文件夹
    • setting.py中开启应用模板功能,TEMPLATE配置项中的‘APP_DIRS‘的值设置为True即可
  • 应用下的templates和外层templates都存在是,django的查找原则如下:
    • 优先查找外层templates目录下的模板
    • 按INSTALLED_APPS配置下的应用顺序逐层查找

实例:
app1下的路由设计为:
Django(14)-应用及分布式路由_第6张图片
app1下的视图函数如下:

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.

def index(request):
    return render(request,"app1_index.html")

在app1下创建templates,然后创建app1_index.html文件,内容如下:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我是app1的首页title>
head>
<body>
<p>我是app1的首页p>
body>
html>

在浏览器中打开 http://127.0.0.1:8080/app1/index/,结果如下:
Django(14)-应用及分布式路由_第7张图片
这样可以实现在应用中继续创建templates文件夹,但是又一个问题就是要保证模板文件名必须独一无二才能不会出错,这就比较麻烦了,所以这块一般推荐的做法就是在应用下的templates目录下继续创建一个和应用名一样的文件夹,然后在视图函数中通过应用的目录加上模板文件名,这样就很容易独一无二了,如下图
Django(14)-应用及分布式路由_第8张图片

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