Django Web 开发简介

Web 应用技术

在当前的互联网时代,使用最广泛的Web应用和移动应用,基本都是基于web技术的。

web技术架构主要分为 :客户端实现 和 服务端的实现

客户端和服务点的通讯大都是基于 http协议 (Hypertext Transfer Protocol)

客户端通过http协议发送请求信息给服务端,并从服务端接收响应信息。

我们做web开发,基本可以分为前端(客户端)的开发和后端(服务端)的开发 两种工作。

如果一个工程师,同时可以做前端和后端的开发,通常可以称之为 web开发全栈工程师。

为了方便实战, 本教程的实例中 前端以 Web前端 为例, 不涉及到移动应用前端。


Web前端开发

Web 前端开发的重点是 : 提供用户界面给 用户进行观看和操作。

通常包括:

  • html 文件

    用来显示界面给用户看,我们看到的 各种美观的web网页就是通过解释html实现的。

    当然,要显示出各种美观的界面,并且让用户方便的操作,光是html是不够的,还需要下面这些文档。

  • CSS

    CSS 文档控制界面的显示样式和效果,比如字体、大小、前景色、背景色、间距、一些动画效果等等

  • 资源文件

    包括显示在界面上的 图片、视频等

  • javascript 脚本

    html 文档里面还经常包括一些,javascript 脚本 ( 简称 js )。

    js 和 python 一样是一种编程语言。

    python脚本通过python解释器执行,js脚本通过浏览器内置的 js 引擎执行。

上述的这些文件开发出来后, 最终都是通过 浏览器 来运行,展示出界面来给用户观看和操作的。

上述的文件(html,css,js)没法直接放到浏览器端,通常都是部署在后端服务器上(有些在cdn上)。

当我们浏览一个网站的时候,浏览器先通过http协议获取这些文档,然后读取解释它们的内容,生成对应的界面呈现给我们操作。


在大概十多年前,相对后端开发来说,前端的开发量相对较小。 主要就是设计界面。

前端开发一般没有太多的动态的逻辑控制功能。

最多就是用js 脚本做一些页面动态效果,以及一些数据校验的工作(比如注册时的用户名长度校验等)。

主要的数据处理 和 业务逻辑的实现,甚至界面html 文档的动态生成,都是后端做的事情。

由于 设计上的难度相对较小,前端工程师有时被称为 做界面的,略带一种轻视的意味。

而现在由于 浏览器 内嵌的js 解释器性能飞速提升,可以让大量的代码逻辑在前端实现。

由于前端浏览器运行在每个用户各自的电脑(或者手机)上,如果把一部分业务逻辑的实现放在前端,相当于有成千上万的前端设备分担后端的负荷, 可以大大分担后端的压力。

所以现在的web系统的设计,前端的重要性日益增加。

前端工程师经常需要通过javascript语言,实现数据处理和展示。

以知乎为例, 在知乎上访问自己的主页,要显示出如下的主页内容

default

浏览器访问 知乎的服务器, 服务器不是一下子就生成这样的界面的html给浏览器。

而是浏览器先从服务器获取一个界面的大体的模板 html。

很多界面的数据,比如用户名、背景图片、昵称等等,都是随后再次发送HTTP请求(通常称之为异步请求) 获取的纯数据(通常是json格式),如下图所示

default

然后,浏览器执行前端的js代码,动态的把这些 用户名、背景图片、昵称 等 数据 放到 html模板中,才形成最终我们看到的结果。

这个过程,有时被称之为 动态渲染

有的系统,前端也实现部分业务逻辑功能。 比如用户权限检查、用户显示数据过滤等。

有的架构师喜欢把大量的业务逻辑转移到前端,加上界面渲染的功能也完全由前端实现。

这样 后端就做单纯的数据存储 和 分析工作。

所以现在前端工程师, 不仅设计实现 用户界面,还要能使用js 语言 实现 数据获取、分析处理 和 业务相关的逻辑。


Web 后端 开发

刚才说了前端开发的工作,那么后端开发主要做什么?

简单说,后端要开发 服务进程 响应前端http请求,返回相应的数据 ,包括

  • 静态资源

    比如html、css、js、图片、视频,这些一般是前端开发的内容,存放在后端的。

    当然现在云服务日趋成熟,这些静态资源很多都存放在云服务厂商的云服务器上了。

    不需要我们后端开发人员费心提供高性能的服务了。

  • 业务服务请求

    包括数据的 查看、增加、删除、修改

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

    加上 如果设计用户量非常大,需要响应 万级以上 的客户同时访问, 就需要精心的设计架构了。

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

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

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

      这个通常应该是架构师设计的, 但是往往这工作也会落到后端工程师头上。

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

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

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

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

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


使用 Django 开发后端服务

本教程重点放在后端服务的实现, 包括 API 接口设计 和 数据库设计和操作。

我们 使用 Python Web 开发 最流行的应用框架 Django 帮我们高效的实现 后端。

Django是一个 基于Python语言的 开源免费的 Web应用 开发框架。

它帮我们解决了Web应用开发的 常见问题。

使用它,我们可以把精力放在应用本身的逻辑处理上,而不用操心Web服务的基本问题。这样可以大大提高我们的开发效率。

这是Django的 官方网站 https://www.djangoproject.com

我们的Django 教程 以一个实际的案例 来 讲解如何使用Django 开发Web应用。

我们的案例是 实现一个 公司 的 销售管理系统。

要查看具体的系统需求 请点击这里

下一页