需求背景
为了做一个公司局域网内的系统,需要获取一些既有的网内Mysql中的表数据。
准备工作- 导入pymysql包:pip install pymysql
import pymysql
import pandas as pd
import sqlalchemy
from sqlalchemy import create_engine
def get_data_from_fss(user,password,db,port=3306,host='127.0.0.1'):
conn = pymysql.connect(
host = host,
port = port,
user = user,
password = password,
db = db,
charset="utf8"
)
cursor = conn.cursor()
sql = "select * from gm_curoptiondata"
res=cursor.execute(sql)
print(res)
df = pd.read_sql(sql=sql, con=conn)
print(df)
cursor.close()
conn.close()
if res:
print("登录成功")
else:
print('登录失败')
get_data_from_fss(user='ro',password='x99',db='x99sys')
代码解释
- conn中的参数等调试成功之后可以参数化,sql内容也可以参数化,今后调用起来就方便了。
- 把host和port这种基本不会变的参数设置默认值。
- res返回的其实是select后得到的记录条数,这里纯粹拿来判断是否连接成功,不要也可以。
- df用来接收sql查询结果转化来的dataframe,sql engine就是conn.