0
点赞
收藏
分享

微信扫一扫

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)-应用及分布式路由_python

  • 实例:执行 python manage.py startapp app1,此时目录如下:,同时在配置文件中注册
  • Django(14)-应用及分布式路由_配置文件_02

2、分布式路由

  • Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件的可以做请求的分发(分布式请求处理),具体可以有各自的应用来处理
  • 为使用分布式路由,每个应用中需要手动去创建一个urls.py文件
  • 配置分布式路由
    *步骤一: 主路由中调用include函数
  • 语法:include('app名字.url模块名’)
  • 作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理
  • 如下,在主路由中配置指向app1的分布式路由
  • Django(14)-应用及分布式路由_配置文件_03

  • 步骤二:应用中的路由配置urls.py
  • 需要手动去创建
  • 内容结构与主路由配置文件几乎完全一样
  • 如下:
  • Django(14)-应用及分布式路由_配置文件_04

  • 此时在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)-应用及分布式路由_html_05

3、应用下的模板

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

实例:

app1下的路由设计为:

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


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)-应用及分布式路由_python_07


这样可以实现在应用中继续创建templates文件夹,但是又一个问题就是要保证模板文件名必须独一无二才能不会出错,这就比较麻烦了,所以这块一般推荐的做法就是在应用下的templates目录下继续创建一个和应用名一样的文件夹,然后在视图函数中通过应用的目录加上模板文件名,这样就很容易独一无二了,如下图

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


举报

相关推荐

0 条评论