Django+Vue开发生鲜电商平台之4.Restful API和Vue介绍

简介: 近年来,随着多种平台类型(PC端、Android端、Mac端、iPhone端、Pad端等)的出现和普及,前后端分离变得更加重要和流行,显然,其是具有一定的适应性的。

一、Restful API介绍

1.前后端分离优缺点

近年来,随着多种平台类型(PC端、Android端、Mac端、iPhone端、Pad端等)的出现和普及,前后端分离变得更加重要和流行,显然,其是具有一定的适应性的。

前后端分离的原因如下:

  • PC、APP、Pad等多端适应的要求
    近几年随着移动端的普及,需要对其进行适应,运用传统的方式只适用于PC端,需要前后端分离实现对移动端的适应。
  • SPA开发模式逐渐流行
    SPA模式即单页Web应用模式,对单页应用来说模块化的开发和设计显得相当重要。
  • 前后端开发职责分工不清
    在编写模板时,会面临着是由前端还是后端开发的问题,如果由前端人员来开发就必须了解后端语言,如果由后端人员来写就必须了解前端知识。
  • 开发效率低下,前后端互相等待
    之前的模式是前端需要等待后端开发完成后才能开发,或者后端等待前端,造成效率低下。
  • 前端被动配合后端,能力受限
    由于很多业务逻辑是在是在模板语法中实现,前端开发者只是单纯地给后端提供前端网页文件,开发能力受到限制。
  • 后台开发语言和模板高度耦合,导致开发语言依赖严重
    由于后台采用单一的开发语言进行开发,导致了高耦合,后端语言的切换成本很高。

但是前后端分离也存在一些局限性:

  • 前后端学习门槛增加
    由于开发模式的改变,导致前后端开发者均不能再像之前那样只是负责自己的那一块即可,为了前后端配合,需要学习更多的技术和方法。
  • 数据依赖导致文档重要性增加
    后端把数据交给前端时,如果没有文档,前端就可能会出现很严重的问题,还要保证文档的及时更新和准确。
  • SEO的难度增大
    现在很多页面中只是HTML框架,并没有数据,这虽然在很大程度上放置了爬虫,但同时也对搜索引擎的索索造成了很大影响。
  • 后端开发模式迁移增加成本
    不同的开发语言对应的模板语法不同,因此在进行迁移时也会面临很大的成本。

2.Restful API简介

REST全称Representational State Transfer,中文为表征性状态转移,而RESTful API就是REST风格的API,即rest是一种架构风格,与开发语言无关,跟平台无关,采用HTTP做传输协议。restful api目前是前后端分离的最佳实践,它不是一种框架,而只是为前后端分离提供了一种标准、规范,具有以下特点:

(1)轻量,直接通过http协议,而不需要额外的协议,包括post、get、put、delete操作;

(2)面向资源,可读性好、一目了然,具有自解释性;

(3)数据描述简单,一般通过json或者xml进行数据通信。

Restful API充分利用HTTP状态码和请求方法来完成其标准设计,大量运用已有规范实现新的标准,而Django Restful framework是完全按照Restful API标准实现的。

二、Vue的基本介绍

1.前端重要概念

(1)前端工程化

工程化在后端开发中很常见,对于前端开发,工程化也逐步完善成熟,Node.js和webpack的出现推进了前端工程化的发展。

(2)数据双向绑定

数据和页面的双向绑定,修改任何一个,另一个都会同步变化,MVVM也是这个概念,Angular、Vue都实现了数据双向绑定。

(3)组件化开发

做一个组件,只需要导入和组件相关的元素即可,从而加大了项目的纯度。

(4)webpack

Webpack是一个前端资源加载、打包工具。它将根据模块间的依赖关系进行静态分析,然后根据指定的规则生成相应的静态资源。其实现了代码转换,将开发文件转化为基础的HTML、CSS、JavaScript文件等功能。

2.Vue重要概念

(1)Vue全家桶

Vue

Vue.js是一套构建用户界面的渐进式框架,只关注视图层,采用自底向上增量开发的设计,其目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。

Vuex:

用于Vue组件之间的通信。

Vue-Router:

Vue组件之间的跳转,将路径和组件关联。

axios:

在Vue中发送Ajax请求。

(2)ES6和babel

ES6:

ES6,全称ECMAScript 6.0,是JavaScript的一个新版本标准,主要是为了解决ES5的先天不足。

Babel:

是一个转换器,将ES6语法转化成ES5语法,以兼容浏览器。

三、Vue项目结构介绍

一个典型的Vue项目文件结构类似如下:

├─mock                                                 
│  └─mock                                              
└─src                                                  
    ├─api                                              
    ├─axios                                            
    ├─components                                       
    │  ├─common                                        
    │  │  ├─associateFile                              
    │  │  ├─cloud-cooperation                          
    │  │  ├─contextmenu                                
    │  │  ├─control                                    
    │  │  ├─current-loc                                
    │  │  ├─drag                                       
    │  │  ├─layout                                     
    │  │  ├─list-nav                                   
    │  │  ├─list-sort                                  
    │  │  │  └─images                                  
    │  │  ├─loading                                    
    │  │  ├─loading2                                   
    │  │  ├─menu                                       
    │  │  ├─nodata                                     
    │  │  ├─page                                       
    │  │  ├─price-range                                
    │  │  │  └─images                                  
    │  │  ├─product-list                               
    │  │  │  └─images                                  
    │  │  ├─result-list                                
    │  │  └─tag                                        
    │  └─heighchart                                    
    │      ├─bar                                       
    │      │  └─line-bar                               
    │      └─circle                                    
    │          └─circle                                
    ├─router                                           
    ├─static                                           
    │  ├─images                                        
    │  │  ├─footer                                     
    │  │  ├─head                                       
    │  │  ├─indexNew                                   
    │  │  ├─login                                      
    │  │  ├─loginHead                                  
    │  │  ├─new                                        
    │  │  ├─register                                   
    │  │  ├─seriesList                                 
    │  │  └─shopHead                                   
    │  ├─js                                            
    │  └─vendors                                       
    │      └─iview                                     
    │          └─dist                                  
    │              └─styles                            
    │                  └─fonts                         
    ├─store                                            
    ├─styles                                           
    │  └─fonts                                         
    └─views                                            
        ├─app                                          
        ├─cart                                         
        │  └─images                                    
        ├─footer                                       
        │  └─images                                    
        ├─head                                         
        ├─home                                         
        ├─index                                        
        ├─list                                         
        │  ├─current-loc                               
        │  ├─list-nav                                  
        │  ├─list-sort                                 
        │  │  └─images                                 
        │  ├─page                                      
        │  ├─price-range                               
        │  │  └─images                                 
        │  └─product-list                              
        │      └─images                                
        ├─login                                        
        ├─loginHead                                    
        ├─member                                       
        ├─productDetail                                
        │  ├─current-loc                               
        │  └─images                                    
        │      └─images                                
        └─register                                     

其中,src是项目源码,包括:

  • api
    请求网络的API通过此目录实现。
  • axios
    全局拦截等全局设置。
  • components
    项目组件。
  • router
    Vue-Router配置。
  • static
    全局静态资源文件。
  • store
    Vuex存放目录。
  • style
    静态CSS样式。
  • views

所有组件,包括Header、轮播图、新品、导航栏、商品展示、分页、商品详情、个人中心等众多组件,在项目代码中体现为app(入口组件)、cart(购物车组件)、footer(底部组件)、header(顶部组件)、home(主内容组件)、index(首页组件)、list(列表页组件)、login(登录组件)、loginHead(登录页头部组件)、member(个人中心组件)、productDetail(商品详情组件)、register(注册组件)。

本项目的前端部分还包括其他文件,具体目录结构如下:

2345_image_file_copy_1.jpg

前端项目收入整个项目的fresh_online目录下,便于统一管理。

需要安装前端项目的依赖包,直接在fresh_online目录下执行cnpm install并等待安装结束即可,如果目录下生成node_modules目录并且打印出

√ All packages installed (841 packages installed from npm registry, used 38s(network 35s), speed 556.67kB/s, json 731(1.81MB) , tarball 17.06MB)

则安装成功。

相关文章
|
1月前
|
API 开发工具 开发者
【干货满满】电商平台API接口用python调用脚本
这是一个支持淘宝、京东、拼多多、亚马逊等主流电商平台的通用 API 调用 Python 脚本框架,适配 doubao 使用。脚本封装了签名验证、请求处理、异常捕获及限流控制等核心功能,提供统一接口调用方式,便于开发者快速集成与扩展。
|
2月前
|
人工智能 供应链 监控
API驱动的大型电商平台库存优化
在电商快速发展的当下,库存管理面临巨大挑战。API作为核心技术,通过系统间无缝连接与实时数据交换,助力库存优化。本文探讨API如何驱动库存优化,涵盖其原理、关键技术和实际应用,结合代码示例展示API在实时库存监控与智能补货中的作用,并展望未来趋势,为企业提供高效管理策略。
64 0
|
3月前
|
缓存 安全 API
RESTful与GraphQL:电商API接口设计的技术细节与适用场景
本文对比了RESTful与GraphQL这两种主流电商API接口设计方案。RESTful通过资源与HTTP方法定义操作,简单直观但可能引发过度或欠获取数据问题;GraphQL允许客户端精确指定所需字段,提高灵活性和传输效率,但面临深度查询攻击等安全挑战。从性能、灵活性、安全性及适用场景多维度分析,RESTful适合资源导向场景,GraphQL则适用于复杂数据需求。实际开发中需根据业务特点选择合适方案,或结合两者优势,以优化用户体验与系统性能。
|
2月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
130 1
|
3月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
3月前
|
JSON API 数据安全/隐私保护
国内电商平台唯品会api数据接口实操
`vip_api_demo.py` 是一个用于调用唯品会开放平台 API 的 Python 示例代码。它通过 `VipAPI` 类封装了 API 调用逻辑,包括签名生成、参数构造和请求发送等功能。核心功能如下: 1. **签名生成**:按照唯品会 API 规则,对请求参数进行排序、拼接并使用 MD5 加密生成签名。 2. **商品列表接口**:提供 `get_product_list` 方法,支持按分类 ID 获取商品列表,并可指定分页参数。 3. **异常处理**:包含基本的错误捕获机制,确保程序稳定性。
|
3月前
|
存储 数据可视化 数据挖掘
电商数据可视化平台必备的电商API知识科普
电商行业的蓬勃发展使得数据分析与可视化日益重要,而API作为连接数据的核心工具,成为电商数据可视化平台的关键组成部分。本文介绍了电商API的基础概念、分类及其在商品、交易、用户和物流等领域的具体应用,并列举了多个主流电商平台的API资源,如淘宝、京东、顺丰等,涵盖商品详情、订单管理、用户信息及物流追踪等功能。同时,还提供了丰富的免费测试API列表,包括商品搜索、价格查询、优惠券分析等操作,为开发者提供全面的参考,助力实现更高效的数据分析与可视化。
81 0
|
6月前
|
XML JSON API
Understanding RESTful API and Web Services: Key Differences and Use Cases
在现代软件开发中,RESTful API和Web服务均用于实现系统间通信,但各有特点。RESTful API遵循REST原则,主要使用HTTP/HTTPS协议,数据格式多为JSON或XML,适用于无状态通信;而Web服务包括SOAP和REST,常用于基于网络的API,采用标准化方法如WSDL或OpenAPI。理解两者区别有助于选择适合应用需求的解决方案,构建高效、可扩展的应用程序。
|
6月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
6月前
|
数据采集 监控 数据挖掘
京东、淘宝、义乌购等电商平台的Api数据分析
京东、淘宝、义乌购等电商平台的数据分析涵盖数据收集、预处理、分析及应用优化。数据来源包括数据库、日志文件和网络爬虫,通过SQL查询、日志解析和爬虫抓取获取数据。预处理阶段进行数据清洗、缺失值处理和异常值检测。分析方法包括描述性分析、对比分析、漏斗分析等,关注成交金额、转化率等关键指标。最终基于分析结果制定策略并评估效果,持续优化平台运营。