• python-异常处理&操作数据库&网络编程


    处理异常

     1 money = 1000
     2 num = input('Please enter a num:')
     3 try:
     4     num = float(num)
     5     res = money/num
     6 
     7 except Exception as e:#能获取到所有的异常
     8 # except ValueError as e:#单个异常,出现异常了,就走except下面的代码
     9 #     # print(e)
    10     print('你出现异常了')
    11     print('你输入的价格不合法。。')
    12 # except ZeroDivisionError as e:#单个异常
    13 #     print('除数不能为0')
    14 else:#没有出现异常
    15     money-=num
    16     print('你的余额是%s'%money)
    17 finally:#无论是否有异常都会执行
    18     print('dddddd')

     封装操作redis

     1 import redis
     2 
     3 class MyRedis:
     4     def __init__(self,host,password,port=6378,db=0):
     5         self.r = redis.Redis(host=host,password=password,port=port,db=db)
     6 
     7     def op_str(self,k,v=None,ex=-1):
     8         if v:
     9             self.r.set(k,v,ex)#set
    10         else:
    11             res = self.r.get(k)
    12             if res:
    13                 return res.decode()
    14 
    15     def op_hash(self,name,k=None):
    16         if k:#判断取单个值
    17            res = self.r.hget(name,k)
    18            if res:
    19                return res.decode()
    20         else:#取所有的值
    21             res = {}
    22             for k,v in self.r.hgetall(name).items():
    23                 res[k.decode()]=v.decode()
    24             return res

    封装操作mysql

     1 import pymysql
     2 
     3 class MyDb:
     4     def __init__(self,host,password,user,db,port=3306,charset='utf8',autocommit=True):
     5         try:
     6             self.coon = pymysql.connect(host=host,password=password,
     7                                     user=user,db=db,port=port,
     8                                     charset=charset,autocommit=autocommit)
     9         except Exception as e:
    10             print('数据库连接失败!错误信息是%s'%e)
    11             raise Exception('数据库连接失败!错误信息是%s'%e)
    12         else:
    13             self.cur = self.coon.cursor(pymysql.cursors.DictCursor)
    14 
    15     def select_all(self,sql):
    16         try:
    17             self.cur.execute(sql)
    18         except Exception as e:
    19            res = 'sql语句错误,%s
    ,错误的sql是【%s】'%(e,sql)
    20            print(res)
    21         else:
    22             res = self.cur.fetchall()
    23         return res
    24     def select_one(self,sql):
    25         try:
    26             self.cur.execute(sql)
    27         except Exception as e:
    28            res = 'sql语句错误,%s
    ,错误的sql是【%s】'%(e,sql)
    29            print(res)
    30            return res
    31         else:
    32             res = self.cur.fetchone()
    33         return res
    34 
    35 
    36 def other_sql(self, sql):
    37     try:
    38         self.cur.execute(sql)
    39     except Exception as e:
    40         res = 'sql语句错误,%s
    ,错误的sql是【%s】' % (e, sql)
    41         print(res)
    42         return res
    43 def close(self):
    44     print('关闭了!')
    45     self.cur.close()
    46     self.coon.close()

    封装操作oracle

     1 import cx_Oracle
     2 class MyOracle:#操作oracle数据库
     3     def __init__(self,username,password,host,port,instance):
     4         try:
     5             Log.info('连接oracle数据库')
     6             self.conn = cx_Oracle.connect("%s/%s@%s:%s/%s" % (username,password,host,port,instance))
     7             self.cursor = self.conn.cursor()
     8         except Exception as e:
     9             Log.error("数据库连接出错了!", e)
    10     def execute(self,sql):
    11         try:
    12             self.cursor.execute(sql)
    13             self.conn.commit()
    14         except Exception as e:
    15             Log.error("sql语句%s出错了!"%sql, e)
    16 
    17     def fetchone(self,sql):
    18         try:
    19             self.cursor.execute(sql)
    20         except Exception as e:
    21             Log.error("sql语句%s出错了!"%sql, e)
    22         else:
    23             return self.cursor.fetchone()
    24 
    25     def fetchall(self, sql):
    26         try:
    27             self.cursor.execute(sql)
    28         except Exception as e:
    29             Log.error('sql语句有误!%s' % e)
    30         else:
    31             return self.cursor.fetchall()
    32 
    33     def table_exists(self, table_name):
    34         sql = "select count(*) from user_tables where table_name =upper('%s')" % table_name
    35         if self.fetchone(sql):
    36             return True
    37 
    38     def close(self):
    39         self.cursor.close()
    40         self.conn.close()

    网络编程:抓取一个群里的qq头像

     1 import requests,pymongo,os
     2 
     3 url = "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members"
     4 
     5 data = {"gc":728755825,"st":0,"end":200,"sort":0,"bkn":729730748}
     6 header = {'Cookie':'pgv_pvi=4788783104; pgv_si=s6143795200; _qpsvr_localtk=0.862307479956725; pt2gguin=o1334933924; uin=o1334933924; skey=@kGLYaQbAR; ptisp=cnc; RK=TxDF2YA1bL; ptcz=91d386bcdfa51982aaa3605162d022ecf50b82dde22714d669df3d7fe14221b0; p_uin=o1334933924; pt4_token=5-Lm7rK62Wis6IJSPFU6mlTKzxfBkEe*xNqd45Vbuyc_; p_skey=hugzXms-cMfHsaJLZI47*L3qs0y4ChTV2jLXmF2HMxw_'}
     7 
     8 res = requests.post(url=url,data=data,headers=header)
     9 mems = res.json().get("mems")#?
    10 
    11 client = pymongo.MongoClient(host="ip",port=27017)
    12 db = client['qq_group']
    13 table = db['zjr']
    14 
    15 for i in mems:
    16     mem = {
    17         "qq":i.get("uin"),
    18         "gender":i.get("g"),
    19         "nick":i.get("nick"),
    20         "card":i.get("card"),
    21         "qage":i.get("qage")
    22     }
    23     if mem.get("gender") == 0:
    24         mem['gender'] = ""
    25     elif mem.get("gender") == 1:
    26         mem['gender'] = ""
    27     else:
    28         mem['gender'] = "未知"
    29 
    30     if mem.get("card") == "":
    31         mem['card'] = "没有群名片"
    32 
    33     table.insert_one(mem)
    34     qq="http://q4.qlogo.cn/g?b=qq&nk={0}&s=140"
    35     pics = requests.get(qq.format(mem.get("qq")))
    36     abs_path = os.path.join()#?
    37     with open(str(mem.get("qq"))+".jpg","wb") as f:
    38         f.write(pics.content)
  • 相关阅读:
    c#基础问题笔记(一)
    自动化技术中的进给电气传动研习笔记2
    自动化技术中的进给电气传动研习笔记1
    汉字在电脑中是如何存储与编码的呢?
    三十分钟掌握STL
    python练习:函数2
    python练习:函数3
    Creating a ModelForm without either the 'fields' attribute or the 'exclude' attribute is prohibited; form ResumeForm needs updating.
    vue 数组对象取对象的属性: Cannot read property 'xxxx' of undefined
    python练习:函数4
  • 原文地址:https://www.cnblogs.com/Mezhou/p/9350338.html
Copyright © 2020-2023  润新知