python代码创建Mysql数据表和导入Excel表格数据

Python程序员除了Python编程做到烂熟于心之外,也要会一些日常的SQL操作。通常在数据库创建成功之后,就需要创建数据表。

1、Python MySQL创建表

 import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

mycursor.execute("CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))")

检查表是否存在
可以通过使用“SHOW TABLES”语句列出数据库中所有表来检查表是否存在:

检查是否存在,并打印出数据库的表

mycursor.execute("SHOW TABLES")

for x in mycursor:
  print(x)

创建表时,还应该为每条记录创建一个具有唯一键的列。

这可以通过定义PRIMARY KEY来完成。

我们使用语句“INT AUTO_INCREMENT PRIMARY
KEY”,它将为每条记录插入一个唯一的编号。从1开始每新增一个记录增加1。

mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

如果表已存在,请使用ALTER TABLE关键字:

mycursor.execute("ALTER TABLE customers ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")

2、使用使用flask_sqlalchemy连接MySQL数据库并在数据库中创建数据表

SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的 flask 扩展。

数据库的其他配置

在这里插入图片描述

常用的SQLAlchemy字段类型

在这里插入图片描述

常用的SQLAlchemy列选项

在这里插入图片描述

示例代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
import datetime


app = Flask(__name__)
# 设置连接数据库的URL
# 'mysql://MySQL用户名:MySQL密码@127.0.0.1:3306/数据库名称'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False	# # 设置是否跟踪数据库的修改情况,一般不跟踪
app.config['SQLALCHEMY_DATABASE_URI'] = (
        'mysql+pymysql://root:root@localhost/flask'
        )
# 数据库操作时是否显示原始SQL语句,一般都是打开的,因为我们后台要日志
app.config['SQLALCHEMY_ECHO'] = True

# 实例化orm框架的操作对象,后续数据库操作,都要基于操作对象来完成
db = SQLAlchemy(app) # 实例化SQLAlchemy类

# 创建数据表类
# 定义表字段  primary_key:是否为主键  nullable:是否为空值
class Course(db.Model):
    course_id = db.Column(db.BigInteger,nullable=False,primary_key=True)
    product_id = db.Column(db.BigInteger,nullable=False)
    product_type = db.Column(db.Integer, nullable=False)
    product_name = db.Column(db.String(125), nullable=False)
    provider = db.Column(db.String(125), nullable=False)
    score = db.Column(db.Float(2))
    score_level = db.Column(db.Integer)
    learner_count = db.Column(db.Integer)
    lesson_count = db.Column(db.Integer)
    lector_name = db.Column(db.String(125))
    original_price = db.Column(db.Float(2))
    discount_price = db.Column(db.Float(2))
    discount_rate = db.Column(db.Float(2))
    img_url = db.Column(db.String(125))
    big_img_url = db.Column(db.String(125))
    description = db.Column(db.Text)


@app.route('/')
def index():
    return "逃逸的卡路里"

if __name__ == "__main__":
    app.run(debug=True)

读取Excel表格数据导入到数据库表

import pymysql
import xlrd

# 连接数据库
conn = pymysql.connect(host='localhost', user='root', passwd='root', db='flask', charset='utf8')
cursor = conn.cursor() # 创建游标

# 读取excel中内容到数据库
workbook = xlrd.open_workbook('./明日学院Python课程数据2019-09-25.xlsx')
sheet = workbook.sheet_by_index(0) # 根据索引获取sheet
data_list = []
nrows = sheet.nrows  # 获取行数
ncols = sheet.ncols  # 获取列数

# 遍历每一行数据
for i in range(1, nrows):
    # 在列表中第一个元素为0,方便后面使用insert插入数据
    row_values = [0]+ sheet.row_values(i)
    # 如果折扣价不存在,设置为None
    if not row_values[9]:
        row_values[9] = None
    # 如果折扣率不存在,设置为None
    if not row_values[10]:
        row_values[10] = None
    # 追加到列表中
    data_list.append(row_values)

# 拼接'%s'
val = '%s,'*(ncols+1)
# 批量添加数据
cursor.executemany(f"insert into course values({val[:-1]});", data_list)
conn.commit()   # 提交数据
cursor.close()  # 关闭游标
conn.close()    # 关闭数据库连接

3、总结

以上就是今天分享的Python通过两种方式创建MySQL数据库表的经验分享,希望对看到的小伙伴有帮助。有问题可以留言讨论。
相关文章推荐:python学习之flask sqlalchemy介绍和使用 表操作增删查改

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逃逸的卡路里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值