Flask框架开发学习笔记《6》前后端不分离基础框架

Flask框架开发学习笔记《6》前后端不分离基础框架

Flask是使用python的后端,由于小程序需要后端开发,遂学习一下后端开发。

主要包含如下文件:

  1. static 目录中存储了图片
  2. templates 目录中存储了 html 文件
  3. utils.py 包含了 log 函数
  4. server.py 是扩展的服务器代码, 详细流程功能说明请看后文
  5. routes.py 是服务器能处理的 path(路由) 和 路由处理函数
  6. models.py 是数据存储的代码

在这里插入图片描述
这一份博客和上一份博客主要区别在于:把功能区分的更加细致的,功能并没有挤在同一个代码中了。

因为不是前后端分离的代码,所以将前端页面集中存放于template文件夹下。

然后静态数据,例如图片等资源也单独统一存放在static文件夹下。

将各个路径的路由功能函数也抽离出来,单独存放在routes.py代码中。

将log等自定义通用工具函数库都统一存放于utils.py中。

将数据处理等功能抽离出来,统一存放在models.py代码中。

最后服务器代码专门写在server.py中。

框架就是如上所示,将各部分功能抽离开来,
然后服务器代码思想如下:

server.py
    建立host和端口
    监听请求
    接受请求
        分解请求信息
            method
            path
            query
            body
        保存请求
            临时保存,用完就丢
    处理请求
        获取路由字典
            path和响应函数的映射字典
        根据请求的path和字典处理请求并获得返回页面
            routes
                主页
                    返回页面
                登录
                    处理post请求
                        对比post数据和用户数据
                        返回登录结果
                    返回页面
                注册
                    处理post请求
                        对比post数据和注册规则
                        保存合法的注册信息
                            保存到User.txt
                        返回注册结果
                    返回页面
                留言板
                    处理post请求
                        将post的数据加入留言列表
                    返回页面
                        包含留言列表
                静态资源(图片)
                    根据query的内容返回对应的资源
        返回响应内容
    发送响应内容
    关闭请求连接

# 感觉就是把功能细化了,抽离开来了。
# 首先主程序server.py构建网络socket实例,然后接收请求,
# 然后解析网络请求,这就要求很熟悉请求的结构,然后利用字符串的方法解析出来,请求方式、主机号端口号、协议、请求body等等
# 然后根据不同的请求路径,调用对应的不同的功能,主要是构造响应的网络数据包,这就要求很熟悉响应的结构
# 最后将响应的内容,发送回请求的客户端。

关键地是大家看懂这个框架怎么清晰地分离功能的,然后看懂服务器代码,然后自己亲自写一遍代码。

本笔记是学习B站某视频的教程,作为一个自己的学习记录,侵删。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/361996.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人工智能福利站,初识人工智能,机器学习,第三课

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

备战蓝桥杯---数据结构与STL应用(优先队列的小细节)

很显然,我们先二分求X,对于验证,一开始我先想的是直接求每个的不足电量再除充电量后向上取整,然后判断与k的大小关系。事实上,如果让k很大,若有两只手机在下一刻多没电,显然上述方法得出的结论是错误的&…

Java的常见api以及异常情况-1

目录 1、什么是API ? 2、Object类 3、equals方法 4、内存中的比较方法 5、instanceof 关键字 1、什么是API ? 1.API(Application ProgrammingInterface,应用程序编程接口)2.Java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些类将…

前端JavaScript篇之实现一个将多维数组展示的方法有哪些,分别是?

目录 实现一个将多维数组展示的方法有哪些,分别是?方法一:递归展开成一维数组方法二:嵌套展示结构方法三:ES6新增的数组扩展方法 flat()方法四:apply() 结合 concat() 使用以展开成一维数组方法五&#xff…

快速排序|超详细讲解|入门深入学习排序算法

快速排序介绍 快速排序(Quick Sort)使用分治法策略。 它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进…

低密度奇偶校验码LDPC(五)——译码算法概述

一、译码算法概述 二、置信传播原理 Bayesian点兵问题 Turbo原理

【CSS3】flex布局实践篇 | 7种常见网页布局方案

1、垂直居中 垂直居中一度是前端面试时必问知识点。 目前的垂直解决方案 使用了 从负外边距 到 display:table-cell 等荒谬的奇技淫巧,包括全高的伪元素。这些方法是又复杂又难写。 不知道大家第一次使用flex布局做什么,反正我是用来做垂直居中&#xf…

2023 IoTDB Summit:华润电力技术研究院副院长郭为民《新型时序数据库在智能发电领域的应用探索与展望》...

12 月 3 日,2023 IoTDB 用户大会在北京成功举行,收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题,多位学术泰斗、企业代表、开发者,深度分享了工业物联网时序数据库 IoTDB 的技术创新…

【python】在python中使用单元测试unittest

在python中使用单元测试unittest 大家好,欢迎来到我的技术乐园!今天,我们将一起踏入Python单元测试的奇妙旅程,探索这个让我们的代码更可靠、更强壮的令人愉快的世界。 前言:为什么单元测试如此重要? 在我…

分布式搜索引擎_学习笔记_2

分布式搜索引擎_学习笔记_2 在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以今天,我们研究下elasticsearch的数据搜索功能。我们会分别使用…

探索微服务治理:从发展到实践构建高效稳定的系统|服务注册与发现技术解析

随着软件行业的不断发展,微服务架构凭借其高度的灵活性、可扩展性和可维护性,逐渐成为企业应用的主流架构风格。然后微服务架构的复杂性也带来了一系列的挑战,其中之一就是如何有效地管理和治理微服务。本文灸哥给你详细介绍和服务治理相关的…

Python笔记(二)—— Python判断语句

2.1 布尔类型和比较运算符 布尔类型用于表示:真和假 比较运算符用于计算:真和假 1. 布尔(bool)表示现实生活中的逻辑,即真和假 True表示真False表示假 True本质上是一个数字记作1,False记作0 定义变…

检测CUDA 是否能访问GPU时回应速度慢【笔记】

SUPWEMICRO 418G-Q20X12 维护记录: 两台设备均已安装CUDA与Pytorch,在检测CUDA 是否能访问GPU,执行torch.cuda.is_available()命令时,一台设备速度秒回应True,但另外一台设备回应速度慢(1分钟左右&#xff…

【HarmonyOS应用开发】ArkUI 开发框架-进阶篇-管理组件状态(九)

管理组件状态 一、概述 在应用中,界面通常都是动态的。下图所示,在子目标列表中,当用户点击目标一,目标一会呈现展开状态,再次点击目标一,目标一呈现收起状态。界面会根据不同的状态展示不一样的效果。 Ar…

Linux一些实用操作

学习笔记,记录以下课程中关于Linux的一些实用操作。黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等_哔哩哔哩_bilibili 目录 1 各类小技巧(快捷键&#xff…

【RT-DETR有效改进】 利用Damo-YOLO的RepGFPN改进特征融合层(高效重参数化Neck)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是Damo-YOLO的RepGFPN(重参数化泛化特征金字塔网络),利用其优化RT-DETR的Neck部分,可以在不影响计算量的同时大幅度涨点(亲测在小目标和大目标检测的数据集上效果均表现良好涨点幅…

gitlab-runner注册到gitlab时报错:ERROR: Registering runner... failed xxxxxxxx

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【Java】Springboot入门

学习目标 基于SpringBoot框架的程序开发步骤 熟练使用SpringBoot配置信息修改服务器配置 基于SpringBoot的完成SSM整合项目开发 一、SpringBoot简介 1. 入门案例 问题导入 SpringMVC的HelloWord程序大家还记得吗? SpringBoot是由Pivotal团队提供的全新框架&…

STM32低功耗模式

一、低功耗模式介绍 STM32 的低功耗模式有 3 种: 1)睡眠模式(CM3 内核停止,外设仍然运行) 2)停止模式(所有时钟都停止) 3)待机模式(1.8V 内核电源关闭) 在这三种低功耗模式中&#…

摄影分享|基于Springboot的摄影分享网站设计与实现(源码+数据库+文档)

摄影分享网站目录 目录 基于Springboot的摄影分享网站设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、图片素材管理 3、视频素材管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐…