Django 4.0

本文详细介绍了Django 4.0的使用,从安装部署、MVT模型到请求响应流程,涵盖视图、模板、路由、ORM操作和关联关系。讲解了如何创建项目、应用,以及Django的请求头、响应体和HTTP状态码,还涉及了模板语法、过滤器、模板控制语句和自定义过滤器。同时,深入探讨了ORM的概念、模型字段属性、数据库迁移和MySQL配置,展示了如何使用ORM进行数据操作。文章适合Django初学者和进阶开发者,提供了丰富的实践案例。
摘要由CSDN通过智能技术生成

Web 后端 开发

后端程序主要工作就是 数据管理

通常 包括数据的 存储 (包括 增加、删除、修改)和 查询

这听起来似乎很简单,其实有的业务流程非常复杂 (想想淘宝购物),有时一个购买操作,要涉及到很多逻辑处理。

而且,如果设计用户量非常大,需要响应 百万级以上 的客户访问, 就需要精心的设计架构,做好多服务分布式、集群式的处理大量的用户请求。

img

通常,后端的开发涉及到:

  • 静态文件服务方案

    前端开发出来的HTMLcssjs文件存储在什么地方,使用什么的服务提供给前端浏览器访问。

    通常一个比较大型的网站, 静态文件往往会使用单独的服务器专门提供服务。

    一部分特别消耗带宽的数据(比如视频、图片)会使用第三方的云服务厂商(比如阿里云的cdnoss服务)。

  • API 接口设计, 就是 定义 前端和后端交互接口规范。

    目前流行的是REST API 风格的接口,但是需要我们设计具体的API请求和响应消息的具体内容。

    这个通常应该是架构师设计的, 但是往往这工作经常会落到后端工程师头上。实际上 很多公司里面,系统架构师 也会做后端开发的工作。

  • 数据库存储方案,比如:选择什么样的数据库,包括 关系型和非关系型的数据库。

  • 数据库表结构设计, 要能合理、高效的存储业务数据,这样才能 高效查询、修改各种关联性的数据。

  • 为了提高性能, 需要决定使用怎样的 缓存服务 和 异步任务服务

  • 还有 其它种种特殊的考虑,比如 要熟悉目前日益流行的云存储技术,将有的数据,如图片,视频等 合理存储在云端

  • 有的系统还需要有 大数据分析的需求 要后端高效实现。

一、Django相关介绍

1、什么是Django

web框架,指为解决一个开放性的问题而设计的具有一定约束性的架构。

一堆类库文件 有组织

是由python编写的,采用MTV模型。

Django官网:https://www.djangoproject.com/

框架的好处:

  1. 快速开发

  2. 简单易用

其他常见web框架:flask web.py Tornado

2、应用场景

快速搭建web应用 提供数据接口(API

CMDB

二、安装部署应用

准备工作:

1、安装python环境 python3以上

image-20220417144728630

2、安装开发工具IDE Pycharm

image-20220417144807420

1、安装Django

1.1、版本的选择


LTS:是长版本支持,一般我们选择都会选择LTS版本的,因为官方支持时间较长。

1.2、安装并创建项目

pip install django

跳转到目录 创建应用 目录根据实际情况选择

此处django-admin要设置环境变量

找到django-admin.exe的位置,加入系统环境变量

如系统中有多个python版本,选择默认python位置

C:\Users\Mocking\AppData\Local\Programs\Python\Python38\Scripts\

django-admin startproject mydjango 

image-20220417145237210

2、目录结构

img

manage.py django项目里面的工具,通过它可以调用django shell和数据库等。

img

settings.py 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

urls.py 负责把URL模式映射到应用程序。

3、创建新应用

使用manage.py文件,创建应用。

python manage.py startapp app01

4、启动Django项目

python manage.py runserver

image-20220417145806901

5、使用PyCharm打开项目

image-20220417150127612

img

image-20220417150154371

三、Django使用原理

1、MVT模型

  • M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
  • V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
  • T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

2、请求流程

img

四、Django的请求和响应

1、快速实现

①定义路由 urls.py

②定义视图函数 views.py

③模型数据调用 创建表

④包含模板 加载模板 (html····)

1.1、路由定义

image-20220417150553461

image-20220417150503200

1.2、编写视图

img

1.3、浏览器访问

img

到这里,就完成了一个页面请求。

2、请求

https://docs.djangoproject.com/en/4.0/ref/request-response/

客户端请求服务器端携带的信息

属性:

HttpRequest.scheme:请求的方式,即http或者是https

HttpRequest.body:请求的主体,返回的是一个字符串

HttpRequest.path:请求的路径,这里的路径是指相对路径,也就是说一个登陆后台页面的请求:http://127.0.0.1:8000/admin 的路径是 /admin

HttpRequest.method:请求方式 POST/GET

HttpRequest.encoding:请求提交的数据的编码方式

HttpRequest.GET:获取get方式表单中或url提交的数据

HttpRequest.POST:获取post方式表单中或url提交的数据

HttpRequest.META:获取的是一个标准的python字典。它包含了所有的HTTP请求信息

方法:

HttpRequest.get_host():请求的地址

HttpRequest.get_port():请求的端口

HttpRequest.get_full_path():请求的完整路径,包括get参数

下面是2个http请求消息的示例

GET /mgr/login.html HTTP/1.1
Host: www.sysmedia.com
User-Agent: Mozilla/6.0 (compatible; MSIE5.01; Windows NT)
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
POST /api/medicine HTTP/1.1
Host: www.sysmedia.com
User-Agent: Mozilla/6.0 (compatible; MSIE5.01; Windows NT)
Content-Type: application/x-www-form-urlencoded
Content-Length: 51
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate

name=qingmeisu&sn=099877883837&desc=qingmeisuyaopin

http请求消息由下面几个部分组成

请求行 request line

是http请求的第一行的内容,表示要操作什么资源,使用的 http协议版本是什么。

里面包含了3部分信息: 请求的方法,操作资源的地址, 协议的版本号

例如

GET /mgr/login.html HTTP/1.1

表示要 获取 资源, 资源的 地址 /mgr/login.html , 使用的 协议HTTP/1.1

POST /api/medicine HTTP/1.1

表示 添加 资源信息, 添加资源 到 地址 /api/medicine , 使用的 协议HTTP/1.1

GET、POST是请求的方法,表示这个动作的大体目的,是获取信息,还是提交信息,还是修改信息等等

常见的HTTP 请求方法包括:

  • GET

    从服务器 获取 资源信息,这是一种最常见的请求。

    比如 要 从服务器 获取 网页资源、获取图片资源、获取用户信息数据等等。

  • POST,请求方法就应该是

    添加 资源信息 到 服务器进行处理(例如提交表单或者上传文件)。

    比如 要 添加用户信息、上传图片数据 到服务器 等等

  • PUT

    请求服务器 更新 资源信息 。

    比如 要 更新 用户姓名、地址 等等

  • DELETE

    请求服务器 删除 资源信息 。

    比如 要 删除 某个用户、某个资源 等等

请求头 request headers

请求头是http请求行下面的 的内容,里面存放 一些 信息。

比如,请求发送的服务端域名是什么, 希望接收的响应消息使用什么语言,请求消息体的长度等等。

通常请求头 都有好多个,一个请求头 占据一行

单个请求头的 格式是: 名字: 值

HTTP协议规定了一些标准的请求头,点击查看MDN的描述

开发者,也可以在HTTP消息中 添加自己定义的请求头

消息体 message body

请求的url、请求头中 可以存放 一些数据信息, 但是 有些数据信息,往往需要 存放在消息体中。

特别是 POST、PUT等请求,添加、修改的数据信息 通常都是 存放在 请求消息体 中的。

如果 HTTP 请求 有 消息体, 协议规定 需要在 消息头和消息体 之间 插入一个空行, 隔开 它们。

请求消息体中保存了要提交给服务端的数据信息。

比如:客户端要上传一个文件给服务端,就可以通过HTTP请求发送文件数据给服务端。

文件的数据 就应该在请求的消息体中。

再比如:上面示例中 客户端要添加资源,资源的名称、编码、描述,就存放在请求消息体中。

WEB API 请求消息体 通常是某种格式的文本,常见的有

  • Json
  • Xml
  • www-form-urlencoded
    image-20220417150941101

image-20220417151047744

image-20220417151115464

3、响应

服务器端返回给客户端的信息

属性:

HttpResponse.content:响应内容

HttpResponse.status_code:响应状态码

HttpResponse.content_type:响应类型(默认是:text/html

下面是1个http响应消息的示例

HTTP/1.1 200 OK
Date: Thu, 19 Sep 2019 08:08:27 GMT
Server: WSGIServer/0.2 CPython/3.7.3
Content-Type: application/json
Content-Length: 37
X-Frame-Options: SAMEORIGIN
Vary: Cookie

{
   "ret": 0, "retlist": [], "total": 0}

HTTP响应消息包含如下几个部分

状态行 status line

状态行在第一行,包含3个部分:

  • 协议版本

    上面的示例中,就是 HTTP/1.1

  • 状态码

    上面的示例中,就是 200

  • 描述状态的短语

    上面的示例中,就是 OK

我们重点来看一下状态码,它表示了 服务端对客户端请求的处理结果 。

状态码用3位的数字来表示,第一位 的 数字代表 处理结果的 大体类型,常见的有如下几种:

• 2xx

通常 表示请求消息 没有问题,而且 服务器 也正确处理了

最常见的就是 200

• 3xx

这是重定向响应,常见的值是 301,302, 表示客户端的这个请求的url地址已经改变了, 需要 客户端 重新发起一个 请求 到另外的一个url。

• 4xx

表示客户端请求有错误, 常见的值有:

400 Bad Request 表示客户端请求不符合接口要求,比如格式完全错误

401 Unauthorized 表示客户端需要先认证才能发送次请求

403 Forbidden 表示客

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Django是一个流行的Web应用程序框架,它提供了一个高度复用的开发模式,使得开发者可以更加专注于业务逻辑,而不是底层实现。随着Django 4.0的发布,官方中文文档也越来越完善。 Django 4.0的中文文档提供了全面的教程、参考和指南,涵盖了Django的核心概念、API和开发实践。该文档简洁明了、易于理解,帮助开发者快速入门,并且可以帮助更有经验的开发者深入了解Django的内部工作原理。 除了基本概念和API文档,该文档还提供了一些高级主题,如数据库、模板引擎、表单验证、安全性、缓存等。此外,开发者可以从文档中了解到Django的最佳实践,如如何设计良好的模型、如何优化性能、如何进行测试等。 总之,Django 4.0的中文文档是一个非常有价值的资源,无论是对新手还是具有丰富经验的开发者都很有帮助。如果你有兴趣学习Django,无论是作为个人或公司项目的基础,还是为了求职,强烈建议你参考该文档,你一定会从中受益匪浅。 ### 回答2: Django是一个开源的Web应用框架,许多开发人员和团队使用Django来开发高质量的Web应用程序。虽然Django的官方文档是英文的,但是有许多中文热心人制作了Django的中文文档。 Django4.0Django的最新版本,中文文档也在不断更新中。Django4.0中文文档将Django的各种功能和特性作了详细的说明,并提供了许多实例和代码片段供开发人员参考和学习。 中文文档内容包括Django的开发环境搭建、模型设计、视图和模板的使用、表单和验证、静态文件、安全、中间件等等。中文文档还提供了Django的API文档和源码分析。 中文文档的制作过程是很艰苦的,制作者们为了将Django文档翻译的精准、易懂,不断阅读修改,受益的是国内众多Django爱好者。Django中文文档的出现,也为更多的开发人员提供了一个方便而全面的学习参考资料。 ### 回答3: Django 4.0 是一个非常强大的 Python Web 框架, 它的中文文档帮助用户更好地理解和使用该框架。中文文档网站提供了丰富的内容和指导,包括安装、开发流程、模型、视图、表单、模板、中间件等方面的内容,帮助用户更好地了解整个框架,并迅速上手使用。 中文文档以易懂的语言,详细介绍了 Django 4.0 的各个细节,包括如何创建项目、如何实现认证、如何使用 ORM 实现数据库的操作等,同时提供了许多实际的例子,让用户更好地理解框架的使用方式。 在文档中,透过全面的教程和案例,用户可以学习到如何搭建自己的 Web 应用程序,并且在开发的过程中,学会使用 Django 4.0 提供的各种强大功能,从而提高开发的效率和质量。 总的来说,Django 4.0 的中文文档是非常全面、详尽的,对于初学者来说非常友好,对于有经验的用户来说也提供了许多高级的用例和方法,这一切都为用户的学习和使用提供了巨大的帮助。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值