热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用FlaskSQLAlchemy将csv、json格式数据插入mysql数据库

文章目录一、获取Flask、SQLAlchemy实例,绑定Flask实例二、插入csv文件中的数据1.声明orm关系映射2.插入数据3.效果三、插入json中的数据1

文章目录

    • 一、获取Flask、SQLAlchemy实例,绑定Flask实例
    • 二、插入csv文件中的数据
      • 1.声明orm关系映射
      • 2.插入数据
      • 3. 效果
    • 三、插入json中的数据
      • 1.ORM关系映射
      • 2.插入数据
      • 3.效果










一、获取Flask、SQLAlchemy实例,绑定Flask实例

db = SQLAlchemy()
db.init_app(app)

其中app来自工厂函数

def create_app(app):app = Flask(__name__)app.config.from_object(Config)config_extensions(app)return app





二、插入csv文件中的数据

数据文件:mysql.csv(h3c套一提供数据)

1.声明orm关系映射

# -*- coding:utf-8 -*-
# Created by ZhaoWen on 2020/10/25from app.models import dbclass Tbl_hotel_test(db.Model):__tablename__ = 'tbl_hotel_test'seq = db.Column(db.String(30),primary_key=True) #SEQhotel_name = db.Column(db.String(100)) #酒店名称country = db.Column(db.String(50)) #国家province = db.Column(db.String(50)) #省份city = db.Column(db.String(50)) #城市business_district = db.Column(db.String(100)) #商圈start = db.Column(db.String(30)) #星级department = db.Column(db.String(50)) #业务部门rooms = db.Column(db.Integer) #房间数字photos = db.Column(db.Integer) #图片数score = db.Column(db.DECIMAL(15,12)) #评分content = db.Column(db.Integer) #评论数city_avg_night = db.Column(db.DECIMAL(6,2)) #城市平均实住间夜hotel_total_order = db.Column(db.Integer) #酒店总订单hotel_total_night = db.Column(db.Integer) # 酒店总间夜hotel_right_order = db.Column(db.Integer) # 酒店实住订单hotel_right_night = db.Column(db.Integer) # 酒店实住间夜hotel_direct_order = db.Column(db.Integer) #酒店直销订单hotel_direct_night = db.Column(db.Integer) #酒店直销间夜hotel_direct_right_order = db.Column(db.Integer) #酒店直销实住订单hotel_direct_right_night = db.Column(db.Integer) #酒店直销实住间夜hotel_direct_refuse_order = db.Column(db.Integer) #酒店直销拒单hotel_direct_refuse_pie = db.Column(db.String(20)) #酒店直销拒单率city_direct_order = db.Column(db.Integer) #城市直销订单city_direct_Refuse_pie = db.Column(db.String(20)) #城市直销拒单率directcity_issmall = db.Column(db.Integer) #拒单率是否小于等于直销城市均值



2.插入数据

@main_print.route('/addData')
def main_add():print('开始插入')with open('app/static/data/mysql.csv','r',encoding='utf-8') as f:reader = csv.reader(f)if reader != None:for i in reader:hotel = Tbl_hotel_test(seq=i[0],hotel_name=i[1],country=i[2],province=i[3],city=i[4],business_district=i[5],start=i[6],department=i[7],rooms=i[8],photos=i[9],score=i[10],content=i[11],city_avg_night=i[12],hotel_total_order=i[13],hotel_total_night=i[14],hotel_right_order=i[15],hotel_right_night=i[16],hotel_direct_order=i[17],hotel_direct_night=i[18],hotel_direct_right_order=i[19],hotel_direct_right_night=i[20],hotel_direct_refuse_order=i[21],hotel_direct_refuse_pie=i[22],city_direct_order=i[23],city_direct_Refuse_pie=i[24],directcity_issmall=i[25])db.session.add(hotel)# return render_template('/test/test-data.html',reader = reader)db.session.commit()return render_template('/test/sucess.html',content='插入成功')return ''



3. 效果

在这里插入图片描述





三、插入json中的数据


1.ORM关系映射

# -*- coding:utf-8 -*-
# Created by ZhaoWen on 2020/10/25from app.models import db'''
城市,公司全名,公司ID,公司简称,公司大小,公司所在商区,职位所属 ,教育要求,公司所属领域 ,职位ID,职位福利,职位名称,薪水,工作年限要求
'''
class Tbl_zp(db.Model):__tablename__ = 'tbl_zp_test'id = db.Column(db.Integer,primary_key=True,autoincrement=True) #序号company_id = db.Column(db.Integer) # 公司idcity = db.Column(db.String(20)) # 城市conpany_name = db.Column(db.String(50)) # 公司全名conpany_simple_name = db.Column(db.String(20)) # 公司简称conpany_size = db.Column(db.String(20)) # 公司大小conpany_area = db.Column(db.String(50)) #公司所在商圈job_category = db.Column(db.String(20)) #职位所属分类school_level = db.Column(db.String(10)) #教育要求conpany_category = db.Column(db.String(20)) # 公司所属领域job_id = db.Column(db.String(20)) #职位idjob_get = db.Column(db.String(200)) # 职位福利job_name = db.Column(db.String(50)) # 职位名称job_salary = db.Column(db.String(20)) # 薪资job_year = db.Column(db.String(50)) #工作年限要求



2.插入数据

@main_print.route('/addData2')
def main_add2():print('开始插入')result = []with open('app/static/data/zpdata.json',encoding='utf-8') as f:result.append(json.load(f))if result != None:for r in result:for i in r:'''城市,公司全名,公司ID,公司简称,公司大小,公司所在商区,职位所属 ,教育要求,公司所属领域 ,职位ID,职位福利,职位名称,薪水,工作年限要求'''try:zp = Tbl_zp(city=i['城市'], conpany_name=i['公司全名'], company_id=i['公司ID'],conpany_simple_name=i['公司简称'], conpany_size=i['公司大小'], conpany_area=i['公司所在商区'], job_category=i['职位所属'],school_level=i['教育要求'], conpany_category=i['公司所属领域'], job_id=i['职位ID'],job_get=i['职位福利'],job_name=i['职位名称'], job_salary=i['薪水'], job_year=i['工作年限要求'])db.session.add(zp)except:db.session.delete(zp)db.session.commit()# return render_template('test/json-show.html',result = result)return render_template('/test/sucess.html', content='插入成功')return ''



3.效果

在这里插入图片描述


推荐阅读
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • Ext JS MVC系列一:环境搭建与框架概览
    本文主要介绍了如何在项目中使用Ext JS 4作为前端框架,并详细讲解了Ext JS 4的MVC开发模式。文章将从项目目录结构、相关CSS和JS文件的引用以及MVC框架的整体认识三个方面进行总结。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
author-avatar
水晶玲珑9261996
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有