立志成为一名优秀测试开发工程师(第三天)——Python的模块与包以及pymysql库的导入和使用

#新星杯·14天创作挑战营·第11期#

Python的模块与包,使用pymysql库操作Mysql数据库

目录

Python的模块与包以及pymysql的导入和使用

一、模块导入的基本方法

1.导入另一个模块全部内容的方式:

2.选择性导入内容的方式:

3.同时导入一个模块中多种数据的方式:

4.取别名:

二、模块文件在包中时,函数和变量的调用

1.使用import调用:

2.使用from调用:

三、pymysql操作Mysql数据库

1.库的安装、卸载

 2.数据库的连接与创建

3.数据的插入

4.数据的修改

5.数据的删除

6.数据的查找

7.构造函数

关键注意事项


python中将一个.py文件称为模块文件,模块文件可以放在包中和根目录中,包中也可以创建子包
,在同一个模块中代码过多的话,会导致对象和函数名会产生重复的情况,代码可读性会下降
一般建议一个模块中代码不超过500行

以下是关于Python模块与包使用的详细说明及示例代码的运行结果分析:

一、模块导入的基本方法

先创建一个新的模块包含变量和函数,我新建这个模块表示为:test

#test.py:
var1=20

def calc1():
    print("这是函数1")

def calc2():
        print("这是test中的函数2")

以下内容在另一个模块中实现,我这个模块表示为:pythonbase3

1.导入另一个模块全部内容的方式:
#一、使用方式:在不同的模块文件中使用其他模块中封装好的函数和变量
#1.导入全部内容的方式:先要新建一个模块“test.py”,然后导入test.py这个模块下的所有内容(包含函数和变量)
import test
#使用模块test中定义好的变量
# 调用模块和被调用模块之间是平级的关系
print(test.var1)
print("\n")
#使用模块1中定义好的函数,这里使用print会产生问题:返回None值
print(test.calc1())
print(test.calc2())
print("\n")

#直接使用,不会出现None问题
test.calc1()
test.calc1()
print("\n")

运行结果:

2.选择性导入内容的方式:
from test import calc1
calc1()
print("\n")

from test import var1
print(var1)

运行结果:

3.同时导入一个模块中多种数据的方式:
# #3.若想要同时导入多个数据,请用逗号隔开
from test import  var1,calc1,calc2
print(var1)
calc1()
calc2()

运行结果:

4.取别名:
#4.使用*将一个模块中所有的变量和函数导入进来会导致重名等问题
from test import *
print(var1)
calc1()
calc2()

#5.如果重名,则需要给另一个取别名,使用as,仅限于当前模块使用
from test import calc2 as c

def calc2():
    print("这是函数2")

calc2()
c()

运行结果:

二、模块文件在包中时,函数和变量的调用

首先在项目中新建一个包,在包中新建一个模块,我新建这个模块表示为:day03.test

var1=20

def calc1():
    print("这是day03.test中的函数1")

def calc2():
        print("这是day03.test中的函数2")

以下内容在另一个模块中实现,我这个模块表示为:pythonbase3

1.使用import调用:
#1.import
import day03.test
#调用变量
print(day03.test.var1)
#调用函数
day03.test.calc2()
day03.test.calc1()

运行结果:

2.使用from调用:
#2.from
from  day03.test import var1,calc1,calc2
calc2()
#
# #3.调用3:*
from day03.test import  *
calc2()
# #别名
from  day03.test import calc2 as a
a()
#
# #如果包下面还有其他包,则继续"."
from day03.zibao.test import var1
print(var1)

三、pymysql操作Mysql数据库

1.库的安装、卸载

使用pip工具安装  Python/Scripts/pip.exe(用来安装第三方库)
使用pip install pymysql这是默认安装最新版本的库  (如果想要指定的话,在后面加上那个==具体版本号)
有两种安装方法:①使用cmd:执行pip install pymysql安装;②使用pycharm安装:file->settings->project->python interpreter,点击加号搜索相应库进行安装。
pip unistall 模块名或者库 可卸载对应模块或者库
可在终端中使用pip list 命令查看已经安装过的所有模块和库
用于网络原因,有时候下载受影响,为减少影响,我们可以换源,制定下载源地址

(我在安装pymysql这一步时最开始使用的是pycharm,出现了问题,换成cmd正常安装了,也还没弄清是啥缘故QVQ)

操作方式:打开pycharm的终端terminal,使用命令行进行安装:python -m pip install pymysql

 2.数据库的连接与创建

使用 pymysql 库连接 MySQL 数据库并创建表。以下代码展示了如何连接数据库、创建表以及关闭连接。

#先导包
import pymysql

# 连接数据库
conn = pymysql.connect(
    host="127.0.0.1",  # IP
    port=3306,         # 端口
    user="root",       # 用户名
    password="123456", # 密码
    database="muchang" # 数据库名
)

# 申请游标
cur = conn.cursor()

# 创建表的 SQL 语句,通过代码执行的时候,sql整体要写成字符串
s = """
CREATE TABLE tian(
    first_name CHAR(20) NOT NULL,
    last_name CHAR(20),
    age INT,
    sex CHAR(1),
    income FLOAT
)
"""

# 执行 SQL
#执行sql,注意一定要把sql放进去,这里是s
cur.execute(s)

# 提交到连接对象
conn.commit()

# 关闭连接
conn.close()

对数据库数据进行增删改查,主要就是改动sql

3.数据的插入

插入数据到数据库表中。以下代码展示了如何插入一条记录。

import pymysql

# 连接数据库
conn = pymysql.connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    passwd="123456",
    database="python"
)

# 申请游标
cur = conn.cursor()

# 插入数据的 SQL 语句
s = "INSERT INTO `user` VALUES('张', '凯', 25, '女', 18000)"

# 执行 SQL
cur.execute(s)

# 提交执行信息
conn.commit()

# 关闭连接
conn.close()
4.数据的修改

修改数据库表中的数据。以下代码展示了如何更新一条记录。

import pymysql

# 连接数据库
conn = pymysql.connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    passwd="123456",
    database="python"
)

# 申请游标
cur = conn.cursor()

# 更新数据的 SQL 语句
s = "UPDATE `user` SET last_name='小丽' WHERE first_name='张'"

# 执行 SQL
cur.execute(s)

# 提交执行信息
conn.commit()

# 关闭连接
conn.close()
5.数据的删除

删除数据库表中的数据。以下代码展示了如何删除一条记录。

import pymysql

# 连接数据库
conn = pymysql.connect(
    host="127.0.0.1",
    port=3306,
    user="root",
    passwd="123456",
    database="python"
)

# 申请游标
cur = conn.cursor()

# 删除数据的 SQL 语句
s = "DELETE FROM `user` WHERE first_name='张'"

# 执行 SQL
cur.execute(s)

# 提交执行信息
conn.commit()

# 关闭连接
conn.close()
6.数据的查找

查询数据库表中的数据。以下代码展示了如何查询并获取结果。

#4、数据的查找
import pymysql
#创建连接对象
conn=pymysql.connect(host="127.0.0.1",
                 port=3306,
                 user="root",
                 passwd="123456",
                 database="python"
                 )
#申请游标
cur=conn.cursor()

#s="INSERT INTO `user` VALUES('张三','李四',20,'女',18000)"
t="SELECT * FROM `user`"

#执行sql
#cur.execute(s)
cur.execute(t)

# 获取查询的结果:
# fetchone()是从当前游标开始的位置读取”一行“,整行内容放进到一个元组中:
# 第一次调用查询到第一条数据,第二次则是第二条数据,以此类推
info=cur.fetchone()
print(info)
info1=cur.fetchone()
print(info1)

#fetchall()实现获取查询结果中所有内容,用一个大元组来放置各个小元组
info2=cur.fetchall()
print(info2)

conn.commit()

#关闭连接
conn.close()
7.构造函数

通过构造函数实现通用的数据库操作。以下代码展示了如何封装数据库操作。

5、构造函数实现可以通用的方式
import pymysql

def str_sql(servicehost,serviceport,serviceuser,servicepasswd,servicedatabase,s):
    #上面这些参数可以适当的加一些注释来进行解释
    """
    :param servicehost: ip
    :param serviceport: 端口
    :param serviceuser: 用户名
    :param servicepasswd: 密码
    :param servicedatabase: 数据库名
    :param s: sql语句
    :return: 返回结果
    """
    #创建连接对象
    conn=pymysql.connect(host=servicehost,
    port=serviceport,
    user=serviceuser,
    passwd=servicepasswd,
    database=servicedatabase
    )
    #申请游标
    cur=conn.cursor()

    #s="INSERT INTO `user` VALUES('张三','李四',20,'女',18000)"
    # t="SELECT * FROM `user`"

    #执行sql
    #cur.execute(t)
    cur.execute(s)

    # 获取查询的结果:
    # fetchone()是从当前游标开始的位置读取”一行“,整行内容放进到一个元组中:
    # 第一次调用查询到第一条数据,第二次则是第二条数据,以此类推
    info=cur.fetchone()
    print(info)
    info1=cur.fetchone()
    print(info1)

    #fetchall()实现获取查询结果中所有内容,用一个大元组来放置各个小元组
    info2=cur.fetchall()
    # print(info2)

    conn.commit()

    #关闭连接
    conn.close()

    return info2


#使用main函数
# __name__ 是 Python 的 内置变量,表示当前模块的名字。
# "__main__" 是 Python 规定的字符串,表示“直接运行的主程序”。
# if __name__ == '__main__': 是一个标准的条件判断,用来检查当前是否是主程序。
if __name__=='__main__':
    psql="SELECT * FROM `user`"
    info=str_sql("127.0.0.1",3306,"root","123456","python",psql)
    print(info)

关键注意事项

  • 避免命名冲突使用from module import *可能导致当前作用域命名被覆盖,建议用显式导入或别名。

  • 包路径层级调用子包模块需完整路径(如day03.zibao.test)。

  • 模块大小控制单个模块建议不超过500-700行,以保持可读性。

  • 看清楚运行的是哪一个模块:运行代码途中一定要注意不要出现低级错误,例如“压根就没运行到需要去运行的代码模块”

  • python中的main函数:__name__ 是 Python 的 内置变量,表示当前模块的名字。
    '__main__ '是 Python 规定的字符串,表示“直接运行的主程序”。
    if __name__ == '__main__': 是一个标准的条件判断,用来检查当前是否是主程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值