栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

无人机实验平台开发实记(五)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无人机实验平台开发实记(五)

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数据的解码即可完成数据获取操作。

路径信息数据结构:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965624.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号