先来贴一窜代码让大家理解前端/后端/数据库的工作原理,

首先简要说明:前端向后端请求数据,后端根据前端请求数据的类别分析其需求,并连接到数据库获取相应数据:

来一段简单的实例代码模拟淘宝商城:

前端代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
<script src="js/socket.io.js" type="text/javascript" charset="utf-8"></script>
<script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
<div class="conList">
<div class="content" v-for='item in contentList'>
<h3>{{item[]}}</h3>
<img :src="item[2]"/>
<p>价格:{{item[]}}</p>
<p>数量:{{item[]}}</p>
</div>
</div>
</div> <script type="text/javascript">
      //连接到本地服务器
var socket=io('http://localhost:7444')
var app=new Vue({
el:'#app',
data:{
contentList:[],
}, mounted:function(){
//数据加载后向后台请求数据,请求数据名称为getContentList
socket.emit('message','getContentList') } }) //监听后端返回的数据
socket.on('reply',function(data){
//如果返回数据类型为contentList则做如下操作
if (data.type=='getContentList'){
app.contentList=data.data
} // console.log('data',data.data)
})
</script>
</body>
</html>

后端socketio框架服务器:

import  socketio
import eventlet
import random
import pymysql # 实例化socketio对象
sio=socketio.Server() @sio.on('connect')
def connect(sid,environ):
print('environ123',environ) # 监听前端传入的请求数据
# 根据请求数据连接数据库获取目标数据
@sio.on('message')
def message(sid,data):
print('message',data)
if data=='getContentList':
# 连接数据库
db=pymysql.connect('localhost','root','','python1')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor=db.cursor()
#mysql语句
sql='select item_id,item_title,item_image,item_price,num from tb_cart;'
# 执行sql语句
cursor.execute(sql)
# 获取所有游标
data1=cursor.fetchall()
# 因为data1为元组,到传到前端只能读取到一条信息,所以要转成列表
data=list(data1)
# 给前端返回数据标名数据类型,前端好区分需求数据
content={'type':'getContentList','data':data}
print(data,'')
# 将整理好的数据返回到前端
sio.emit('reply',content) @sio.on('disconnect')
def disconnect(sid):
print('disconnect123',sid) if __name__=='__main__':
# sio通过middleware转为应用服务
app=socketio.Middleware(sio) # 依赖eventlet网关服务器
eventlet.wsgi.server(eventlet.listen(('',)),app)

python后端从数据库请求数据给到前端的具体实现的更多相关文章

  1. python后端将svc文件数据读入数据库具体实现

    如何用python将svc文件的数据读入到MySQL数据库里,在此直接上代码了,感兴趣的朋友可以贴代码测试: import pandas as pd import os from sqlalchemy ...

  2. echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端

    1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小de ...

  3. 使用python将mysql数据库的数据转换为json数据

    由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问M ...

  4. 使用python脚本从数据库导出数据到excel

    python从数据库导出数据到excel 最近需要从数据库里导出一些数据到excel,刚开始我是使用下面的命令 select * from xxx where xxx into outfile 'xx ...

  5. Python向mysql数据库插入数据

    一.向表tcolor中插入数据的主要流程如下: import datetimeimport pymysql.cursorsconnection = pymysql.connect(host='loca ...

  6. 【转】用python比对数据库表数据的脚本

    最近在做一个数据库异构复制的项目,客户表示需要一个数据比对的工具,我就自己写了一个异构数据库的比对python脚本.这个比对脚本只能比对数量,不能比对具体的记录.使用的sql语句也是最基础的selec ...

  7. 三、Python系列——Pandas数据库读取数据

    Pandas主要先读取表格类型的数据,然后进行分析. import pandas as pd# 由于是用pandas模块操作数据,因此不用在路径前加open,否则就是python直接打开文件,可能还会 ...

  8. Python连接MySQL数据库获取数据绘制柱状图

    一.Python通过pymysql包获取MySQL数据库中的数据(没有对应包的可以通过pip install pymysql 安装对应的包) import matplotlib.pyplot as p ...

  9. 用Python向MySQL数据库插入数据

    最近一直在学习MySQL数据库,很感兴趣.这次我做了一个简单的尝试,使用Python3.4与MySQL数据库进行交互,将一份从雪球网上下载的某股票数据上传至MySQL数据库.仅为初学者提供参考,高手请 ...

随机推荐

  1. semantic ui框架学习笔记一

    面包屑导航 面包屑导航经常用于多个栏目下的内容管理,是web页面里比较常用的组合.例如: <div class="ui breadcrumb"> <a class ...

  2. bcftools合并vcf文件

    见命令: bcftools merge A.vcf.gz B.vcf.gz C.vcf.gz -Oz -o ABC.vcf.gz 参考链接:http://vcftools.sourceforge.ne ...

  3. 运用tp5上传图片,并生成缩略图

    最近想做个相册,需要用到上传图像,并且考虑到性能问题,还要生成缩略图,就学习下.在网上看了很多大神写的文章,经过各种调试总算出来了,分享下.不好之处,多多指教 ​ ​ ps:运用tp5图片类生成缩略图 ...

  4. python: 基本知识(二)

    1.set() set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. x = set('hello’) y = set('world') x ---- ...

  5. Shell 同步时间脚本

    Linux系统同步时间脚本 Linux操作系统,如果时间和网络时间差距太大的话.可能会导致程序,进程启动不了.所以linux系统时间同步显得尤为重要,本文在借鉴网上众多资料后,以centos_6.X系 ...

  6. JDBC工具类

    package com.shundong.uitl; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...

  7. 缓存淘汰策略之LRU

    LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”. 1. 新数据插入到链表头部: ...

  8. 机器学习算法 Python&R 速查表

    sklearn实战-乳腺癌细胞数据挖掘( 博主亲自录制) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...

  9. MHA环境搭建

    准备工作 数据库架构 角色 ip地址 主机名 server_id Master Slave1 Slave2 配置三台服务器ssh免秘钥认证 ssh-keygen -t rsa ssh-copy-id ...

  10. 【英文文档】 Installing Go from source Go语言官方编译指南 2019.02.27

    Introduction Go is an open source project, distributed under a BSD-style license. This document expl ...