WEB开发和WSGI--Django播客系统(一)

2024-08-24 13:38

本文主要是介绍WEB开发和WSGI--Django播客系统(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DJango项目-1.WEB开发和WSGI

文章目录

  • DJango项目-1.WEB开发和WSGI
    • HTTP协议
      • 安装httpd
      • 无状态,有链接和短连接
      • 协议
      • URL组成
      • HTTP消息
      • Cookie技术
      • Session技术
    • WSGI
    • WSGI APP应用程序端
      • 服务器端

wsgi_001

  • CS即客户端、服务器编程。
    1. 客户端、服务端之间需要使用Socket,约定协议、版本(往往使用的协议是TCP或者UDP),指定地址和端口,就可以通信了。
    2. 客户端、服务端传输数据,数据可以有一定的格式,双方必须先约定好。

001

  • BS编程,即Browser、Server开发
    1. Brower浏览器,一种特殊的客户端,支持HTTP(s)协议,能够通过URL向服务端发起请求,等待服务端返回HTML等数据,并在浏览器内可视化展示的程序。
    2. Server,支持HTTP(s)协议,能够接受众多客户端发起的HTTP协议请求,经过处理,将HTML等数据返回给浏览器。
  • 本质上来说,BS是一种特殊的CS,即客户端必须是一种支持HTTP协议且能解析并渲染HTML的软件,服务端必须能够接收多客户端HTTP访问的服务器软件。
  • HTTP协议底层基于TCP协议实现。
  1. BS开发分为端开发
    • 客户端开发:或称前端开发。HTML、CSS、JavaScript等。
    • 服务端开发:Python有WSGI、Django、Flask、Tornado等。

HTTP协议

安装httpd

  • 可以安装httpd或nginx等服务端服务程序,通过浏览器访问,观察http协议

无状态,有链接和短连接

  • 无状态:指的是服务器无法知道2次请求之间的联系,即使是前后2次同一个浏览器也没有任何数据判断出时同一个浏览器的请求。后来可以通过cookie、session来判断。
  • 有链接:是因为它基于TCP协议,是面向链接的,需要3次握手、4次挥手。
  • 短连接:Http 1.1之前,都是一个请求一个连接,而TCP的链接创建销毁成本高,对服务器有很大影响。所以,自Http 1.1开始,支持keep-alive,默认也开启,一个连接打开后,会保持一段时间(可设置),浏览器再访问该服务器就使用这个TCP链接,减轻了服务器压力,提高了效率。

协议

Http协议是无状态协议。
同一个客户端的两次请求之间没有任何关系,从服务器端角度来说,它不知道这两个请求来自同一个客户端。

URL组成

  • URL可以说就是地址,uniform resource locator统一资源定位符,每一个连接指向一个资源供客户端访问。schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]

  • 例如,通过http://www.xdd.com/pathon/index.html?id=5&name=python访问静态资源时,通过上面这个URL访问的是网站的某路径下的index.html文件,而这个文件对应磁盘上的真实的文件。就会从磁盘上读取这个文件,并把文件的内容发回浏览器端。

  1. scheme模式、协议
    • http、ftp、https、mailto等等。
  2. host:port
    • www.xdd.com:80,80端口是默认端口可以不写,域名会使用DNS解析,域名会解析成IP才能使用。实际上会对解析返回的IP的TCP的80端口发起访问。
  3. /path/to/resource
    • path,指向资源的路径。
  4. ?key1=value1&key2=value2
    • query string,查询字符串,问号用来和路径分开,后面key=value形式,且使用&符号分割。

HTTP消息

  • 消息分为Request、Response

    1. Request:浏览器向服务器发起的请求
    2. Response:服务器对客户端请求的响应
      • 请求报文由Header消息报头、Body消息正文组成(可选)
        • 请求报文第一行称为请求行
      • 响应报文由Header消息报头、Body消息正文组成(可选)
        • 响应报头第一行称为状态行
      • 每一次使用回车和换行符作为结尾
      • 如果有Body部分,Header、Body之间留一行空行
  • 请求报文

    1. 请求消息行:请求放Method请求路径协议版本CRLF
      wsgi_003
    2. 请求方法Method
    方法说明
    GET请求获取URL对应的资源
    POST请求数据至服务端
    HEAD和GET类似,不过不返回响应报文的正文
  • 常见的消息传递方式

    1. GET方法使用Query String。例如:http://www.xdd.com/pathon/index.html?id=5&name=python&name=linux通过查询字符串在URL中传递参数,而URL在请求报文的头部第一行

    2. POST方法提交数据

      请求消息如下
      POST /xxx/yyy?id=5&name=magedu HTTP/1.1
      HOST: 127.0.0.1:9999
      content-length: 26
      content-type: application/x-www-form-urlencodedage=5&weight=80&height=170
      

      请求时提交的数据是在请求报文的正文Body部分。

    3. URL中本身就包含信息
      http://www.xdd.com/python/student/001

  • 响应报文

    1. 响应消息行:协议版本 状态码 消息描述CRLF
      004
  • status code状态码

    1. 状态码在响应头第一行
      • 1xx 提示信息,表示请求已被成功接收,继续处理
      • 2xx 表示正常响应
        • 200 表示返回了网页内容,即请求成功
      • 3xx 重定向
        • 301 页面永久性移走,永久

这篇关于WEB开发和WSGI--Django播客系统(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102631

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来