基于VUE的水果清单
基于VUE的水果清单
- 渲染页面(把动态的内容填到页面上)的方式
后端渲染(服务器侧渲染) - 如果服务器的并发请求量很大,服务器会不堪重负
端代码和后端代码混在了一起,没有完全分开 - 跨域问题
浏览器的同源策略会阻止JavaScript代码回访其他网站的数据,
如果希望别的网站能够跨域请求到我们提供的JSON数据接口,就必须进行跨域设置。
前端渲染(用户侧渲染)—> 前后端分离的开发
要点:
1. 服务器不负责渲染页面,只负责提供页面需要的数据(JSON)
2. 浏览器通过JavaScript代码实现对页面的渲染 —> Vue
优点:
1. 服务器负担减小,渲染页面的操作在用户端来完成
2. 前端和后端代码完全分离,相互不牵扯,更有利于团队开发
缺点:
1. 对于移动终端来说,耗电量会增加
2. 如果用户终端性能不理想,那么用户体验可能会比较糟糕
代码如下:
import io
from urllib.parse import quoteimport flask
import openpyxl
import pymysql
from flask import make_response, request, redirect
from flask_cors import CORSfrom utils import get_connectionapp = flask.Flask(__name__)
CORS(app)@app.route('/')
def show_index():return redirect('/static/index.html')@app.route('/api/fruits')
def get_fruits():conn = get_connection()try:with conn.cursor(pymysql.cursors.DictCursor) as cursor:cursor.execute('select frt_id as id, frt_name as name, frt_image as image, ''frt_intro as intro, frt_favs as favs from tb_fruit')fruits = cursor.fetchall()result = {'code': 10000, 'fruits': fruits}except pymysql.MySQLError as err:print(err)result = {'code': 10001, 'fruits': []}finally:conn.close()return result@app.route('/export')
def export_excel():wb = openpyxl.Workbook()sheet = wb.activesheet.append(('编号', '水果名称', '水果介绍', '点赞数'))conn = get_connection()try:with conn.cursor() as cursor:cursor.execute('select frt_id, frt_name, frt_intro, frt_favs from tb_fruit')row_data = cursor.fetchone()while row_data:sheet.append(row_data)row_data = cursor.fetchone()except pymysql.MySQLError as err:print(err)finally:conn.close()buffer = io.BytesIO()wb.save(buffer)resp = make_response(buffer.getvalue())resp.headers['content-type'] = 'application/vnd.ms-excel'filename = quote('水果清单.xlsx')resp.headers['content-disposition'] = f'attachment; filename="{filename}"'return resp@app.route('/api/delete')
def delete_fruit():fruit_id = request.args.get('id')conn = get_connection()try:with conn.cursor() as cursor:cursor.execute('delete from tb_fruit where frt_id=%s', (fruit_id, ))conn.commit()hint = {'code': 10000, 'message': '操作成功'}except pymysql.MySQLError as err:print(err)hint = {'code': 10001, 'message': '操作失败'}conn.rollback()finally:conn.close()return hint@app.route('/api/like')
def like_fruit():fruit_id = request.args.get('id')conn = get_connection()try:with conn.cursor() as cursor:cursor.execute('update tb_fruit set frt_favs=frt_favs+1 where frt_id=%s',(fruit_id, ))conn.commit()hint = {'code': 10000, 'message': '操作成功'}except pymysql.MySQLError as err:print(err)hint = {'code': 10001, 'message': '操作失败'}conn.rollback()finally:conn.close()return hintif __name__ == '__main__':app.run(host='localhost', port=8000, debug=True)
a.展示效果图:
b.数据库图:
c.xlsx表格:
总结:
Vue.js动态渲染应用在信息化时代,同时给我们在生活与工作中带来了太多的追溯。
基于VUE的水果清单相关推荐
- 基于javaweb的水果生鲜商城系统(java+springboot+mybatis+vue+mysql)
基于javaweb的水果生鲜商城系统(java+springboot+mybatis+vue+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclip ...
- 基于Vue JS, Webpack 以及Material Design的渐进式web应用 [Part 1]
基于Vue JS, Webpack 以及Material Design的渐进式web应用 [Part 1] 原文:基于Vue JS, Webpack 以及Material Design的渐进式web应 ...
- [译]基于Vue JS, Webpack 以及Material Design的渐进式web应用 [Part 1]
渐进式web应用是大势所趋.越来越多的大公司开始使用这些技术(比如推特:https://mobile.twitter.com/). 想象你可以在地铁中浏览一个web应用,这个应用能够向用户推送通知并且 ...
- 计算机毕设(附源码)JAVA-SSM基于智慧农业的水果销售系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- (附源码)计算机毕业设计SSM基于智慧农业的水果销售系统
(附源码)计算机毕业设计SSM基于智慧农业的水果销售系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe( ...
- 基于图像处理的水果自助售卖系统(自助水果售卖机)
目录 第一章 概述 1.1 发展概要 1.2 国内外研究现状 1.3 研究目的和意义 1.4 方案介绍 第二章 软件设计方案 2.1 整体程序框架 2.2 opencv识别水果算法 2.2.1算法整体 ...
- 基于 Vue 的学生社团线上管理平台开发与设计
0 引言 近年来, 各高校为丰富学生的校园生活. 培养学生的个性, 社团与社团人数增加迅速, 需要处理的各类信息也层出不穷, 传统的管理方式已经不利于快捷地处理这些问题. 因此管理不便. 信息错综复杂 ...
- 基于JAVA智慧农业水果销售系统计算机毕业设计源码+数据库+lw文档+系统+部署
基于JAVA智慧农业水果销售系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA智慧农业水果销售系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 ...
- 基于Vue的小日历(支持按周切换)
基于Vue的日历小功能,可根据实际开发情况按每年.每月.每周.进行切换 <template><div class="date"><!-- 年份 月份 ...
最新文章
- java链式编程_Java 链式编程 和 lombok 实现链式编程
- js json对象转字符串_Mock.js模拟数据实现前端独立开发
- 配置tomcat支持http delete和put的方法
- 收藏 | LSTM模型结构的可视化
- 【Android Demo】简单手机通讯录
- 《写给大家看的设计书》封面评选结果揭晓
- python groupby填充缺失值_熊猫中的Groupby,用[]填充缺失的组
- 宝藏又小众的金属板材质贴图素材网站分享
- 传智播客python培训视频教程下载
- Diffusion Models扩散模型与深度学习(数学原理和代码解读)
- 野蛮人传教士问题(上)
- 计算机用户名怎么注册,微软账号怎么注册 Microsoft帐户注册使用教程
- Python中print的用法
- 投资、投机、赌博、交易
- TikZ做思维导图并插入幻灯片
- 《疯狂动物城》水彩画
- 湖人vs马刺第一场艰难取胜
- WhatsApp 公开群营销方案
- 黑龙江省二计算机考试教程,黑龙江省2019下半年计算机二级考试教程:VB语言程序设计...
- 给word添加书签目录,也就是超链接
热门文章
- html css的简单学习
- MFC实现CTRL C、CTRL V等功能
- HI3556V200 Linux+Liteos双系统学习(4)----双系统通信 IPCM/virt_tty/sharefs
- CodeCraft-19 and Codeforces Round #537 (Div. 2)解题报告
- RTKLIB ppp rtk_post
- 自强创新之路 打造真正上网不花钱8500WN已面世
- 学好日语两年之内到日本去挣钱
- n个重复数字求和问题
- Linux 应用 environ环境变量操作函数
- 条件随机场介绍(5)—— An Introduction to Conditional Random Fields