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自带的应用,在这里将创建的应用在这里面加载进来
      在这里插入图片描述
      实例:执行 python manage.py startapp app1,此时目录如下:,同时在配置文件中注册
      在这里插入图片描述

2、分布式路由

  • Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由配置文件的可以做请求的分发(分布式请求处理),具体可以有各自的应用来处理
  • 为使用分布式路由,每个应用中需要手动去创建一个urls.py文件
  • 配置分布式路由
    *步骤一: 主路由中调用include函数
    • 语法:include('app名字.url模块名’)
    • 作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理
    • 如下,在主路由中配置指向app1的分布式路由
      在这里插入图片描述
    • 步骤二:应用中的路由配置urls.py
    • 需要手动去创建
    • 内容结构与主路由配置文件几乎完全一样
    • 如下:
      在这里插入图片描述
      此时在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项目中,而且分布式路由也已经生效 了
在这里插入图片描述

3、应用下的模板

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

实例:
app1下的路由设计为:
在这里插入图片描述
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/,结果如下:
在这里插入图片描述
这样可以实现在应用中继续创建templates文件夹,但是又一个问题就是要保证模板文件名必须独一无二才能不会出错,这就比较麻烦了,所以这块一般推荐的做法就是在应用下的templates目录下继续创建一个和应用名一样的文件夹,然后在视图函数中通过应用的目录加上模板文件名,这样就很容易独一无二了,如下图
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
本门课程是带大家进入微服务领域入门的课程,很适合新手小白学习的课程。1: 什么是rpc?RPC(Remote Procedure Call)是函数对函数的远程调用,传输协议tcp,http,主要是基于xml,json序列化协议(这里的序列化协议是对数据编解码的方式),项目中我们真正用到的是grpc,grpc是一个框架,基于http2.0的长链接,性能有所改进,重要的是grpc用的是Google开源的protobuf序列化协议,它比json,xml性能更快,在压缩数据方面也更小。总之我们选择grpc最主要的有两点:1:支持跨语言开发(如python,golang,java)2:  grpc首先是一个框架,封装rpc,让程序员只关注代码逻辑即可 2: 为什么用grpc,而不用flask,django,tornado,即http协议?1:http的调用是根据url的(即restful),它跟rpc的调用最大的区别就是这里,rpc的调用,你就像调用一个本地函数一样简单,而且微服务,分布式也是从rpc开始的,学好rpc对以后做好分布式会更有帮助,其实go语言和python语言里都有rpc(如xmlrpc,jsonrpc,zerorpc),我们之所以学习go语言里的rpc是因为go语言的rpc相对更加灵活,go语言本身也支持高并发,这一点对于分布式来说更好。2:其次http协议,用过flask框架的人都知道,请求一次数据后就断开,而grpc基于http2.0,它不但可以保持长链接,传输效率也更高,使用方面,因为http2.0相当于tcp一样使用,现在很多大厂也都开始用http2.0了。http2.0相比http的优势很明显,头部压缩,分流,针对tcp的多路复用。所以基于http2.0的grpc无论从生态和性能方面都更好。 这张图是一个gRPC相关的架构图,同学们可以通过这张图了解gRPC在项目中的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redrose2100

您的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值