Python编程项目实战(微课版)- 课件 项目7、8 生成检测数据统计看板、实现检测数据动态看板_第1页
Python编程项目实战(微课版)- 课件 项目7、8 生成检测数据统计看板、实现检测数据动态看板_第2页
Python编程项目实战(微课版)- 课件 项目7、8 生成检测数据统计看板、实现检测数据动态看板_第3页
Python编程项目实战(微课版)- 课件 项目7、8 生成检测数据统计看板、实现检测数据动态看板_第4页
Python编程项目实战(微课版)- 课件 项目7、8 生成检测数据统计看板、实现检测数据动态看板_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目7生成检测数据统计看板主讲:吴雪飞知识回顾项目引入项目6设计的云盘存储系统虽然实现了检测数据的安全归档,但缺乏有效的数据分析维度。项目7将构建可视化分析系统,通过数据可视化技术挖掘缺陷数据间的关联性,使质量管理人员能快速掌握缺陷分布特征。系统采用Matplotlib可视化库与Web技术结合,将建立缺陷类型与发生频次的可视化映射,为产线工艺改进提供数据支撑,实现质检数据从存储管理到智能分析的价值升级。项目描述项目7将设计一个网页版缺陷检测数据图表生成器,核心功能包括:数据解析Pandas库读取“缺陷检测数据.xlsx”文件。通过DataFrame结构精准提取“损坏、装配错误、缺失”三类缺陷记录。数据处理层运Pandas进行频次统计与数据清洗,建立结构化数据集。数据可视化可视化模块采用Matplotlib生成静态柱状图展示其各种缺陷记录的统计个数。最终在网页中显示包含缺陷分类统计、趋势分析的可视化看板。项目效果相关知识:NumPy库基本介绍NumPy是Python科学计算的核心库,提供高效的多维数组(ndarray)和矩阵运算功能,专为高性能数值计算设计。支持向量化操作、线性代数、随机数生成及傅里叶变换,底层由C语言实现,计算速度极快。在工业质检场景中,NumPy可快速处理图像数据(如像素矩阵)、执行缺陷检测的数值计算(如尺寸公差分析、强度分布统计),并与Pandas、OpenCV等库无缝协作,是进行大规模数值计算的“基石工具”。相关知识:NumPy库创建数组常用创建方式相关知识:NumPy库创建数组更多创建方式函数功能说明np.array(object,dtype=None)将Python序列转换为ndarray数组,可指定数据类型np.zeros(shape,dtype=float)创建指定形状的全0数组np.ones(shape,dtype=float)创建指定形状的全1数组np.arange([start,]stop,[step,],dtype=None)生成等差序列数组np.linspace(start,stop,num=50,endpoint=True)生成等间隔数列(可控制包含终点)np.random.rand(d0,d1,...,dn)生成[0,1)均匀分布的随机数组np.full(shape,fill_value,dtype=None)创建填充指定值的数组相关知识:NumPy库数组属性shape数组的维度,返回一个元组,表示各轴大小ndim数组的轴(维度)数量size数组元素的总数dtype数组元素的数据类型(如int64、float32)itemsize每个元素占用的字节数假设有一个3×4的数组,存储了3个缺陷的检测数据(每行代表一个缺陷,列分别为缺陷ID、长度、宽度、深度)相关知识:NumPy库数组常用方法函数描述numpy.append(arr,values,axis=None)将值添加到数组的末尾。arr:要添加值的目标数组;values:要追加的值;axis:指定沿哪个轴追加(如果为None,数组会先被展平)numpy.concatenate((a,b,...),axis=0)沿着指定的轴连接相同形状的两个或多个数组。(a,b,...):要连接的数组序列(必须是相同形状)numpy.insert(arr,obj,values,axis=None)沿指定轴在指定索引之前插入值。obj:插入位置的索引(可以是整数、列表或数组);values:要插入的值(可以是标量、数组或列表)numpy.delete(arr,obj,axis=None)删除数组指定位置的元素,并返回一个新数组。二维数组中,axis=0删除行;axis=1删除列。obj为索引,arr为数组名称numpy.where(condition[,x,y])返回元组,包含输入数组中满足条件元素的各维度索引数组。condition:布尔条件表达式;x(可选):满足条件时返回的值;y(可选):不满足条件时返回的值numpy.vstack(tup)按行拼接数组,tup:要堆叠的数组序列(元组或列表形式);返回值:堆叠后的新数组,原数组不变numpy.hstack(tup)按列拼接数组相关知识:NumPy库对缺陷检测数据数组defect_data进行如下数据操作相关知识:Pandas库基本介绍Pandas是Python数据分析的核心库,提供高效的DataFrame(二维表格)和Series(一维序列)数据结构,专为处理结构化数据(如Excel、CSV)设计。支持数据清洗、筛选、聚合、合并及可视化,无缝衔接NumPy、Matplotlib等科学计算库。在工业质检场景中,Pandas可快速解析海量检测日志,统计缺陷类型分布、批次合格率等关键指标,为质量优化提供结构化数据支撑,是进行表格数据分析的“瑞士军刀”。Pandas主要包括Series和DataFrame两种核心数据结构。这两种结构可以概括为“一维与二维的互补共生”相关知识:Pandas库Series结构一维数据结构,可视为带标签的数组。基础语法importpandasaspds=pd.Series(data=None,index=None,dtype=None,name=None,copy=False)参数说明data数据可以是列表、元组、NumPy数组、字典、标量值等;index为索引(标签),长度需与data一致,默认是0,1,2,...,n-1;dtype为数据类型(如int,float,str),自动推断时可省略;name为Series的名称(可用于某些操作,如DataFrame的列名);copy为是否复制输入数据(默认为False)。相关知识:Pandas库Series结构以缺陷检测数据为例,创建Series结构相关知识:Pandas库Series结构Series结构的基本属性相关知识:Pandas库Series结构Series结构的数据访问方式相关知识:Pandas库DataFrame结构二维表格数据结构,由行索引(index)、列标签(columns)和多列数据构成基础语法importpandasaspddf=pd.DataFrame(data=None,#数据(二维数组、字典、列表等)index=None,#行索引(默认0,1,2,...)columns=None,#列名(默认0,1,2,...)dtype=None,#数据类型copy=False#是否复制数据)相关知识:Pandas库DataFrame结构创建DataFrame常用从字典创建importpandasaspd#模拟缺陷检测数据data={'检测时间':['2023-08-01','2023-08-01','2023-08-02','2023-08-02','2023-08-03','2023-08-03','2023-08-04','2023-08-04','2023-08-05','2023-08-05'],'缺陷类型':['损坏','装配错误','缺失','损坏','划痕','装配错误','缺失','划痕','损坏','装配错误'],'产品批次':['A01','B02','C03','A01','D04','B02','C03','D04','A01','B02'],'严重程度':['高','中','低','高','中','高','低','中','紧急','中'],'生产线':['线1','线2','线1','线2','线1','线2','线1','线2','线1','线2']}df=pd.DataFrame(data)print(df)相关知识:Pandas库DataFrame结构创建DataFrame格式对齐pd.set_option('display.unicode.east_asian_width',True)pd.set_option('display.width',100)pd.set_option('display.max_columns',None)相关知识:Pandas库DataFrame结构DataFrame数据访问方式基本信息访问df.shape返回行数和列数((行,列))。df.columns返回所有列名(Index对象)。df.index返回行索引(RangeIndex或其他索引类型)。df.dtypes查看每列的数据类型。DataFrame结构DataFrame数据访问方式数据快速预览df.head(n)查看前n行数据(默认n=5)df.tail(n)查看后n行数据df.sample(n)随机抽取n行数据(默认n=1)相关知识:Pandas库DataFrame结构DataFrame数据访问方式列数据访问df['列名']/df.列名df[['列名1','列名2','列名3']]DataFrame结构DataFrame数据访问方式行数据访问(标签索引)df.loc[行标签]df.loc[[行标签1,行标签2,...]]df.loc[起始标签:结束标签]相关知识:Pandas库DataFrame结构DataFrame数据访问方式行数据访问(位置索引)df.iloc[行位置]df.iloc[[行位置1,行位置2,...]]df.iloc[起始位置:结束位置](半开区间)DataFrame结构DataFrame数据访问方式多维度交叉访问df.loc[行标签,列标签]df.iloc[行位置,列位置]相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据增加pd.concat([原df,新数据df],其他参数)ignore_index设为True:创建新索引ignore_index默认为False:保留原索引相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据修改DataFrame结构DataFrame数据常用操作数据查询相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据分组统计DataFrame结构DataFrame数据常用操作数据删除len(x)为每个分组中的记录行数示例7.1缺陷检测数据维护实战任务描述在上述原始模拟缺陷检测数据的基础上进一步进行数据维护,具体需求为:数据筛选:找出“线2”生产线上的所有记录。数据修改:将所有“损坏”类型缺陷的严重程度改为“紧急”,输出修改后的损坏记录。数据添加:新增一列“处理状态”,所有记录默认设为“待处理”,显示前5行。数据删除:删除“缺陷类型”为“划痕”的所有记录,并统计删除后的记录数。分组统计:统计每个产品批次出现的缺陷数量。复合查询:找出“产品批次”为“A01”且“严重程度”为“高”的记录。显示最终数据。示例7.1缺陷检测数据维护实战相关知识:Pandas库数据清洗在Python数据分析中,借助Pandas库可实现高效数据清洗dropna()/fillna()处理缺失值replace()修正异常值drop_duplicates()去重通过astype()或str方法统一格式结合apply()或map()实现标准化。这些操作以DataFrame为核心,直接提升数据质量,为后续分析(如scikit-learn建模或Matplotlib可视化)奠定可靠基础。相关知识:Pandas库数据清洗读取数据文件read_excel是读取Excel文件的核心函数pd.read_excel(io,#文件路径或类文件对象(必填)sheet_name=0,#工作表名称或索引(默认第一个表)header=0,#列标题所在行(默认第0行)names=None,#自定义列名列表(替换原列名)dtype=None,#强制指定列数据类型(如{"温度记录":"float64"})parse_dates=False,#自动解析日期列(或指定列名列表)na_values=None,#定义缺失值标识(如["NA","NaN",""])engine=None#解析引擎(默认自动选择,可选"openpyxl"或"xlrd"))相关知识:Pandas库数据清洗读取数据文件相关知识:Pandas库数据清洗初步数据探索查看数据基本信息统计描述缺失值统计相关知识:Pandas库数据清洗数据清洗操作处理缺失值相关知识:Pandas库数据清洗数据清洗操作处理异常值通过调用apply()函数,将“温度记录”列的每个数据应用到lambda()自定义函数,该自定义函数的主要功能是通过简洁分支结构将大于100的数据替换成100,否则保持原数据不变。思考:1.当前代码只处理了大于100的情况,未处理下限(如x<0)。若需同时限制下限,应如何修改代码?2.对于大数据量而言,apply()函数可能性能较慢,若使用向量化操作,如前面提到的numpy.where()方法,应如何修改代码?相关知识:Pandas库数据清洗数据清洗操作处理重复数据标准化分类数据标准化时间格式相关知识:Pandas库数据清洗数据清洗操作清洗后验证保存清洗结果相关知识:Matplotlib库基本介绍Matplotlib是Python最基础的数据可视化库,支持生成静态、动态及交互式图表。通过简洁的API接口,用户可快速绘制折线图、柱状图、散点图等,可灵活调整图表样式(标题、轴标签、颜色、图例),并能将数据分布、趋势和异常值直观呈现。结合Pandas数据处理能力,可高效支持工业检测、统计分析等场景。相关知识:Matplotlib库折线图折线图展示数据随时间或其他连续变量的变化趋势,如销售额月度增长、温度日变化等,可以直观呈现趋势波动,识别周期性或异常波动点。语法格式相关知识:Matplotlib库折线图以绘制缺陷数量随时间变化趋势的折线图为例思路分析x轴是检测日期y轴是缺陷数量结论得出按日期分组的缺陷数量(Series结构)即可每日缺陷数量即为每日记录行数通过Series结构.index获取日期作为x轴数据通过Series结构.values获取缺陷数量作为y轴数据注意:日期需要提取“月-日”df['检测时间'].dt.strftime('%m-%d')相关知识:Matplotlib库折线图以绘制缺陷数量随时间变化趋势的折线图为例相关知识:Matplotlib库柱状图柱状图对比不同类别的数值差异,如产品销量排名、地区用户数量比较。通过高度差异快速定位优势或劣势类别,支持决策优化。语法格式相关知识:Matplotlib库柱状图以绘制各缺陷类型出现频率的柱状图为例思路分析理解原始数据结构找到DataFrame中“缺陷类型”列明确统计目标每种缺陷类型出现了多少次

例如:划痕-15次,裂纹-8次,变形-5次选择统计方法value_counts():最直接的方法,专门用于统计频次,返回Series结构groupby().size():分组后统计每组大小相关知识:Matplotlib库柱状图以绘制各缺陷类型出现频率的柱状图为例自定义颜色可通过复制多个相同的十六进制颜色值(如黑色“#000000”),再通过单击颜色值前面的颜色预览框,可调出颜色选择器进行颜色的选择,这是vscode的内置功能。相关知识:Matplotlib库饼图饼图显示整体中各部分的占比关系,如市场份额分配、成本构成分析。强调比例分布,突出主要贡献或消耗来源。语法格式相关知识:Matplotlib库饼图以绘制各种缺陷严重程度占比饼图为例思路分析数据形式x必须为分类数据,可求和x可为原始分类数据列,但需先用.value_counts()统计频次x亦可为已汇总的数值序列pd.Series([3,2,1],index=['高','中','低'])统计目标“严重程度”列每个严重程度出现的次数然后计算它们在总缺陷中的占比最后用饼图直观展示为什么先统计频次再计算占比?plt.pie()会自动根据输入值计算比例。相关知识:Matplotlib库饼图以绘制各种缺陷严重程度占比饼图为例相关知识:Matplotlib库箱线图箱线图通常用于比较不同组/类别的数据分布特征(中位数、四分位数、异常值),如测试结果稳定性评估。其核心价值在于揭示数据集中趋势和离散程度,辅助异常检测。plt绘制箱线图的x数据构建较为复杂,这里介绍Seaborn库绘制箱线图的方法Seaborn也是基于Matplotlib的高级Python数据可视化库,专注于统计图表绘制。它提供简洁的API、美观的默认样式,支持散点图、箱线图、热力图等,擅长展现数据分布与关系,是数据分析常用工具。相关知识:Matplotlib库箱线图语法格式相关知识:Matplotlib库箱线图以绘制不同严重程度的温度分布箱线图为例相关知识:Matplotlib库散点图散点图以坐标点形式展示两个连续变量的关系,直观呈现数据分布特征。每个点代表一个观测值,通过点的聚集形态可判断变量间的相关性(正/负/无)、异常值及聚类趋势。语法格式相关知识:Matplotlib库散点图以绘制温度与严重程度的散点图为例Series.map(arg,**kwargs)arg:映射关系(

function,dict,Series,orarray-like

返回Series结构相关知识:DataFrame绘图Matplotlib的pyplot模块(简称plt)是Python数据可视化的基础工具,提供完整的图形控制功能,但需要手动处理数据提取和图表元素配置。Pandas库在此基础上进行了高层封装,通过DataFrame.plot()方法实现了声明式可视化。该方法能够自动识别DataFrame的列名和索引,显著简化基础图表的生成流程。相关知识:DataFrame绘图DataFrame.plot()语法格式kind参数的图表类型有“line”、“bar”、“scatter”、“box”、“hist”、“pie”、“area”。默认为折线图“line”。相关知识:DataFrame绘图代码举例相关知识:DataFrame绘图代码举例相关知识:DataFrame绘图代码举例Pandas早期版本将箱线图作为独立方法实现(df.boxplot()),因为箱线图常用于统计描述,使用频率高且参数复杂,值得单独优化,后期才发展了统一接口plot(),为保留早期API设计,避免破坏现有代码,这个方法一直沿用至今。相关知识:可视化要素Matplotlib的可视化体系遵循清晰的层级架构:画布(Figure)作为基础容器,承载所有元素;子图(Subplot)通过网格化布局实现多视图协同分析;坐标系(Axes)作为核心绘图空间,管理数据映射与图形渲染。这一架构如同舞台(Figure)上的多个表演区(Axes),通过标准化座位表(Subplot)快速排布。相关知识:可视化要素画布(Figure)创建画布并设置尺寸其他方法相关知识:可视化要素子图(Subplot)批量创建fig,axes=plt.subplots(nrows,ncols)显示创建fig=plt.figure(figsize=(14,10))fig.add_subplot(nrows,ncols,index)ax1等价于批量创建方式中axes[0,0],以此类推相关知识:可视化要素坐标系(Axes)坐标系是Matplotlib的核心绘图单元,本质是一个包含完整绘图元素的数学平面。每个Axes对象(如前面的axes变量)包含一对正交坐标轴(X/YAxis)、标题、图例及数据可视化层,通过数据-像素映射系统将数值转换为图形元素。相关知识:可视化要素坐标系(Axes)如在上述画布的左上角(0,0)位置绘制折线图相关知识:可视化要素图例(Legend)图例是数据可视化中用于说明图形元素含义的核心组件,通过颜色、线型或标记符号的对应标注,帮助用户理解图表中不同数据系列的含义。语法格式相关知识:可视化要素图例(Legend)为各种图表添加图例的统一步骤在绘图时指定“label”参数,然后调用“legend()”方法生成图例但不是所有图表都需要图例当图表元素已自解释或信息重复时不需要用图例当存在多维分类、非直观编码或数据隐含逻辑时需要图例从工业优先级的角度出发,遵循“最小有效信息”原则能用标题、标签、注释等说明的,尽量不用图例相关知识:可视化要素图例(Legend)按照以上原则,可为温度与严重程度的散点图绘制图例相关知识:可视化要素图例(Legend)按照以上原则,可为温度与严重程度的散点图绘制图例为什么要分组绘制散点图?1.因为需根据“严重程度”这个分类变量来区分数据点。2.每个严重程度级别(高/中/低)需要用不同颜色表示。3.最终需要在图例中明确展示这种对应关系。需调用unique()方法获取所有不重复的严重程度级别,同时创建颜色字典,建立类别到颜色的映射关系。每次循环处理一个严重程度级别,使用布尔索引df[df['列']==值]筛选数据,label参数是图例显示的文字,必须为每组数据设置。相关知识:可视化要素标签(Labels)在Python数据可视化中,标签(Labels)也是图表的重要组成部分,它们帮助用户理解图表所呈现的信息状态。主要标签类型标题(Title)轴标签(AxisLabels)刻度标签(TickLabels)数据标签(DataLabels)等相关知识:可视化要素标签(Labels)数据标签的语法格式相关知识:可视化要素标签(Labels)用plt的方式在前面柱状图的基础上添加数据标签plt.bar()返回BarContainer对象,该对象是一个包含多个Rectangle对象的容器将带标签的柱状图、带图例的散点图、饼图统一绘制到前面的画布中。保存运行图片为“缺陷检测数据综合看板(学号姓名).png”课后作业编写一个Python程序,完成以下功能。(1)从sales_data.xlsx文件导入数据。其中,date表示销售日期;product表示产品名称;category表示产品类别;quantity表示销售数量;revenue表示销售收入;region表示销售区域。(2)读取并清洗数据(处理缺失值、转换数据类型等)。转换日期格式。用各列平均数填充“quantity”“revenue”这两列的缺失值。用各列众数(数据集中出现频率最高的值)填充“product”“category”“region”这三列的缺失值。(3)添加月份列用于分析。(4)使用matplotlib绘制4种不同类型的图表。图表1:水平柱状图——各产品类别的总销售额。图表2:折线图——每月销售趋势。图表3:箱线图——各地区收入分布。图表4:自选一种没讲过的图表类型进行数据统计(5)保存文件为“sales_visualizations_matplotlib_学号姓名.png”(6)上传.py文件和.png文件到CC网“作业上传——项目7课后作业”。项目拆解效果展示为“项目7-原始素材”文件夹创建一个副本“项目7”在unit7.py中实现以下要求根据要求定义函数实现方法在main函数中根据操作类型,调用对应函数使用异常包含运行程序,成功返回success,异常返回error实现要求THANKYOU主讲:吴雪飞项目8实现检测数据动态看板主讲:吴雪飞知识回顾项目引入在工业检测场景中,静态图表虽能直观呈现数据,但无法满足实时监控与交互分析的需求。为提升数据分析的灵活性与用户体验,本项目将基于Flask框架与ECharts可视化库,构建网页版动态缺陷数据展示系统。通过Flask后端搭建轻量级Web服务,整合路由控制与数据接口,结合ECharts的动态渲染能力,实现缺陷类型分布、数量统计的动态图表。用户可通过网页选择缺陷数据的柱状图或饼图,查看动态更新的可视化结果,突破静态报告的局限,为质量管理人员提供高效决策支持。项目描述项目8将基于缺陷检测数据构建动态可视化系统,核心功能包括:后端搭建利用Flask框架定义路由(如/home页面接口、/api/data数据接口)通过请求对象(request)建立参数解析与校验机制处理前端传入的可视化参数(图表类型、数据维度等)使用Pandas实现缺陷数据的处理和过滤,并将数据构建为JSON结构进行返回静态资源管理将CSS、JavaScript及字体文件存放于static目录通过Flask的网址自动生成函数url_for动态引用,保障资源加载效率与可维护性项目描述项目8将基于缺陷检测数据构建动态可视化系统,核心功能包括:前端开发通过Jinja2模板引擎渲染HTML页面集成Bootstrap布局与ECharts图表库利用Ajax技术异步请求后端接口,实现无刷新数据更新动态图表基于ECharts配置饼图、柱状图、折线图等绑定数据接口响应支持缩放、提示框交互及主题切换,确保图表随用户操作实时渲染项目效果相关知识:Flask全栈开发流程解析FlaskWeb应用的基本框架和路由系统项目结构初始化导入依赖模块动态定位资源目录Flask应用实例化与配置路由系统设计主页路由API数据接口路由应用运行配置@app.route("/"):装饰器将URL路径/绑定到index()函数render_template("index.html"):渲染templates/index.html模板这是典型的MVC模式:路由(Controller)→

模板(View)@app.post("/data"):限制只接受POST请求(Flask2.0+语法)request.json:自动解析JSON请求体,返回字典jsonify():返回标准JSON响应相关知识:Flask全栈开发流程解析FlaskWeb应用的基本框架和路由系统数据处理流程前端到后端的请求链前端

→AjaxPOST请求

→/data路由

→request.json解析

→unit3.main()处理

→jsonify响应

前端接收前后端交互模式前端(index.html)与后端关联(index.js)相关知识:路由(Routing)在Flask框架中,路由(Route)是指将特定的URL路径映射到相应的视图函数(ViewFunction)的机制。通过路由,Flask能够根据用户访问的URL地址,调用对应的处理函数,并返回相应的响应内容(如HTML页面、JSON数据等)。路由的核心作用建立URL与业务逻辑之间的桥梁,使得用户通过浏览器访问不同的URL时,能够触发不同的后端处理逻辑。在Flask中,路由使用装饰器(@app.route())定义,将URL模式绑定到视图函数。相关知识:路由(Routing)基本用法步骤在项目8文件夹中创建“Flask应用示例”文件夹在其中创建main.py创建Flask应用实例路由通过@app.route()装饰器来定义访问“:5000/”时,调用home()函数访问“:5000/about”时,调用about()函数应用启动相关知识:路由(Routing)动态路由Flask支持动态路由,允许在URL规则中定义变量部分,这些变量会自动提取并作为参数传递给视图函数。这是构建接受用户输入或显示特定资源页面的Web应用的基础。相关知识:路由(Routing)动态路由基本语法<变量名>或<转换器:变量名>在main.py中添加代码访问“:5000/user/john”时,页面显示“用户:john”访问“:5000/post/123”时,页面显示“文章ID:123”访问“:5000/path/some/folder/file.txt”时,页面显示“子路径是:some/folder/file.txt”示例8.1简易缺陷检测系统(Flask版)功能需求基础功能。首页:显示系统名称和导航链接(纯文本)。检测功能:输入产品ID,随机返回“合格”或“缺陷”结果。缺陷说明:输入缺陷代码(1/2/3),返回对应的缺陷描述。动态路由规则。/check/<product_id>:<product_id>:任意字符串(如P1001),表示产品编号。返回格式:“产品[ID]检测结果:合格/有缺陷(代码X)”。/type/<int:defect_code>:<defect_code>:必须是整数1、2或3,否则返回错误提示。返回格式:“缺陷代码X:具体描述”。模拟逻辑。检测结果:70%概率合格,30%概率缺陷。通过random.random()生成一个0-1之间的随机数,若小于0.7为合格;否则为缺陷。缺陷代码:若检测为缺陷,随机分配代码1、2或3。通过random.choice()从缺陷代码列表中随机选择一个缺陷描述(字典):1→“划痕:表面有线性损伤”。2→“裂纹:材料内部断裂”。3→“变形:产品形状异常”。示例8.1简易缺陷检测系统(Flask版)相关知识:请求对象(Request)Flask的请求对象(request)是一个全局对象,它封装了客户端发送给服务器的所有信息。当客户端(如浏览器)向Flask应用发送HTTP(超文本传输协议)请求时,Flask会自动创建一个请求对象,其中包含了请求的所有细节。fromflaskimportrequest#导入请求对象@app.route('/example')defexample():#这里可以使用request对象returnf"请求方法:{request.method}"运行结果请求方法:GET相关知识:请求对象(Request)HTTP请求方法request.method返回一个字符串,表示当前HTTP请求的方法,其值总是大写字母,由客户端(浏览器、API调用等)在发起请求时指定,定义了请求的意图和操作类型,是客户端与服务器交互的核心机制。相关知识:请求对象(Request)指定请求方法默认情况下,路由只响应GET请求。如果需要处理其他HTTP方法(如POST、PUT等),可以通过methods参数指定。运行结果:这是登录页面。相关知识:请求对象(Request)指定请求方法如何响应POST方法?表单提交数据提交...相关知识:请求数据客户端的请求数据主要分为三种查询参数(Params)、表单数据(FormData)、JSON数据。相关知识:请求数据测试查询参数(Params)测试表单数据(FormData)测试JSON数据在命令行运行,问号(?)后面是参数相关知识:模板(Templates)在Flask中,模板(Template)是一种用于动态生成HTML页面或其他文本格式(如XML、JSON等)的技术。模板允许开发者将静态结构与动态数据分离,通过在HTML中嵌入占位符或逻辑表达式,实现数据的动态渲染。相关知识:模板(Templates)创建templates文件夹在“Flask应用示例”文件夹中创建编写模板文件在templates文件夹中创建index.html文件<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>首页</title></head><body><h1>欢迎来到首页</h1><p>这是一个简单的模板示例。</p></body></html>相关知识:模板(Templates)在视图函数中渲染模板视图函数是Flask应用中处理HTTP请求的核心单元,主要负责接收客户端请求;处理业务逻辑;返回HTTP响应等。在Flask应用中,使用render_template()视图函数渲染模板。修改main.py文件相关知识:静态文件(StaticFiles)在Flask框架中,静态文件是指那些不经常变动的资源文件,例如CSS样式表、JavaScript脚本、图片、字体文件等。Flask默认会在项目根目录下的static文件夹中查找这些静态文件。常见的静态文件CSS文件:定义网页的样式和布局。JavaScript文件:实现网页的交互和动态效果。图片文件:如PNG、JPEG、GIF等格式的图片。字体文件:如WOFF、TTF等格式的字体文件。其他资源:如音频、视频、PDF等文件。相关知识:静态文件(StaticFiles)创建static文件夹在“Flask应用示例”文件夹中创建组织静态文件在static文件夹中创建子目录,并将静态文件分类存放,可创建css子文件夹、js子文件夹、images子文件夹和fonts子文件夹,后续各类静态文件放入对应子文件夹中。相关知识:静态文件(StaticFiles)在模板中引用静态文件CSS文件主要影响页面渲染样式,应尽早加载,一般放在<head>标签内JS文件会阻塞页面渲染,一般放在<body>标签末尾但不是所有js文件都适合放在末尾图片文件是页面内容的一部分,在<body>标签中实际需要的地方加载即可相关知识:ECharts图表基本介绍ECharts是一款由Apache开源的强大可视化库,基于JavaScript开发,支持生成直观、交互性强的图表。它以高性能和丰富的图表类型著称,涵盖折线图、柱状图、饼图、散点图等,并支持动态数据更新与复杂交互效果。在动态图表领域,ECharts通过实时数据刷新、动画过渡和事件响应机制,可实现数据监控、趋势分析和实时预警等功能,广泛应用于工业监控、物联网和金融数据可视化等场景相关知识:ECharts图表前期准备打开ECharts官网(/zh/download.html)单击“从GitHub下载编译产物”的“Dist”链接,下载文件“echarts.js”。或直接复制项目8static文件夹中的js子文件夹中的echarts.js文件。在Flask项目的static文件夹下创建子目录js,将下载的文件放入js文件夹中。打开templates文件夹下的“index.html”文件,在模板的<body>末尾前添加如下代码引入ECharts相关知识:ECharts图表创建第一个ECharts图表从/examples/zh/editor.html?c=line-simple下载示例代码“line-simple.html”文件放入templates文件夹相关知识:ECharts图表创建第一个ECharts图表将此文件中的关键代码复制粘贴到“index.html”文件中1.先创建容器2.再加载ECharts库3.最后初始化图表相关知识:ECharts图表创建第一个ECharts图表运行效果相关知识:ECharts图表DOM容器DOM(DocumentObjectModel)容器是指HTML文档中通过特定标签(通常是<div>)创建的一个区域,专门用于放置动态生成的内容。在ECharts等数据可视化库中,DOM容器是图表渲染的基础载体。<divid="container"style="height:100%"></div>“id="container"”为div元素指定唯一标识符,便于JavaScript通过docume

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论