个人中心数据接口的开发
学习目标
- 能够知道个人中心数据接口的开发步骤
1. 根据sql语句查询个人中心数据
# 个人中心数据接口开发
@route("/center_data.html")
def center_data():
# 响应状态
status = "200 OK";
# 响应头
response_header = [("Server", "PWS2.0"), ("Content-Type", "text/html;charset=utf-8")]
conn = pymysql.connect(host="localhost",
port=3306,
user="root",
password="mysql",
database="stock_db",
charset="utf8")
# 获取游标
cursor = conn.cursor()
# 查询sql语句
sql = '''select i.code, i.short, i.chg,
i.turnover, i.price, i.highs, f.note_info
from info as i inner join focus as f on i.id = f.info_id;'''
# 执行sql
cursor.execute(sql)
# 获取结果集
result = cursor.fetchall()
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
print(result)
2. 将个人中心数据转成json字符串并返回
# 个人中心数据接口开发
@route("/center_data.html")
def center_data():
# 响应状态
status = "200 OK";
# 响应头
response_header = [("Server", "PWS2.0"), ("Content-Type", "text/html;charset=utf-8")]
conn = pymysql.connect(host="localhost",
port=3306,
user="root",
password="mysql",
database="stock_db",
charset="utf8")
# 获取游标
cursor = conn.cursor()
# 查询sql语句
sql = '''select i.code, i.short, i.chg,
i.turnover, i.price, i.highs, f.note_info
from info as i inner join focus as f on i.id = f.info_id;'''
# 执行sql
cursor.execute(sql)
# 获取结果集
result = cursor.fetchall()
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
# 个人中心数据列表
center_data_list = list()
# 遍历每一行数据转成字典
for row in result:
# 创建空的字典
center_dict = dict()
center_dict["code"] = row[0]
center_dict["short"] = row[1]
center_dict["chg"] = row[2]
center_dict["turnover"] = row[3]
center_dict["price"] = str(row[4])
center_dict["highs"] = str(row[5])
center_dict["note_info"] = row[6]
# 添加每个字典信息
center_data_list.append(center_dict)
# 把列表字典转成json字符串, 并在控制台显示
json_str = json.dumps(center_data_list,ensure_ascii=False)
print(json_str)
return status, response_header, json_str
代码说明:
- json.dumps函数把字典转成json字符串
- 函数的第一个参数表示要把指定对象转成json字符串
- 参数的第二个参数ensure_ascii=False表示不使用ascii编码,可以在控制台显示中文。
- 响应头添加Content-Type表示指定数据的编码格式
3. 小结
- web框架程序还可以开发数据接口,为客户端程序提供数据服务。
- 根据sql语句查询数据库
- 把数据转成json字符串返回
- 浏览器通过指定接口地址获取web框架提供的数据。