使用烧瓶的简单电子商务API

news2024/11/24 8:44:51

一、说明

        让我们试一试烧瓶(Flask)这个模型框架,这个应用程序可让您管理和扩展您的云端业务;它允许管理人员浏览和计算商店的总销售额并从在线商店 - 服装。

二、什么是烧瓶?

        什么是烧瓶?它是一个Web框架 - 一个极简主义和轻量级的设计,用于在Python中构建Web应用程序。

        我们将在网上开设一家服装店。以下是我们的架构:

        

实际实现 v1-浏览器 — 控制器 — excel 组件;在下一集中,我们将把数据迁移到SQLite — Colaborate U2 : Excalidraw | Hand-drawn look & feel • Collaborative • Secure

我们的兴趣:时尚和服装网站。

服装是第一大时尚目的地,汇集了最好的高街品牌。

        用于选择我们在您的服装店参加的时尚活动的思维导图 — 图片来自此链接

三、具体的实现服装电子商务的步骤 

        这是我们最初的服装百货商店库存:

Download db: (Sales — Dez.xlsx)

        

领口系列。图片来自此链接

棉花收藏。图片来自此链接

让我们开始吧!

0# 步骤 — 转到 Replit,创建一个帐户(如果还没有:)并在下面粘贴这些代码(或将其分叉:);我建议您先让它工作,他们尝试该应用程序,然后才尝试推理。Python很容易理解!

 What is Replit used for?

Replit being Software as a 
service (SaaS) allows users to 
create online projects (called 
Repls, not to be confused 
with REPLs) and write code. 

1# 步骤 — 加载数据库(点击 Replit 仪表板)snowman

将熊猫与烧瓶库一起使用。

from flask import Flask
import pandas as pd

app = Flask(__name__)
table = pd.read_excel("Sales - Dez.xlsx")

        此烧瓶代码执行以下任务:

  1. 导入必要的模块:代码使用语句导入 Flask 模块和 Pandas 模块。Flask用于创建Web应用程序,而pandas是用于数据操作和分析的库。import
  2. 创建 Flask 应用程序对象:该行创建 Flask 类的实例,该类表示 Flask 应用程序。该参数是一个特殊的 Python 变量,用于获取当前模块的名称。它通常用作 Flask 查找模板和静态文件等资源的参考点。app = Flask(__name__)__name__
  3. 读取 Excel 文件:该行使用 pandas 读取名为“Sales - Dez.xlsx”的 Excel 文件,并将其加载到名为 的 pandas 数据帧中。Excel 文件可能包含销售数据,该函数分析文件的内容并创建数据帧,这是一个表格数据结构。table = pd.read_excel("Sales - Dez.xlsx")tableread_excel()

        通过执行这些代码行,将设置 Flask 应用程序,并将 Excel 文件中的销售数据加载到 pandas 数据帧中。这允许我们在您的 Flask 路由中使用数据帧并对销售数据执行操作,例如筛选、聚合或基于数据生成响应。table

2# step — 定义 ,返回总销售额root route

@app.route("/")
def gross_sales():
  gross_sales = float(table["total of sales"].sum())
  return {"gross_sales": gross_sales}

此 Flask 代码为根 URL (“/”) 定义一个路由,并创建一个名为处理对该路由的请求的函数。以下是它的作用:gross_sales()

  1. 装饰器指定在向根 URL (“/”) 发出请求时应调用此函数。@app.route("/")
  2. 在函数内部,该行计算 Pandas 数据帧中“销售总额”列的总和,并将其分配给变量。该方法用于计算列值的总和。gross_sales = float(table["total of sales"].sum())tablegross_sales.sum()
  3. 计算值作为 JSON 响应使用该语句返回。它被包装在带有键“gross_sales”的字典中。响应将具有格式为 ,其中表示销售额的总和。gross_salesreturn{"gross_sales": <value>}<value>

当对根 URL (“/”) 发出请求时,将执行该函数。它从数据帧中的“销售总额”列计算总销售额,并将其作为 JSON 响应返回。此终结点可用于从数据集中检索总销售额信息。gross_sales()table

3# step — 终点将所有 50 个项目分组和求和/sales/products

@app.route("/sales/products")
def sales_products():
  table_prod_sales = table[["products",
                            "total of sales"]].groupby("products").sum()
  sales_products_json = table_prod_sales.to_dict()
  return sales_products_json

        此代码提供了一个 API 终结点,用于检索数据库中所有产品的销售数据,并将其作为 JSON 响应返回。销售数据包括每个产品的总销售额。此终结点可用于以方便的 JSON 格式提取所有产品的销售数据。

        以下是代码的工作原理:

  1. 路由是使用带有 URL 模式“/sales/products”的装饰器定义的。这意味着路由需要对“/sales/products”URL 的请求;@app.route()
  2. 当向此路由发出请求时,将执行该函数;sales_products()
  3. 在函数内部,将创建 的子集,仅包含“产品”和“销售总额”列。该方法用于按产品对数据进行分组,并计算每个产品的销售额总和。我们使用 Pandas 数据帧通过传递两个字段的列表来搜索表,然后将它们分组并取总和。这一行我们带来了表格的一个子集;table.groupby("products").sum()productstotal of sales;
  4. 使用该方法将分组的销售数据转换为字典并存储在变量中;.to_dict()sales_products_json
  5. 包含所有产品的销售数据的字典作为 JSON 响应返回。sales_products_json

        通过搜索传递两个字段列表的表,然后将它们分组并取总和。这行我们带来了这个表格:productstotal of sales; 

products, consolidated	total grouped
Amaryllis Dress,	96991.00 
Aster Pants,	39111.00 
Boat Neck,	15355.00 
Breathable Dobby,	14744.00 
Crew Neck,	52793.00 
Denim Jeans,	26720.00 
Dobby Dress,	60614.00 
Draped,	20191.00 
Fig Dress,	172768.00 
Flora Blouse,	53576.00 
Forrest Jumpsuit,	188215.00 
Gambit Pinafore,	63883.00 
Giger Dress,	19170.00 
Ginger Skirt,	18450.00 
Halter,	6020.00 
Halter Light,	9048.00 
Halter Woven,	15162.00 
Illusion,	200.00 
Jarrah Dress,	31800.00 
Jeans Jackets,	21432.00 
Jeans Skirt,	6240.00 
Jeans Unisex,	11532.00 
Karri Top,	8160.00 
Kerria Anorak,	331636.00 
Keyhole,	8844.00 
Microtex Blouses,	15827.00 
Off-Shoulder,	12420.00 
One-Shoulder,	11658.00 
Peter Pan Collar,	268020.00 
Plunging,	12036.00 
Poppy Dress,	12403.00 
Sew Summer Tops,	92879.00 
Soft Trench,	488848.00 
Square Neck,	17864.00 
Standard Shirts,	20770.00 
Strapless,	33354.00 
Surplice,	28052.00 
Sweetheart,	49840.00 
Sweetheart Cotton,	177031.00 
Sweetheart Unisex,	23968.00 
Trench Coat,	269.00 
Trillim Essemble,	29427.00 
Trillim Essemble Ginger,	11641.00 
Trillim Essemble Microtex,	34883.00 
Turtleneck,	10701.00 
Ursi Assemble,	44751.00 
V-Neck,	13910.00 
Vallea Tunic,	31204.00 
Victorian,	58896.00 
Women Pants,	124004.00 

这是通过以下烧瓶路由返回的:

/sales/products/<item>/sales/products and you can use it to make search using the next route:

4# step — 这将按项目名称搜索我们的数据库

@app.route("/sales/products/<item>")
def sales_per_item(item):
  table_prod_sales = table[["products", "total of sales"]].groupby("products").sum()
  if item in table_prod_sales.index:
    item_sales = table_prod_sales.loc[item]  
    sales_item_json = item_sales.to_dict()
    return sales_item_json
  else:
    return {item: "Not Found in this database"}

        此代码提供了一个 API 终结点,该终结点从数据库中检索特定产品的销售数据,并将其作为 JSON 响应返回。如果在数据库中找不到该项,它将返回一条相应的消息,指示未找到该项

        以下是代码的工作原理:

  1. 路由是使用装饰器定义的,将 URL 模式指定为“/sales/products/<item>”。这意味着路由需要“/sales/products/<item>”形式的 URL,其中“<item>”可以替换为产品名称;@app.route()
  2. 参数将传递给函数 。itemsales_per_item(item)
  3. 在函数内部,创建了 的子集,仅包含“产品”和“总销售额”列;该方法用于按产品对数据进行分组,并计算每个产品的销售额总和。table.groupby("products").sum()
  4. 该函数检查分组销售数据的索引中是否存在指定的值。如果是,则使用 检索该项目的销售数据item.loc[item];
  5. 物料的销售数据使用该方法转换为字典并存储在变量中。.to_dict()sales_item_json
  6. 如果在销售数据中找到该项目,则字典将作为 JSON 响应返回;sales_item_json
  7. 如果在销售数据中找不到该项,则返回具有单个键值对的字典,其中 是键,值是“在此数据库中找不到”。这表示在数据库中找不到指定的项。item

5# 步 — 最后一行

app.run(host="0.0.0.0")

Flask 中的行启动 Flask 开发服务器并将其绑定到 IP 地址“0.0.0.0”。app.run(host="0.0.0.0")

以下是它的作用:

  1. app引用已创建的 Flask 应用程序对象。
  2. 在对象上调用该方法以启动 Flask 开发服务器。run()app
  3. 参数设置为“0.0.0.0”。这意味着开发服务器将绑定到计算机上的所有可用网络接口,允许它接受来自任何 IP 地址的请求。host

通过使用“0.0.0.0”作为主机,可以从同一网络上的其他设备访问 Flask 应用程序。当您想要从其他设备测试或访问 Flask 应用程序或允许外部访问时,这非常有用。

请务必注意,使用“0.0.0.0”作为主机可以使网络上的任何人都可以访问您的应用程序,因此在生产环境中使用此配置时要谨慎并考虑适当的安全措施

6# 步 — 一气呵成

from flask import Flask
import pandas as pd

app = Flask(__name__)
table = pd.read_excel("Sales - Dez.xlsx")


@app.route("/")
def gross_sales():
  gross_sales = float(table["total of sales"].sum())
  return {"gross_sales": gross_sales}


@app.route("/sales/products")
def sales_products():
  table_prod_sales = table[["products",
                            "total of sales"]].groupby("products").sum()
  sales_products_json = table_prod_sales.to_dict()
  return sales_products_json


@app.route("/sales/products/<item>")
def sales_per_item(item):
  table_prod_sales = table[["products", "total of sales"]].groupby("products").sum()
  if item in table_prod_sales.index:
    item_sales = table_prod_sales.loc[item]  
    sales_item_json = item_sales.to_dict()
    return sales_item_json
  else:
    return {item: "Not Found in this database"}

app.run(host="0.0.0.0")

四、一种注释

Flask 的目的是什么?

[CHAT-GPT]
Flask 是一个流行的 Web 框架用于构建网络应用程序在Python中。

其目的是为开发者提供 以一种简单而灵活的方式创建 Web 应用程序和 API。

Flask 以其简约而闻名和轻量化设计,允许开发商拥有更多控制权开发过程并做出根据他们的决定具体项目要求。

Flask 的主要目的是处理低级细节网络开发,例如路由 HTTP 请求到适当的功能,管理会话数据,并生成 HTTP 响应。

它提供了一套工具和有助于简化的库的发展过程,使得更容易构建网络应用程序使用Python。

Flask 遵循“微”框架
哲学,这意味着它提供仅核心功能需要构建网络应用程序,同时允许开发者添加附加功能和扩展按要求。

这种简约的方法使得Flask 高度通用,允许开发商要保留他们的应用轻量级和高效。

简单性和灵活性
Flask 做出了贡献其在开发商中的受欢迎程度。其学习程度相对较低曲线,使其触手可及对于初学者,同时仍然提供必要的功能对于更复杂的项目。

Flask 也有一个大的和活跃的社区,这意味着有很多资源和可提供帮助的扩展开发人员构建稳健和可扩展的网络应用程序。

这就是所有,再见!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指数杠杆平台是什么?融资杠杆一般是多少?

指数杠杆平台是近年来兴起的一种金融投资工具&#xff0c;它通过使用杠杆效应&#xff0c;允许投资者以较少的资金投入获得较大的投资回报。指数杠杆平台交易的产品通常是股票指数&#xff0c;例如道琼斯工业平均指数、纳斯达克综合指数等。 在指数杠杆平台交易中&#xff0c;…

ChatGPT:让机器学习与深度学习变得轻松有趣

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 深度学习和机器学习是当…

互联网医院系统:数字时代医疗的未来

随着科技的迅速发展&#xff0c;互联网医院系统已经成为医疗领域的一大创新。这一数字化解决方案不仅为医疗保健提供了更多的便捷性&#xff0c;还在全球范围内推动了医疗服务的变革。本文将探讨互联网医院系统的定义、优势和未来潜力。 什么是互联网医院系统&#xff1f; 互…

5.外部中断

中断初始化配置步骤&#xff1a; IO口初始化配置 开启中断总允许EA 打开某个IO口的中断允许 打开IO口的某一位的中断允许 配置该位的中断触发方式 中断函数&#xff1a; #pragma vector PxINT_VECTOR __interrupt void 函数名(void){}#pragma vector PxINT_VECTOR __int…

PMP和ACP考哪个证书好,还是两个都考?

建议有条件都考&#xff0c;如果只能考一门&#xff0c;建议考PMP&#xff0c;PMP考试中会涉及敏捷管理的内容&#xff0c;特别是今年发布了新考纲&#xff0c;敏捷管理的内容已经增加到了50%。 先讲一下PMP PMP是美国PMI为考察项目管理人士的专业能力而设立的考试&#xff0…

使用Git下载大语言模型

在下载Huggingface和ModelScope上面的大语言预训练模型的时候&#xff0c;经常会因为网页无法访问或者文件太大无法下载的情况&#xff0c;是大家常常比较苦恼的事情&#xff0c;下面给出用Git下载模型到本地的方法&#xff0c;可以轻松解决上述问题。 目录 一、下载和安装Gi…

如何使用Etherscan Remix插件验证智能合约

在Moonbeam上验证合约的方式有很多&#xff0c;使用Etherscan Remix插件是最快、最简单的方式。 此示例中&#xff0c;我们展示如何在Remix上激活Etherscan插件并验证简单的增量智能合约。开始之前&#xff0c;请准备以下内容&#xff1a; MetaMask钱包 存有DEV的账户 将验证…

Linux 基础入门

目录 一、计算机 1、组成 2、功能 二、操作系统 1、定义 2、主要工作 3、操作系统内核功能 4、常见的操作系统 三、Linux的组成 四、搭建Linux学习环境 五、安装远程连接Linux的软件 1、安装xshell 2、安装mobaxterm 六、Linux操作系统学习大纲 一、计算机 1、组…

Multisim14.0仿真(二十三)施密特触发器构成的多谐振荡器

一、仿真原理图&#xff1a; 二、仿真效果图&#xff1a;

JVM111

JVM1 字节码与多语言混合编程 字节码 我们平时说的java字节码&#xff0c; 指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为:jvm字节码。不同的编译器&#xff0c;可以编译出相同的字节码文件&#xff0c;字节码文件…

外卖订餐系统:数字时代的美食点餐新体验

在数字时代&#xff0c;外卖订餐系统已经成为现代生活的一部分。它不仅改变了我们点餐的方式&#xff0c;还为餐饮业带来了巨大的变革。本文将深入探讨外卖订餐系统的崭新世界&#xff0c;探讨它的发展历程、优势和未来趋势。 从电话点餐到外卖订餐系统 许多人还记得过去打电…

LeetCode 1194.锦标赛优胜者

数据准备 Create table If Not Exists Players (player_id int, group_id int); Create table If Not Exists Matches (match_id int, first_player int, second_player int, first_score int, second_score int); Truncate table Players; insert into Players (player_id, g…

python进制转换

""" 基数:有几个数 0b 2进制: 0、1 基数是:2 0o 8进制: 0、1、2、3、4、5、6、7 基数是:8 0d 10进制: 0到9 基数是:10 0x 16进制: 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 基数是:16十进制转二进制: bin() 十进制转八进…

那么国内比较好用的ai写作助手?

在过去的几年里&#xff0c;人工智能&#xff08;AI&#xff09;已经取得了巨大的进步&#xff0c;其中之一就是AI写作助手。这些工具基于先进的自然语言处理技术&#xff0c;可以生成多种类型的文本&#xff0c;包括文章、博客、广告文案、新闻稿等。它们不仅可以提供高质量的…

canvas绘制基本图形——矩形

我们在初识canvas的时候已经用它画过矩形了&#xff0c;今天我们就总结下矩形的绘画方式 rect rect就是简单最基本的矩形绘制方法。它拥有四个参数&#xff0c;第一二两个参数表示他的x&#xff0c;y坐标&#xff0c;注意这是确定矩形左上角的坐标。第三和第四两个参数则表示…

Vue监控路由/路由参数, 刷新当前页面数据的几种方法

目录 Vue监控路由 Vue中watch监控路由 Vue中watch监控路由的某一个参数 Vue中watch同时监控多个路由 刷新当前页面数据 location.reload $router.go(0) this.$router.resolve()与this.$router.resolve() this.$router.resolve() this.$router.push() 场景 往期相关…

对比接口测试工具在自动化测试优缺点:Jmeter、Python、Postman

一、JMeter 总结&#xff1a;适合对代码不敏感的使用人员&#xff0c;不会代码也可以完成接口自动化&#xff0c;设计框架。适合紧急迭代的项目。 JMeter接口测试的优势 小巧轻量级&#xff0c;并且开源免费&#xff0c;社区接受度高&#xff0c;比较容易入门支持多协议&…

混沌学院-亚朵酒店案例-观后随心谈

我在混沌学院翻阅目录时候&#xff0c;选择了亚朵酒店创始人王海军的案例视频作为第一次学习的目标&#xff0c;原因仅仅是因为偶尔一次入住亚朵酒店之后的亲切好感。当时我就想亚朵酒店的经营者一定很厉害。亚朵用一个相对低廉的价格&#xff0c;打造了极度干净和温馨的入住体…

探索互联世界的灯光艺术:FastLED库详细介绍及应用实例

感谢太极创客提供素材 FastLED库-太极创客 太极创客B站视频 文章目录 基础程序为单一灯赋值fill_solid( 目标, 填充数, 颜色) – 将LED光带设置为同一颜色fill_rainbow(目标, 填充数, 开始颜色, 色差)– 将LED光带设置为渐变彩虹色fill_gradient_RGB(目标, 开始位置, 开始颜色…

CSS box-shadow阴影

1、语法 box-shadow: h-shadow v-shadow blur spread color inset; 值描述h-shadow必需的。水平阴影的位置。允许负值v-shadow必需的。垂直阴影的位置。允许负值blur可选。模糊距离spread可选。阴影的大小color可选。阴影的颜色。在CSS颜色值寻找颜色值的完整列表inset可选。…