《软件需求》阅读笔记05和jupyterLab学习第一天
一、阅读笔记
从客户角度审视需求
1、软件客户的需求权利:期望业务分析师使用白己的语言、期望业务分析师了解自己的业务和日标、希望业务分析师用适合的形式记录需求、收到需求实践和交忖物的想关解释、期望有一个彼此尊重的环境、聆听关于需求以及解决方案的建议和替代方案、描述能提高产品易用性的特性、了解调整哪些需求可以实现复用,加速产品开发、收到满足白己功能需求和质量期望的系统
2、软件客户的需求责任:向业务分析师和开发人员传愤白己的业务知识、准备足够长的时间用来澄清需求、提供具体而准确的需求猫述、被问到有关需求的问题时及时作出决策、尊重开发人员对需求可行性和成本的估算、和开发人员协作设置符合实际的需求优先级、评审需求和评估原型、设定验收条件及时沟通需求变更、尊重需求开发流程
3、客户:直接用户、问接用户、提供业务需求的客户、客户代理
二、jupyterLab运行.py文件
这里的test.py是寒假在家里是学习的疫情爬取并导入mysql中
首先要在cmd控制台,下载安装PyMySQL ,PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库
pip install pymysql
jupyterLab中运行.py文件
需要在运行的name.py文件目录页面中,新建python文件也就是.ipynb文件
%load test2.py
输入上述语句(即 载入代码)
加载完后运行代码
%run test2.py
这里附上test.py代码
import time import requests import pymysql def build_connection_from_sourcedb(): return pymysql.connect(host="localhost",database="sys",user="root",password="123456",port=3306,charset='utf8') def get_province_list(): conn = build_connection_from_sourcedb() cur = conn.cursor() sql = "select province_short_name from dict_zone_province" # 请注意数据表中应事先存储此数据. cur.execute(sql) result = cur.fetchall() cur.close() conn.close() province_list = [] for i in result: province_list.append(str(i[0])) return province_list ############################################################### # 目标数据库操作 ############################################################### def target_database_operation(sql): conn = build_connection_from_sourcedb() cur = conn.cursor() cur.execute(sql) conn.commit() cur.close() conn.close() def record_time_slot(): return time.strftime("%m.%d") def delta_load(): today = record_time_slot() url_prefix = "https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?province=" province_list = get_province_list() province_list.append("香港") province_list.append("澳门") province_list.append("台湾") i = 0 len_province_list = len(province_list) conn = build_connection_from_sourcedb() cur = conn.cursor() sql_prefix = "insert into info_copy1(Date,Province,Confirmed_num,Yisi_num,Cured_num,Dead_num) values('" sql_prefix_all = "insert into ncovi2019_daily_all(date,province,confirm,dead,heal,confirm_add) values('" while i < len_province_list: url = url_prefix + province_list[i] response = requests.get(url) data_province_i = response.json()["data"] len_data_province_i = len(data_province_i) j = 0 while j < len_data_province_i: Date = str(data_province_i[j]["date"]) Province = str(data_province_i[j]["province"]) Confirmed_num = str(data_province_i[j]["confirm"]) Yisi_num = str(data_province_i[j]["confirm_add"]) Dead_num = str(data_province_i[j]["dead"]) Cured_num = str(data_province_i[j]["heal"]) # 如果是今天,那么插入数据到ncovi2019_daily if today == Date: fields = Date + "','" + Province + "'," + Confirmed_num + "," + Yisi_num + "," + Dead_num + "," + Cured_num +")" sql = sql_prefix + fields print(sql) cur.execute(sql) Date = "" Province = "" Confirmed_num = "" Yisi_num = "" Dead_num = "" Cured_num = "" j = j + 1 conn.commit() print("第",str(i),"个省份-",province_list[i],"的"+today+"的疫情数据已插入ncovi2019_daily") i = i + 1 target_database_operation("delete from ncovi2019_daily_all where date = '"+today+"'") print("今天"+today+"的数据已经从ncovi2019_daily_all表中删除") # 在ncovi2019_daily 中插入全国汇总数 print("将今天的数据汇总插入到ncovi2019_daily") sql = """ insert into info_copy1(Date,Province,Confirmed_num,Yisi_num,Cured_num,Dead_num) SELECT Date, '全国' as Province, sum(Confirmed_num) AS Confirmed_num, sum(Yisi_num) AS Yisi_num, sum(Cured_num) AS Cured_num, sum(Dead_num) AS Dead_num, FROM info_copy1 GROUP BY Date ORDER BY 1 """ cur.execute(sql) conn.commit() print("将今天的数据插入到ncovi2019_daily_all") sql_today = """ insert into ncovi2019_daily_all(date,province,confirm,dead,heal,confirm_add) SELECT date, province as province, confirm AS confirm, dead AS dead, heal AS heal, confirm_add AS confirm_add FROM ncovi2019_daily where province != '全国' """ print("上步结束后进行全国汇总") cur.execute(sql_today) conn.commit() sql_all_summary = """ insert into ncovi2019_daily_all(date,province,confirm,dead,heal,confirm_add) SELECT date, '全国' as province, sum(confirm) AS confirm, sum(dead) AS dead, sum(heal) AS heal, sum(confirm_add) AS confirm_add FROM ncovi2019_daily_all where province != '全国' GROUP BY date ORDER BY 1 """ cur.execute(sql_all_summary) conn.commit() print("全国疫情数据已汇总插入ncovi2019_daily_all") target_database_operation("update info_copy1 set report_date = Date(concat('2020',left(Date,2),right(Date,2))) ") target_database_operation("update ncovi2019_daily_all set report_date = date(concat('2020',left(date,2),right(date,2))) ") cur.close() conn.close() if __name__ == "__main__": print("今天日期:"+record_time_slot()) target_database_operation("truncate table info_copy1") print("清空ncovi2019_daily") delta_load()
这里需要先建好表dict_zone_province和info_copy1
运行代码后