创新实训6月16日 接口2.0
2020-07-14 06:31
76 查看
后台2.0
完善了数据库表结构,增加了platform属性
代码附:
import string from flask import request from flask import Flask, jsonify, render_template from jieba.analyse import extract_tags import utils import decimal import json from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://test:123456@47.98.141.4:3306/innotrain?charset=utf8mb4' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) class rawdata(db.Model): __tablename__ = 'raw_data' id = db.Column(db.Integer,primary_key=True) context = db.Column(db.String()) ds = db.Column(db.String()) # ds = db.Column(db.Date()) topic = db.Column(db.String()) platform = db.Column(db.String()) def __init__(self, context, ds,topic,platform): self.platform = platform self.ds = ds self.topic = topic self.context = context # self.id = id def __repr__(self): return '<rawdata:%s %s %s %s>' % (self.context,self.ds,self.topic,self.platform,self.platform) class emotion_val(db.Model): __tablename__ = 'emotion_val' id = db.Column(db.Integer,primary_key=True) predict= db.Column(db.Integer()) emotion_val = db.Column(db.String()) ds = db.Column(db.String()) platform = db.Column(db.String()) # ds = db.Column(db.Date()) topic = db.Column(db.String()) def __init__(self, emotion_val, ds,topic,predict,platform): self.platform = platform self.emotion_val = emotion_val self.predict = predict self.ds = ds self.topic = topic def __repr__(self): return '<rawdata:%s %s %s %s>' % (self.emotion_val,self.ds,self.topic,self.predict,self.platform) @app.route('/') def hello_world(): return render_template("pyecharts-line.html") #获取预测数据的接口 @app.route('/get_predict') def get_predict(): print(request.values,"0") platform = request.data() print(platform) data = utils.get_predict(platform) ds=[] emotion_val=[] topic = [] for each in data: ds.append(each[0]) emotion_val.append(each[1]) topic.append(each[2]) return jsonify({"ds":ds,"emotion_val":emotion_val,"topic":topic}) #获取预测数据和二次处理后真实数据两者的接口 @app.route('/get_emotionval') def get_emotionval(): data = utils.get_emotion_val() ds=[] emotion_val=[] topic = [] predict = [] for each in data: ds.append(each[0]) emotion_val.append(each[1]) topic.append(each[2]) predict.append(each[3]) return jsonify({"ds":ds,"emotion_val":emotion_val,"topic":topic,"predict":predict}) #获取爬虫爬取数据数据的接口,杨涛用 @app.route('/get_rawdata') def get_rawdata(): data = utils.get_rawdata() ds = [] platform = [] context=[] topic=[] for each in data: print(each) ds.append(each[1]) context.append(each[0]) topic.append(each[2]) platform.append(each[3]) return jsonify({"ds":ds,"context":context,"topic":topic,"platform":platform}) #获取二次处理后真实数据的接口,杨秀辉用 @app.route('/get_midrawdata') def get_midrawdata(): data = utils.get_midrawdata() ds = [] emotion_val=[] topic=[] for each in data: ds.append(each[0]) emotion_val.append(each[1]) topic.append(each[2]) return jsonify({"ds":ds,"emotion_val":emotion_val,"topic":topic}) #上传爬虫爬取数据的接口,李哲荀用 @app.route('/insert_rawdata',methods = ['GET','POST']) def insert_rawdata(): if not request.data: return ('no data!') print("This is a "+request.method+" method!") #先将收到json数据的编码格式从bytes改成utf-8 rawdata_json = request.data.decode('utf-8') print(rawdata_json) #json.loads()将json格式的数据解码为python的dict格式数据 #json.dumps()将python的dict格式的数据编码为json格式数据 rawdata_dict = json.loads(rawdata_json) print(type(rawdata_dict)) for raw in rawdata_dict['data']: # print(raw) db.session.add(rawdata( context=raw['context'], ds=raw['ds'], topic=raw['topic'], platform=raw['platform'])) db.session.commit() return "ok" #上传二次处理数据和预测得到数据的接口,杨涛,杨秀辉用 @app.route('/insert_emotionval',methods = ['GET','POST']) def insert_emotionval(): if not request.data: return ('no data!') print("This is a "+request.method+" method!") #先将收到json数据的编码格式从bytes改成utf-8 emoval_json = request.data.decode('utf-8') print(emoval_json) #json.loads()将json格式的数据解码为python的dict格式数据 #json.dumps()将python的dict格式的数据编码为json格式数据 emoval_dict = json.loads(emoval_json) print(type(emoval_dict)) # print ((rawdata_dict['ds'])) # print(ds) # rawdata=request.data for raw in emoval_dict['data']: # print(raw) db.session.add(emotion_val( emotion_val=raw['emotion_val'], ds=raw['ds'], topic=raw['topic'], predict=raw['predict'], platform=raw['platform'])) db.session.commit() return "ok" @app.route("/time") def get_time(): return utils.get_time() if __name__ == '__main__': app.run()
import time import pymysql import csv def get_time(): time_str = time.strftime("%Y{}%m{}%d{} %X") return time_str.format("年","月","日") def get_conn(): """ :return: 连接,游标 """ # 创建连接 conn = pymysql.connect(host="47.98.141.4", # port=3306, user="test", password="123456", db="innotrain", charset="utf8mb4") # 创建游标 cursor = conn.cursor()# 执行完毕返回的结果集默认以元组显示 return conn, cursor def close_conn(conn, cursor): cursor.close() conn.close() def query(sql,*args): """ 封装通用查询 :param sql: :param args: :return: 返回查询到的结果,((),(),)的形式 """ conn, cursor = get_conn() cursor.execute(sql) # cursor.execute(sql,args) res = cursor.fetchall() close_conn(conn, cursor) return res def get_predict(plat): print(plat) sql = "select ds,emotion_val,topic, platform from emotion_val where predict=1 and platform = plat order by ds" res = query(sql) return res def get_emotion_val(): sql = "select ds,emotion_val,topic,predict from emotion_val order by predict" res = query(sql) return res def get_rawdata(): sql = "select context,ds,topic from raw_data " res = query(sql) return res def get_midrawdata(): sql = "select ds,emotion_val,topic from emotion_val where predict=0 order by ds" res = query(sql) return res # def get_l1_data(): # # sql = "select ds,confirm,suspect,heal,dead from history" # res = query(sql) # return res # # def get_l2_data(): # # sql = "select ds,confirm_add,suspect_add from history" # res = query(sql) # return res #将CSV文件处理为dict在转换为json格式数据 # def dataprocess(file): if __name__ == "__main__": print()
相关文章推荐
- 创新实训博客(26)——接口调用请求汇总(后台管理部分)
- 创新实训博客(25)——接口调用请求汇总(用户基本操作和历史记录相关部分)
- 创新实训——获取帖子接口的实现
- 创新实训——发帖和删帖接口的实现
- 创新实训——用户信息接口的实现
- 创新实训——图片处理接口的实现
- 创新实训——评论接口和点赞接口的实现
- 创新实训博客(15)——Android开发中Kotlin与后端的接口交互
- 创新实训博客(14)——Vue前端与后端的接口交互
- 创新实训博客(29)——接口调用请求汇总(可视化部分)
- 创新实训博客(28)——接口调用请求汇总(App和博客相关部分)
- 创新实训博客(27)——接口调用请求汇总(博客相关部分)
- 创新实训——接口设计
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (二)
- “photo wake-up”创新项目实训第二周总结
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (八)
- selenium 2.0 java 接口简介
- 总结这两天连续干掉的bug In 创新实训 智能自然语言交流系
- (个人)AR电子书系统创新实训第五周(2)
- 创新实训6-9