py3.7连mysql以及方法相互调用

py3.7连mysql以及方法相互调用

py3.7连mysql以及方法相互调用

最近用python写了一个查询数据库的功能。该功能用到的知识点有:1、全局变量的定义。2、方法的互相调用。3、连接mysql

连接mysql

连接mysql用的是MySQLdb,安装方法自请百度,太多了。这里不再赘述。
代码:

#!/usr/bin/python
#encoding=utf-8
import MySQLdb
import string
import GetSqlUtil


db = MySQLdb.connect(
    host="192.168.1.35",  # 主机名
    user="xxxx",     # 用户名
    passwd="xxxx", # 密码
    db="xxxx",
    charset='utf8'
)    # 数据库名称
# 查询前,必须先获取游标
#cur = db.cursor()  ,这个是数组形式返回
cur = db.cursor(cursorclass=MySQLdb.cursors.DictCursor)  #这个是键值对的形式返回,用这个比较方便
# 执行的都是原生SQL语句
cur.execute("select * from t_wiki_cms_template where  TEMPLATE_REAL_STATE=1")

total=0
normal=0;
unnormal=0;
for row in cur.fetchall():
    #print(row['TEMPLATE_NAME'])
    fileName=row['TEMPLATE_FILE_NAME']
    content=row['TEMPLATE_CONTENT']
    chanelId=row['CHANNEL_ID']
    if(".jsp"==fileName[-4:]  ):
        #if('pageEncoding="UTF-8"' in content):
        if(content!=None and (content.find('pageEncoding="UTF-8"')!=-1)):
            normal=normal+1
            #print(str(total)+"正常:"+fileName+" : "+row['TEMPLATE_NAME']+" : "+row['CHANNEL_NAME'])
        else:

            unnormal=unnormal+1

            domainName=GetSqlUtil.getDomainByChanelId(row['CHANNEL_ID']);


            print(str(total)+"不正常:"+fileName+" - 模板名:"+row['TEMPLATE_NAME']+" - 频道名:"+row['CHANNEL_NAME']+" - 域名:"+domainName)
            total=total+1
db.close()
GetSqlUtil.db.close()
print("总数量:"+str(total)+"  正常:"+str(normal)+"  不正常:"+str(unnormal))

上面的代码用到了GetSqlUtil,这是我定义的一个py文件。
参考目录
在这里插入图片描述
GetSqlUtil中用到了全局变量和函数定义,参考代码:

#!/usr/bin/python
#encoding=utf-8
import MySQLdb
import string
db = MySQLdb.connect(
    host="192.168.1.35",  # 主机名
    user="xxxx",     # 用户名
    passwd="xxxx", # 密码
    db="xxxx",
    charset='utf8'
)    # 数据库名称
# 查询前,必须先获取游标
#cur = db.cursor()
cur = db.cursor(cursorclass=MySQLdb.cursors.DictCursor)


def getDomainByChanelId(chanelId):
    global cur   #定义的全局变量
    domainName=""
    cur.execute("SELECT * FROM t_wiki_cms_publish_server_rules WHERE SERVER_RULES_ID=(select  SERVER_RULES_ID   from T_WIKI_CMS_CHANNEL where CHANNEL_ID='"+str(chanelId)+"' AND CHANNEL_STATE=1)")
    for row in cur.fetchall():
        domainName=row['SERVER_DOMAIN']
    #db.close()
    return domainName

总结:从上面的代码来看,实现同样的功能,相对java来说。用python来开发,是简洁高效的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值