笔记 | 1. Python3 连接数据库 error 记录

这里是在不会写 Python3 的情况下使用 Python3 的菜鸟,请多多包涵,轻喷。

Python3 用的是 PyMySQL 驱动,代码如下【来自菜鸟教程】:

#!/usr/bin/python3

import pymysql

# 打开数据库连接: 地址,用户名,密码,数据库名称
db = pymysql.connect("IP地址保密", "用户名保密", "密码保密", "数据库名称保密")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取单条数据
data = cursor.fetchone()

print("Database version : %s " % data)

# 关闭数据库连接
db.close()

一、No module named pymysql

出现的第一个报错是:
pymysql: no module named pymysql

首先在命令行中检查 pymysql 是否存在:pip3 install PyMySQL
命令行显示:Requirement already satisfied: PyMySQL in c:\users\admin\appdata\local\programs\python\python37\lib\site-packages (0.9.3)

pip3 显示 pymysql 存在

说明 pymysql 应该是已经存在的。

解决办法如下:

新建项目勾选 Inherit global site-packages 和 Make availiable to all projects
新建项目勾选 Inherit global site-packages 和 Make availiable to all projects。再次将代码复制一遍,即不再出现此 error

二、不能 run

发现上述代码不能直接运行。于是将核心代码复制到 PyCharm 提供的模板代码中。代码更新如下:

# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.

import pymysql


# 函数与函数之间需要有两行空格
def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


def db_connect():
    # 打开数据库连接: 地址,用户名,密码,数据库名称
    db = pymysql.connect("IP地址保密", "用户名保密", "密码保密", "数据库名称保密")

    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()

    # 使用 execute() 方法执行 SQL 查询
    cursor.execute("SELECT VERSION()")

    # 使用 fetchone() 方法获取单条数据
    data = cursor.fetchone()

    print("Database version : %s " % data)

    # 关闭数据库连接
    db.close()


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')
    db_connect()
    print_hi('PyCharm')
    

点击 if 左边绿色的三角形,即可运行成功。

运行结果

疑问:PyCharm 只能这样运行程序吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
个步骤: 1. 找到链表尾部节点的前一个节点。 ```c struct Node* prevNode = *head; while (prevNode->next->next != NULL) { prevNode = prevNode->next; } ``` 2. 找到SQLAlchemy是一个流行的Python ORM框架,它提供了一个灵活的数据库连接池。连接池是一种链表尾部节点。 ```c struct Node* delNode = prevNode->next; ``` 3. 将前一个节点的技术,它可以提高数据库操作的性能和可靠性。它通过维护一定数量的数据库连接来避免频繁地打开和关闭数据库连接,从而提高效率。 下面是SQLAlchemy连接池的一些原指针域设置为`NULL`。 ```c prevNode->next = NULL; ``` 4. 释放被删除节点理说明: 1. SQLAlchemy连接池是基于Python标准库中的Queue模块实现的。连接池是一个队的内存空间。 ```c free(delNode); ``` 完整代码如下: ```c void deleteAtTail(struct列,其中每个元素都是一个数据库连接对象。 2. 当客户端请求一个数据库连接时,连接池会 Node** head) { if (*head == NULL) { return; } if ((*head)->next == NULL) { 从队列中获取一个空闲连接对象。如果队列为空,连接池会创建一个新的连接对象,并将其加 free(*head); *head = NULL; return; } struct Node* prevNode = *head; while (prev入队列。 3. 客户端使用完连接对象后,必须将其还回连接池中。连接池会将Node->next->next != NULL) { prevNode = prevNode->next; } struct Node* delNode = prevNode连接对象标记为可用,然后将其放回队列中。 4. 如果连接池中的连接对象数量超->next; prevNode->next = NULL; free(delNode); } ``` ## 5. 动态链表的修改过了设定的上限,连接池会将多余的连接对象关闭,以避免资源浪费。 5. SQLAlchemy连接池还提供了一些高级功能,比如连接池中连接对象的自动重连、超时控制 动态链表的修改操作需要完成以下几个步骤: 1. 找到待修改节点。 ```c struct Node、连接对象状态检查等。 总之,SQLAlchemy连接池是一种非常有用的技术,可以提高* currNode = *head; while (currNode != NULL && currNode->data != oldData) { currNode = currNode数据库操作的性能和可靠性。它可以避免频繁地打开和关闭数据库连接,从而节省资源和时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值