Python相关功能模块学习
受本人技术栈限制,所以开发工作中需要学习Python相关功能模块的代码编写,已完成开发任务。
1、 数据库链接与操作模块
实记(二)中说明本项目所使用数据库为MySQL数据库。腾讯云云函数平台所使用Python版本为Python3,该版本未获得MySQLdb模块支持,所以需要使用pymysql模块进行数据库链接。经过简单验证,证实腾讯云云函数以内置pymysql模块。
由于Python统一了数据库链接接口,所以pymysql和MySQLdb在使用方式上类似:
#创建数据库连接pymysql.Connect()参数说明 host(str): MySQL服务器地址 port(int): MySQL服务器端口号 user(str): 用户名 passwd(str): 密码 db(str): 数据库名称 charset(str): 连接编码,存在中文的时候,连接需要添加charset='utf8',否则中文显示乱码。 connection对象支持的方法 cursor() 使用该连接创建并返回游标 commit() 提交当前事务,不然无法保存新建或者修改的数据 rollback() 回滚当前事务 close() 关闭连接 cursor对象支持的方法 execute(op) 执行SQL,并返回受影响行数 fetchone() 取得结果集的下一行 fetchmany(size) 获取结果集的下几行 fetchall() 获取结果集中的所有行 rowcount() 返回数据条数或影响行数 close() 关闭游标对象
具体业务流程及相关代码如下:
·创建数据库链接对象
db = pymysql.connect(host="49.232.4.236", port=3306, user="feilongz",
password="01pp0301ll", charset="utf8mb4", database='Routes')
·创建游标对象
cursor = db.cursor()
·执行SQL语句及收尾
try:
cursor.execute(sql)
except Exception as identifier:
print(identifier)
db.rollback
finally:
cursor.close()
db.commit()
本项目中主要涉及数据库的增、查操作,区别主要体现在SQL语句中,Python代码中语法基本相同,于是可以得到如下模板:
```python
import pymysql
db = pymysql.connect("localhost","root","a","cs",charset="utf8mb4")
def connect_mysql(sql,data):
cursor = db.cursor()
try:
result=None
if data:
if isinstance(data[0],list):
cursor.executemany(sql,data)
else:
cursor.execute(sql,data)
else:
cursor.execute(sql)
result=cursor.fetchall()
except Exception as e:
print(e)
db.rollback();
finally:
cursor.close()
db.commit(); #提交操作
return result
此外,在Python中向SQL语句注入变量有两种方法:
当SQL语句中仅涉及一个变量时:
使用%s占位符表示当前位置被变量替代,SQL语句后面使用%(变量名)表示需要插入的变量
当SQL语句中涉及多个变量时:
SQL语句中只用%s写需要替代的变量,将需要替代的变量名放在cursor.execute()中执行
数据库构造结果:
2、 Post、Get请求数据获取模块
受益于项目中严格的数据格式要求,在数据传输和接受过程中不需要进行额外的数据格式处理。
所以数据获取部分可以方便的调用Python的requests
接收Get请求中的参数:
req = request.args.get()
接收Post请求中的参数: ```python req = request.form.get()
而后调用json.loads()进行json数据的解码即可完成数据获取操作。
路径信息数据结构:



