开发一个模块create_app.py,并请你定义一个名为db_log的方法,该模块功能要求如下:
1. 调用该模块的方法,通过实例向该方法输入2个字符串实参 db_log( fullappname, username )
其中需要说明的是fullappname的结构大致如下:
包名-版本号-时间戳.后缀名
ebiz-mms-task-service-1.0.2-SNAPSHOT-201505121344.zip
cxb-service-2.0.0-201505121337.war
gubaoer-weixin-1.0.3-Release-201505120138.war
2. 截取其中的appname并把它放入一个testclass4数据库中的AppInfo表里,并且记录相应的状态。
Appinfo表结构
{
appname ,varchar(200);
username , varchar(20);
result , varchar(10);
timeapplex, varchar(200);
}
也就是说每次调用db_log( fullappname, username ),都会在数据库中把正确的fullappname和结果记录在表中,如果匹配成功result为“Success”;如果没有匹配则为“Failed”
脚本如下:
#!/usr/bin/python
#coding:utf8
import re, MySQLdb
def db_log(fullappname,username):
#匹配数据
re_appname = re.compile(r"(\S+)-\d{1}\.\d{1}\.\d{1}")
re_timeapplex = re.compile(r"-(\d{12})\.")
appname = "".join(re_appname.findall(fullappname))
timeapplex = "".join(re_timeapplex.findall(fullappname))
if appname.strip()=='' or timeapplex.strip()=='':
result='Failed'
else:
result='Success'
#插入数据
conn =MySQLdb.connect(host='192.168.70.148',user='root',passwd='1234!@#$qwer',db='testclass4',charset='utf8')
cursor = conn.cursor()
db_table = "create table if not exists AppInfo(appname varchar(200), username varchar(20), timeapplex varchar(200), result varchar(10))"
cursor.execute(db_table)
db_value = "insert into AppInfo(appname, username, timeapplex, result) values ('%s', '%s', '%s', '%s')" % (appname, username, timeapplex, result)
cursor.execute(db_value)
cursor.close()
conn.close()
if __name__ == "__main__":
db_log('cxb-service-201505121337.war','li.kelonsen')
db_log('1.0.2-SNAPSHOT-201505121344.zip','li.kelonsen')
db_log('gubaoer-weixin-1.0.3-Release.war','li.kelonsen')