Pip换源,以及python解耦方法实现

一、 Pip换源

可以查看文章路径

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

二、 解耦

1.解耦思想
具体查看文章python解耦重构,提高程序维护性
https://editor.csdn.net/md/?articleId=140161169

  1. mysql 连接解耦
    主要实现方式为mysql配置项的提取,其中mysql 安装方式查看mysql8.0.19安装zip版本
    https://editor.csdn.net/md/?articleId=140093551。

三、解耦实现

  1. Pip换源安装库
    pip install mysql-connector-python
    pip install python-dotenv
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  mysql-connector-python
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  python-dotenv
  1. 配置文件 env 版本
    配置文件填写,a.env。
    具体参数 DB_HOST ip , DB_DATABASE DATABASE 名称 , DB_USER 用户名 ,DB_PASSWORD 密码。

DB_HOST=127.0.0.1
DB_DATABASE=customer_feedback
DB_USER=root
DB_PASSWORD=*******
  1. 配置文件 .ini 版本
    如果想用.ini结尾的可以查看,文章python解耦重构,提高程序维护性。
    4 .python 代码实现
    解耦前
    connection = mysql.connector.connect(
        host='your_host',  # 数据库主机地址
        database='your_database',  # 数据库名称
        user='your_user',  # 数据库用户名
       password='your_password'  # 数据库密码
    )

解耦后

  db_host = os.getenv('DB_HOST')
  db_database = os.getenv('DB_DATABASE')
  db_user = os.getenv('DB_USER')
  db_password = os.getenv('DB_PASSWORD')
  print(db_host)

  # 连接数据库
  connection = mysql.connector.connect(
      host=db_host,
      database=db_database,
      user=db_user,
      password=db_password
  )

全部代码实现(mysql 8.0版本使用)

import mysql.connector
from mysql.connector import Error
import os
from dotenv import load_dotenv
# 加载.env文件
load_dotenv('a.env',verbose=True)
def read_data_from_mysql():
    try:
        # 连接数据库
        # connection = mysql.connector.connect(
        #     host='your_host',  # 数据库主机地址
        #     database='your_database',  # 数据库名称
        #     user='your_user',  # 数据库用户名
        #     password='your_password'  # 数据库密码
        # )
        # 从环境变量中读取数据库连接信息
        db_host = os.getenv('DB_HOST')
        db_database = os.getenv('DB_DATABASE')
        db_user = os.getenv('DB_USER')
        db_password = os.getenv('DB_PASSWORD')
        print(db_host)

        # 连接数据库
        connection = mysql.connector.connect(
            host=db_host,
            database=db_database,
            user=db_user,
            password=db_password
        )
        if connection.is_connected():
            db_Info = connection.get_server_info()
            print(f"Successfully connected to MySQL Server version {db_Info}")

            # 创建游标对象
            cursor = connection.cursor()

            # 执行查询
            query = "SELECT * FROM feedback_2024"  # 更换为你的表名
            cursor.execute(query)

            # 获取所有记录列表
            records = cursor.fetchall()
            print("Total number of rows in table: ", cursor.rowcount)

            print("\nPrinting each row")
            for row in records:
                print(row)

    except Error as e:
        print(f"Error reading data from MySQL: {e}")

    finally:
        if (connection.is_connected()):
            cursor.close()
            connection.close()
            print("MySQL connection is closed")


# 调用函数
read_data_from_mysql()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

结合数据索引结构看SQL的真实执行过程

引言 关于数据库设计与优化的前几篇文章中,我们提到了数据库设计优化应该遵守的指导原则、数据库底层的索引组织结构、数据库的核心功能组件以及SQL的解析、编译等。这些其实都是在为SQL的优化、执行的理解打基础。 今天这篇文章,我们以MySQL中InnoDB存…

软件测评机构:关于软件验收测试作用与实施步骤全解析

软件验收测试是指在软件项目交付给用户之前进行的一系列测试活动,其主要目的是验证软件是否符合用户需求和设计规范,以确保软件的质量和稳定性。 软件验收测试在软件开发生命周期的最后阶段进行,起到了至关重要的作用。它能够帮助客户确认软…

AI PC(智能电脑)技术分析

一文看懂AI PC(智能电脑) 2024年,英特尔、英伟达等芯片巨头革新CPU技术,融入AI算力,为传统PC带来质的飞跃,引领智能计算新时代。 2024年,因此被叫作人工智能电脑(AI PC)…

【elementui】记录解决el-tree开启show-checkbox后,勾选一个叶结点后会自动折叠的现象

第一种解决方案&#xff1a;设置default-expand-keys的值为当前选中的key值即可 <el-treeref"tree"class"checkboxSelect-wrap":data"treeData"show-checkboxnode-key"id":expand-on-click-node"true":props"defau…

MATLAB——循环语句

一、for end语句 在该语法中&#xff0c;循环变量是用于迭代的变量名&#xff0c;它会在每次循环迭代中从向量或矩阵中取出一列的值。数值向量或者矩阵则表示了循环变量可以取值的范围&#xff0c;通常根据实际需要事先给定。一旦循环变量遍历完数值向量或者矩阵中的所有值&…

初试成绩占比百分之70!计算机专硕均分340+!华中师范大学计算机考研考情分析!

华中师范大学&#xff08;Central China Normal University&#xff09;简称“华中师大”或“华大”&#xff0c;位于湖北省会武汉&#xff0c;是中华人民共和国教育部直属重点综合性师范大学&#xff0c;国家“211工程”、“985工程优势学科创新平台”重点建设院校&#xff0c…

苹果公司的Wifi定位服务(WPS)存在被滥用的风险

安全博客 Krebs on Security 2024年5月21日发布博文&#xff0c;表示苹果公司的定位服务存在被滥用风险&#xff0c;通过 "窃取"WPS 数据库&#xff0c;可以定位部队行踪。 相关背景知识 手机定位固然主要依赖卫星定位&#xff0c;不过在城市地区&#xff0c;密集的…

YOLOv10全网最新创新点改进系列:融合GSConv+Slim Neck,双改进、双增强,替换特征融合层实现, 轻量化涨点改进策略,有效涨点神器!

YOLOv10全网最新创新点改进系列&#xff1a;融合GSConvSlim Neck&#xff0c;双改进、双增强&#xff0c;替换特征融合层实现&#xff0c; 轻量化涨点改进策略&#xff0c;有效涨点神器&#xff01; 所有改进代码均经过实验测试跑通&#xff01;截止发稿时YOLOv10已改进40&…

vue中的坑·

常规 1.使用watch时&#xff0c;immediate true会在dom挂载前执行 2.使用this.$attrs和props 可以获取上层非原生属性&#xff08;class/id&#xff09; 多层次嵌套引用 设置的时候直接赋值&#xff0c;修改的时候即使用的双向绑定加上$set / nextick / fouceUpdate都不会同步…

MySQL表的练习

二、创建表 1、创建一个名称为db_system的数据库 create database db_system; 2、在该数据库下创建两张表&#xff0c;具体要求如下 员工表 user 字段 类型 约束 备注 id 整形 主键&#xff0c;自增长 id N…

探索设计的未来:了解设计师对生成式人工智能(AIGC)工具的采用

在数字化浪潮的推动下&#xff0c;设计行业正经历着一场革命性的变革。随着生成式人工智能&#xff08;AIGC&#xff09;技术的发展&#xff0c;设计师们迎来了前所未有的机遇与挑战。这些工具不仅重塑了传统的设计流程&#xff0c;还为设计师们提供了更广阔的创意空间和更高效…

vue模板语法v-html

模板语法v-html vue使用一种基于HTML的模板语法&#xff0c;使我们能够声明式的将其组件实例的数据绑定到呈现的DOM上&#xff0c;所有的vue模板都是语法层面的HTML&#xff0c;可以被符合规范的浏览器和HTML解释器解析。 一.文本插值 最基本的数据绑定形式是文本插值&#…

理解神经网络的通道数

理解神经网络的通道数 1. 神经网络的通道数2. 输出的宽度和长度3. 理解神经网络的通道数3.1 都是错误的图片惹的祸3.1.1 没错但是看不懂的图3.1.2 开玩笑的错图3.1.3 给人误解的图 3.2 我或许理解对的通道数3.2.1 动图演示 1. 神经网络的通道数 半路出嫁到算法岗&#xff0c;额…

【算法训练记录——Day41】

Day41——动态规划Ⅲ 1.理论基础——代码随想录2.纯01背包_[kamacoder46](https://kamacoder.com/problempage.php?pid1046)3.leetcode_416分割等和子集 背包&#xff01;&#xff01; 1.理论基础——代码随想录 主要掌握01背包和完全背包 物品数量&#xff1a; 只有一个 ——…

顶级5款有用的免费IntelliJ插件,提升你作为Java开发者的旅程

在本文中&#xff0c;我们将深入探讨IntelliJ IDEA插件——那些可以提升你生产力的神奇附加组件&#xff0c;并微调你的代码以达到卓越。我们将探索5款免费插件&#xff0c;旨在将你的开发水平提升到一个新的高度。 1. Test Data 使用Test Data插件进行上下文操作 作为开发者&a…

昇思学习打卡-5-基于Mindspore实现BERT对话情绪识别

本章节学习一个基本实践–基于Mindspore实现BERT对话情绪识别 自然语言处理任务的应用很广泛&#xff0c;如预训练语言模型例如问答、自然语言推理、命名实体识别与文本分类、搜索引擎优化、机器翻译、语音识别与合成、情感分析、聊天机器人与虚拟助手、文本摘要与生成、信息抽…

基于用户的协同过滤算法

目录 原理&#xff1a; 计算相似度&#xff1a; 步骤&#xff1a; 计算方法&#xff1a;Jaccard相似系数、余弦相似度。 推荐 原理&#xff1a; 先“找到相似用户”&#xff0c;再“找到他们喜欢的物品”--->人以群分。即&#xff0c;给用户推荐“和他兴趣相似的其他用…

运维管理一体化:构建多维一体化的运维体系

本文来自腾讯蓝鲸智云社区用户&#xff1a;CanWay 摘要&#xff1a;笔者根据自身的技术和行业理解&#xff0c;解析运维一体化的内涵和实践。 涉及关键词&#xff1a;一体化运维、平台化运维、数智化运维、运维PaaS、运维工具系统、蓝鲸等。 本文作者&#xff1a;嘉为蓝鲸运维…

微信小程序 typescript 开发日历界面

1.界面代码 <view class"o-calendar"><view class"o-calendar-container" ><view class"o-calendar-titlebar"><view class"o-left_arrow" bind:tap"prevMonth">《</view>{{year}}年{{month…