网站前后端开发概念讲解

💡 本文对以下场景有所帮助

  • 网站搭建的技术介绍

背景介绍

最近要开发一个多角色的订单管理项目,借这个机会重新回顾下网站的前后端搭建流程,用文字记录一下,以后捡起来速度也快一点,不像现在手忙脚乱啥都给忘了。

为了方便大家理解,我将开发主体分为以下四个模块:前端、后端、接口和数据库。接下来的操作步骤并不严格按照以上顺序,而是根据实际的流程来进行开发,大家心里有个模块划分的概念就行。

步骤

1. 前端

其实就是用户界面,也就是用户能够看到或操作的界面。因此,按照这个角度来理解的话,它负责的功能不外乎就是信息展示和用户交互。

而又因为我们希望这个系统更加智能,那信息展示就需要具备实时性,我们就需要引入请求和相应模块:我们需要通过用户的某些行为(如点击按钮),来触发一个发到后端的请求(如查询当前在职人数),进而利用请求所返回的响应,刷新当前的界面,让用户能够看到最新的信息(如此时此刻的当前在此人数)。

通常情况下,每一个用户相当于一个前端,而他们都需要将请求发到后端,可以近似理解成这是一个一对多的模型,后端的负荷较大。因此,为了减少后端的计算量,或者更好地分割业务代码和输入验证,我们通常会把一些不需要设计业务数据的逻辑操作前移到前端,如两次输入的密码是否一致,邮箱格式是否正确等。这些能力如今已经很好地被集成到诸多框架中。

2. 后端

处理业务逻辑的模块。后端接收到前端发来的请求后,会结合业务逻辑和系统数据,返回适当的响应给前端。

后端的代码就比较像我们日常写的代码了,就是该干嘛干嘛,业务让怎么做就怎么做。不过呢,有以下四点需要注意:

  1. 接口:既然存在请求和响应,那自然就存在着对应的数据格式和接口调用。具体细节我们后面聊,这里不做赘述。
  2. 权限管理:要考虑到不同用户身份的行为是否满足其当前的期望。(如我们肯定不希望某个普通用户有权限看到所有的用户信息)。
  3. 错误处理:需要涵盖所有的可能出现的错误情况,并把对应的错误情况也一并反馈到前端。
  4. 系统数据:其实就是数据持久化,一般系统的数据持久化的方式就是用的数据库。后端可以通过调用数据库接口来对数据进行增删改查。具体细节也是后面聊,不做赘述。

3. 接口

前后端走请求响应,其实就是通信的一种。既然是通信,那就是需要有通信格式(如网络通信中的tcp协议)。当前的前后端框架,基本支持了接口的优雅调用。可以理解成是通过一些简单的定义,让我们只需要关注信息的主体部分,而不需要关注协议,消息头等无关信息。

既然接口是自行定义的,那自然就有风格的说法(如python代码风格)。当前的API风格以RESTful为主。动宾格式的描述来作为接口名称,清晰明确地状态码作为本次响应的结果。

4. 数据库

对系统数据进行持久化的模块,用来存储系统中的所有相关数据。从性能角度考虑的话,由于数据涉及的增删改查很多,因此在开发阶段,我们需要根据业务发展的情况,不断对表数据进行结构上的优化。并且,由于考虑到未来系统的扩展性,我们在表字段更新的时候需要认真规划,避免遗失重要信息。

之前提到,后端可以通过调用数据库接口来连接并操作数据库,通过定制化的sql语句对数据进行增删改查。其实,现在许多的后端框架已经支持了ORM的方式来操作数据库,每个数据库中的表其实就是代码中的一个类。通过这种方式,将sql语句的编写隐藏在框架中,开发人员只需要对类或者对象进行增删改查即可。

5. 开发思路

本网站前后端开发,所使用到的技术栈是:前端Amis,后端Django,数据库PostgreSQL。

前端通过json的方式进行页面的制作,并且在对应的地方添加上适当的接口。

后端利用Django框架来实现用户认证和数据操作,使用Django-ninja来进行API的编写。

6. 项目实战

由于篇幅原因,将会另起一篇文章专门讲解项目代码和开发框架,敬请期待。