python项目连接数据库(mysql,postgresql)

在实际开发过程中,对于项目的数据查询和数据统计,那python是相当好用,相信很多后端工程师是java语言入门的,对于python呢是有一点陌生,我自己也是,不过当你操作起来呢发现其实还是蛮好上手的。以下就是一些简单的示例,大家可以参考一下。

环境:pycharm2023.1,python3.7,PostgreSQL13.1,MySql5.7.11

在Python中,对于数据库连接,你需要使用适当的数据库连接库(如sqlite3pymysqlpsycopg2等),并配置连接参数(如数据库URL、用户名、密码等)。

  • 在PyCharm的欢迎界面,选择“Create New Project”或者点击菜单栏中的“File” > “New Project”。
  • 在弹出的窗口中,选择你想要的Python解释器版本(如果你已经安装了多个版本的话)。
  • 为你的项目选择一个合适的目录位置,并输入一个项目名称。
  • 点击“Create”按钮以创建新项目。

postgresql

以下是一个简单的示例,展示如何使用Python的psycopg2库连接到postgresql数据库,并创建一个数据源:

你可以创建一个专门连接这个数据源的脚本,比如创建一个db文件夹,新建python File,命名为pgsql_db_tool,

在固定的连接信息没有定义database是因为想灵活一点访问多个数据库,注意一下我这里的password有逗号。

import psycopg2# 固定的连接信息(除了数据库名称)
CONNECTION_INFO = {'host': 'pglocalhost','port': '3308','user': 'desmond','password': 'abcdefg',
}def execute_query_in_db(db_name, query):# 构建完整的连接信息conn_info = CONNECTION_INFO.copy()conn_info['database'] = db_name# 连接到数据库try:conn = psycopg2.connect(**conn_info)cur = conn.cursor()# 执行查询cur.execute(query)# 获取查询结果rows = cur.fetchall()# 关闭游标和连接cur.close()conn.close()# 返回查询结果return rowsexcept (Exception, psycopg2.Error) as error:print(f"Error: {error}")return None

mysql

以下是一个简单的示例,展示如何使用Python的pymysql库连接到mysql数据库,并创建一个数据源:

你可以创建一个专门连接这个数据源的脚本,比如创建一个db文件夹,新建python File,命名为mysql_db_tool,

在固定的连接信息没有定义database是因为想灵活一点访问多个数据库,注意一下我这里的password有逗号。

import pymysqlconfig = {'host': 'mysqllocalhost','port': 3306,'user': 'desmond','password': 'abc123',
}def execute_query_in_mysqldb(query, db_name):conn_info = config.copy()conn_info['database'] = db_nametry:connection = pymysql.connect(**conn_info)cursor = connection.cursor()cursor.execute(query)rows = cursor.fetchall()connection.close()cursor.close()return rowsexcept (Exception, pymysql.Error) as error:print(f"Error:{error}")return None

示例用法

数据源写好之后我们就可以测试一下,简单查询一下相应连接的数据库,看看是否连接成功。

你也可以在写数据源的地方进行测试,我这里新建一个test文件夹和test.py进行测试mysql连接

from db import mysql_db_toolmysql_db_name = "你mysql连接下数据库名称,注意了,是数据库不是表名"
sql = "select count(*) from 表名"
datas = mysql_db_tool.execute_query_in_mysqldb(sql, mysql_db_name)if datas:print(datas[0][0])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/12418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言基础-标准库函数

C语言的标准库函数是由C语言标准库(如C99、C11等)提供的一系列预定义函数,这些函数通常用于执行常见的编程任务,如字符串操作、内存管理、数学计算、文件操作等。通过使用标准库函数,程序员可以更加高效地编写C语言程序…

在ubuntu上创建WiFi热点

要在 wlan0 无线网卡上发射热点(即创建 WiFi 热点),可以使用 hostapd 和 dnsmasq 这两个工具。hostapd 用于创建热点,而 dnsmasq 用于提供 DHCP 和 DNS 服务,以便连接到热点的设备可以获取 IP 地址并访问互联网。 下面…

【AI】DeepStream(03):deepstream_test1_app

1、简介 deepstream-test1:演示各种 DeepStream 插件构建 GStreamer 管道。从文件中获取视频、解码、批处理,然后进行对象检测,最后在屏幕上渲染框。 源码路径:/opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-test1 先看下效果 2、编译 1)…

Qt将ffmpeg解码出来的数据保存为文件

具体代码如下: QImage image(m_pAVPicture.data[0], m_videoWidth, m_videoHeight, QImage::Format_RGB888);QString currrentTime = QDateTime::currentDateTime().

重写muduo网络库之调用流程的梳理

目录 1、流程叙述 2、我们看看TcpServer的构造都做了什么? 3、start() 3.1 开启loop 3.2 连接的建立 3.3 数据的收发 4、连接的关闭 muduo网络库各组件梳理见此博客 重写muduo库之组件梳理 1、流程叙述 首先,我们是怎么使用的? 1.定…

MTP协议中文翻译第一二三四章

1 简介 ​ 媒体传输协议(MTP)是一种协议,旨在与瞬态存储设备进行内容交换以及命令和控制。它是作为PTP或图像传输协议的扩展而开发的,主要针对便携式数码相机媒体播放器和手机。 1.1 目标 ​ 这个协议的主要目的是促进具有瞬时连接性和显著存储容量的媒体设备之间的通信…

【iOS】工厂模式

文章目录 前言设计模式的三大原则简单工厂模式工厂方法模式抽象工厂模式关于三兄弟的升级与降级注意 前言 上文讲完了iOS的架构模式,接下来聊一聊设计模式,设计模式有许多,主要介绍一下工厂模式 设计模式的三大原则 S 单一职责原则 告诉我…

PBR系列-光之简史

作者:游梦 ​ 欢迎进入官网体验使用:Mapmost——让人与机器联合创作成为新常态 ​说到PBR理论分为三大理论:物理光源、物理材质与物理相机,三者都与光有着千丝万缕的关系,原打算这期讲解物理材质,在梳理知…

MySQL:某字段追加随机数

在MySQL中,你可以使用UPDATE语句结合随机函数RAND()来为某个字段追加随机数。以下是一个示例,假设我们有一个表my_table,其中有一个字段my_field,我们想要为这个字段追加一个介于1到100之间的随机数: UPDATE my_table…

OpenHarmony 3.1 Release实战开发 + Linux 原厂内核Launcher起不来问题分析报告

1、关键字 Launcher 无法启动;原厂内核;Access Token ID; 2、问题描述 芯片:rk3566;rk3399 内核版本:Linux 4.19,是 RK 芯片原厂发布的 rk356x 4.19 稳定版内核 OH 版本:OpenHa…

Java Spring的远程调用方式(如RMI、Hessian、Burlap等)

Spring框架提供了对多种远程调用技术的集成,使得开发者可以方便地在分布式系统中实现远程服务调用。以下是Spring支持的一些常见远程调用方式: 1. RMI (Remote Method Invocation) RMI是一种Java特有的远程调用技术,允许一个Java虚拟机上的…

【一站式学会Kotlin】第六节 lamda表达式、拖尾lamda表达式

一、 lamda 表达式的完整语法形式: val sum: (Int, Int) -> Int = {x: Int, y: Int -> x + y }(1)lamda表达式总是在花括号中 (2)完成的语法形式参数声明放在花括号内,(可选) (3)函数体跟在->后 (4)如果能推断出该lamda表达式的返回值类型不是Unit,那么该…

nginx文件夹内文件解释<一>

目录 linux中/etc/nginx/查询目录整体解释分目录解释Conf.d目录 linux中/etc/nginx/查询目录 [rootrelease nginx]# ls -l total 76 drwxr-xr-x 2 root root 4096 Mar 12 22:49 conf.d drwxr-xr-x 2 root root 4096 Nov 11 2022 default.d -rw-r--r-- 1 root root 1077 Nov 1…

vue中图片引入与使用几种方式

方法一&#xff1a;img 标签静态引入 朴实无华 <img src"../assets/img/logo.png" > 方法二&#xff1a;background-image 朴实无华2.0版 background-image: url("../assets/img/bg.jpg");方法三&#xff1a;require()方法 将编写代码时定义的路径…

elementui,iview等 表格单元格合并之固定列

要的效果如下 需要合并 show weak 及 Siginin这三列 上代码 <template><Table:columns"columns":span-method"handleSpan":data"data"bordersize"small"ref"table"></Table> </template> <sc…

R实验 基础(一)

实验目的&#xff1a; 了解实验报告书的书写要求&#xff1b;掌握R、RStudio的下载与安装&#xff1b;熟悉R的界面及基本操作&#xff1b;进一步熟悉R和RStudio的界面及基本操作&#xff1b;初步了解R的绘图和程序包的下载、安装和加载使用。 实验内容&#xff1a; 了解实验报…

Python sort() 和 sorted() 的区别应用实例详解

大家好&#xff0c;今天针对 Python 中 sort() 和 sorted() 之间的区别&#xff0c;来一个实例详细解读。sort — 顾名思义就是排序的意思&#xff0c;它可以接收的对象为可迭代的数据类型。今天以列表为例子演示两者的不同点、相同点&#xff0c;以及其中一些常用的高级参数使…

支付平台怎么应对DDOS攻击

支付平台怎么应对DDOS攻击?在数字化时代&#xff0c;支付平台已成为人们日常生活中不可或缺的一部分。然而&#xff0c;随着支付平台的广泛应用&#xff0c;其面临的安全威胁也日益严峻。其中&#xff0c;DDOS&#xff08;分布式拒绝服务攻击&#xff09;以其高隐蔽性、强破坏…

智慧武装三维实景电子沙盘系统

智慧武警实景三维电子沙盘系统是一个集成了先进三维建模技术、大数据分析、实时动态更新、交互操作以及高度安全可靠的综合性平台。它专为武警部队设计&#xff0c;旨在提供一个实战指挥和战术训练的基础平台支撑&#xff0c;以满足指战员在作战环境研究、标图作业、战法研究、…

Java 包装类型的缓存机制了解吗?

在 Java 中&#xff0c;基本数据类型有各自的包装类型。这些包装类型在某些情况下会使用缓存机制来提高性能。本文将详细探讨这些缓存机制的实现原理及其实际应用。 什么是包装类型的缓存机制&#xff1f; Java 的包装类型缓存机制是指在某些特定范围内&#xff0c;包装类型对…