目录

介绍

背景

在Visual Studio中创建一个Python项目

在SQL中创建数据库和表

为数据库创建配置文件

将Python软件包安装为“Pypyodbc”

创建一个连接文件

建立新记录

读取数据

更新现有记录

删除数据

结论


介绍

该实际演示将帮助您了解如何在带有SQL数据库的Python中实现CRUD(创建、读取、更新和删除)操作功能。对于与数据库关联的任何应用程序,我们执行一些操作,以插入记录[C =创建],读取记录[R =读取],用新值[U = Update]更新现有记录或从数据库中删除记录[D = Delete]。因此,在谈论我们必须使用数据库的任何应用程序时,这四个操作是必不可少的。

1天:在现有的Visual Studio 2017中设置和测试Python环境

2天:V Visual Studio 2017中的第一个Python项目

背景

今天,我们将尝试通过一个简单的Python应用程序来实现此CRUD操作功能。我们将使用SQL Server进行此演示,并了解如何与SQL Server建立连接。我们将逐步进行实际演示,并详细介绍每个步骤。步骤如下:

  1. Visual Studio 2017中创建Python项目
  2. SQL中创建数据库和表
  3. 为数据库创建配置文件
  4. Python软件包安装为“Pypyodbc”
  5. 创建一个连接文件
  6. 创建新纪录
  7. 读取数据
  8. 更新现有记录
  9. 删除数据

我已经在上面为本文定义了目标。因此,在不浪费大量时间的情况下,让我们开始实际的实现。

在Visual Studio中创建一个Python项目

打开Visual Studio 2017,然后转到文件>新建>项目。它将打开New Project窗口,现在只需从左侧面板的已安装部分和中间部分中选择Python,只需单击“Python Application”并提供合适的名称“PythonCRUD”即可。如果愿意,还可以更改此应用程序的位置,然后单击确定

这将需要一些时间,并且您的项目将准备就绪。您还可以阅读本文,以获取有关如何在Visual Studio中创建第一个Python应用程序的分步信息。

在SQL中创建数据库和表

我们已经准备好一个Python项目,并且已经准备好实现CRUD操作,但是在此之前,让我们在SQL Server中创建数据库和表。这样我们就可以对实时数据库执行CRUD操作。在这里,我们将创建一个简单的数据库“Test”,并创建一个简单的表“Employee”,如下所示。以下是用于创建数据库和表的SQL脚本。您可以直接执行它。成功执行后,您可以在SQL Server中找到Test数据库以及Employee表。

CREATE DATABASE Test
GOUSE Test
GOCREATE TABLE Employee(Id int PRIMARY KEY IDENTITY(1,1),   Name varchar(255) NULL, Age int NULL)

为数据库创建配置文件

现在,让我们在该项目中添加一个配置文件,在其中定义所有属性及其值。这些属性将在创建与SQL数据库的连接时进一步使用。因此,打开解决方案资源管理器并右键单击Project然后选择Add> New Item它将打开“添加新项 ”窗口,如下所示。在此窗口中,我们必须选择“Empty Python File”并提供有价值的名称config.py ,然后单击添加。单击添加后,它将在项目中添加一个新的Python文件作为config.py

现在,让我们修改“config.py ”并添加SQL数据库连接所需的必需属性及其值,如下所示。在这里,我们需要驱动程序名称、服务器名称、数据库名称以及凭据作为用户名和密码。这些属性位于对象内部,以便我们稍后使用。

# SQL Server Database Connection Properties
DATABASE_CONFIG ={'Driver': 'SQL Server','Server': 'DESKTOP-QQ95JAD','Database': 'Test','UID': 'sa','Password': 'xxxxxxx'}

将Python软件包安装为“Pypyodbc”

接下来,我们将安装一个Python软件包,该软件包是建立数据库连接和在数据库上执行命令所必需的。它是Pypyodbc,用于数据库操作的纯Python软件包。

按照PyPi.OrgPypyodbc是一个Python脚本,运行在CPython/IronPython/PyPy上,版本2.4 /2.5/2.6/2.7/3.2/3.3win/ Linux32/64位。有关更多.. https://pypi.org/project/pypyodbc/

要在项目环境中安装新软件包,请右键单击Python环境,然后选择“Install Python Package .. ”。

它将打开Python Environments窗口,您可以在其中找到所有安装环境,在它的下面,我们有一个搜索框,从中可以搜索任何特定的软件包并进行安装。因此,只需如下图所示进行搜索pypyodbc,然后单击“ Install pypyodbc1.3.5 ”。

一旦安装了pypyodbc, 就可以在“输出”窗口中看到成功安装的消息,并在Python环境中也可以找到该软件包。

创建一个连接文件

任何与数据库一起使用并执行数据库操作的应用程序都具有创建和管理与数据库的连接的机制。在此应用程序中,我们将执行相同的操作并创建一个数据库连接文件,该文件将使用配置文件中定义的配置生成连接。让我们创建一个新的python文件“db_connection.py”,并在其中创建一个方法。此方法(getConnection())将根据config.py定义的数据库配置返回数据库连接。

首先,让我们导入pypyodbc,以便我们可以使用它。为了访问config.py定义的配置属性,我们首先必须使用“import filename” 导入该文件,然后才能直接访问该对象。

import pypyodbc
import config# Return the sql connection
def getConnection():connection = pypyodbc.connect("Driver= {"+config.DATABASE_CONFIG["Driver"]+"} ;Server=" + config.DATABASE_CONFIG["Server"] + ";Database=" + config.DATABASE_CONFIG["Database"] + ";uid=" + config.DATABASE_CONFIG["UID"] + ";pwd=" + config.DATABASE_CONFIG["Password"])return connection

现在,让我们从开始执行的地方装饰main函数。如您所见,以下代码是PythonCRUD.py文件,当我们在Visual Studio中使用与项目名称相似的名称创建项目时,将自动创建该文件。在这里,首先,我们将导入所有必需的模块,如用于数据库连接的pypyodbc和使用SQL Server的操作、用于根据上面提供的配置获得连接的db_connection。以及另外四个文件,分别用于执行CRUD操作的读取、创建、更新和删除。

第一个屏幕将为用户提供可供选择的选项,例如C = Create,R = Read,U = Update和D = Delete。

import pypyodbc
import db_connection as dbConn
from read import Read
from create import Create
from update import Update
from delete import Deletedef main():print('Available Options: C=Create, R=Read, U=Update, D=Delete ')choice = input('Choose your option = ')if choice == 'C':createObj=Create()createObj.func_CreateData()elif choice == 'R':readObj =  Read()readObj.func_ReadData()elif choice == 'U':updateObj = Update()updateObj.func_UpdateData()elif choice == 'D':deleteObj = Delete()deleteObj.func_DeleteData()else:print('Wrong choice, You are going exist.')# Call the main function
main()

建立新记录

完成许多工作后,例如项目创建,数据库和表创建,为数据库创建配置文件,创建连接文件等。现在,让我们从python文件移动并创建新记录并将其保存到数据库中。

因此,首先要创建一个新的空python文件,如“create.py”,与我们在上述步骤中创建的文件相同。在此文件中,将类创建为“Create”,将方法创建为“func_CreateData(self)”, 该方法将负责在数据库中添加新记录。在这里,我们正在做以下事情。

  1. 首先,从db_connection文件获取数据库连接。
  2. 输入两个用于分别输入名称和年龄的值。
  3. 使用输入值(名称,年龄)创建插入查询并执行。
  4. 提交连接,以便将值提交到数据库表中。
  5. 在finally块中,关闭连接。
  6. 在执行try- except- finally块中维护。
  7. 打印有价值的消息。
import db_connection as dbConnclass Create:def func_CreateData(self):# Get the sql connectionconnection = dbConn.getConnection()name = input('Enter Name = ')age = input('Enter Age = ')try:query = "Insert Into Employee(Name, Age) Values(?,?)" cursor = connection.cursor()# Execute the sql querycursor.execute(query, [name, age])# Commit the dataconnection.commit()print('Data Saved Successfully')except:print('Something wrong, please check')finally:# Close the connectionconnection.close()

让我们运行项目,您将获得类似于下面的窗口。在这里,您将获得可供选择的选项[代码将在本文的底部提供]。因此,首先选择您的选项作为C这意味着,您将创建一个新记录。

它将要求分别输入名称和年龄,数据将以适当的消息“数据已成功保存”进行保存

读取数据

让我们再创建一个文件“read.py”来读取和打印数据。在这里,我们还将执行与创建时相同的操作。

  1. 首先,从db_connection 文件获取数据库连接。
  2. 创建select查询并执行它。
  3. 获取某个变量中的值,这里我们获取一个游标。
  4. 在游标上循环并打印值。
import db_connection as dbConnclass Read:def func_ReadData(self):   # Get the sql connectionconnection = dbConn.getConnection()cursor = connection.cursor()# Execute the sql querycursor.execute('Select * from Employee')# Print the datafor row in cursor:print('row = %r' % (row,))

在运行项目时,只需选择R作为读取数据的选项,然后按Enter。您将获得如下输出:

更新现有记录

现在,该更新现有记录了。因此,为此,首先让我们再创建一个文件update.py,并编写如下代码。在这里,我们必须首先获取需要更新的记录,然后为该记录提供新值并进行更新。

import db_connection as dbConn;class Update:def func_UpdateData(self):# Get the SQL connectionconnection = dbConn.getConnection()id = input('Enter Employee Id = ')try:# Fetch the data which needs to be updatedsql = "Select * From Employee Where Id = ?" cursor = connection.cursor()cursor.execute(sql, [id])item = cursor.fetchone()print('Data Fetched for Id = ', id)print('ID\t\t Name\t\t\t Age')print('-------------------------------------------')       print(' {}\t\t {} \t\t\t{} '.format(item[0], item[1], item[2]))print('-------------------------------------------')print('Enter New Data To Update Employee Record ')name = input('Enter New Name = ')age = input('Enter New Age = ')query = "Update Employee Set Name = ?, Age =? Where Id =?" # Execute the update querycursor.execute(query, [name, age, id])connection.commit()print('Data Updated Successfully')except:print('Something wrong, please check')finally:# Close the connectionconnection.close()

这次在运行项目时,只需选择U作为更新记录的选项。首先,它将要求输入要更新的员工ID,并显示该员工的数据。接下来,它将要求输入该雇员的姓名和年龄的更新数据并进行更新。成功更新后,将显示确认消息。

删除数据

在这里,我们将尝试删除现有记录。因此,让我们再创建一个用于删除操作的文件“delete.py”。 在这里,我们将首先要求用户输入需要删除的员工ID,并根据该ID显示该员工的数据。

下一条消息将要求您确认是否愿意删除。我们有两个选项:“Y”和“N”。如果要删除记录,只需按Y

import db_connection as dbConn;class Delete:def func_DeleteData(self):# Get the SQL connectionconnection = dbConn.getConnection()id = input('Enter Employee Id = ')try:# Get record which needs to be deletedsql = "Select * From Employee Where Id = ?" cursor = connection.cursor()cursor.execute(sql, [id])item = cursor.fetchone()print('Data Fetched for Id = ', id)print('ID\t\t Name\t\t\t Age')print('-------------------------------------------')       print(' {}\t\t {} \t\t\t{} '.format(item[0], item[1], item[2]))print('-------------------------------------------')confirm = input('Are you sure to delete this record (Y/N)?')# Delete after confirmationif confirm == 'Y':deleteQuery = "Delete From Employee Where Id = ?"cursor.execute(deleteQuery,[id])connection.commit()print('Data deleted successfully!')else:print('Wrong Entry')except:print('Something wrong, please check')finally:connection.close()

运行项目,然后选择最后一个选项D作为删除记录,并提供需要删除的员工ID。提供员工编号后,首先将显示记录数据并要求确认。如果提供Y作为确认,则它将删除记录并显示确认消息,表明数据已成功删除。

结论

因此,今天,我们已经学习了如何在带有SQL数据库的Python中执行CRUD操作。

使用SQL数据库在Python中进行CRUD操作相关推荐

  1. 使用SQL数据库在Python中执行CRUD操作

    目录 介绍 背景 在Visual Studio中创建一个Python项目 在SQL中创建数据库和表 为数据库创建配置文件 安装Python包 "Pypyodbc" 创建连接文件 创 ...

  2. sql crud_SQL Server中的CRUD操作

    sql crud CRUD operations are foundation operations every database developer and administrator needs ...

  3. MYSQL,Oracle,SQL数据库在JSP中的驱动

    MYSQL,Oracle,SQL数据库在JSP中的驱动 datasource.url=jdbc:mysql://localhost:3306/bbscs6?useUnicode=true&ch ...

  4. vue.js crud_ASP.NET CORE —从零到英雄学习ADO.NET中的CRUD操作

    vue.js crud ADO.NET ASP.NET Core中的CRUD操作 在此ASP.NET Core教程中,您将从一开始就学习在ADO.NET中进行CRUD操作. 本教程将帮助您学习ADO. ...

  5. Python中进行Excle操作

    Python中进行Excle操作 一.excel文档的基本定义 工作薄(workbook) 工作表(sheet) 活动表(active sheet) 行(row): 1,2,3,4,5,6--.. 列 ...

  6. python中的日志操作和发送邮件

    1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...

  7. python中二进制文件_Python学习基础篇 -6: Python中的文件操作

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...

  8. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  9. python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 .文件有有什么用 文件可以看作一个仓库, ...

最新文章

  1. Android游戏框架解读之总体结构
  2. io python_python学习笔记 - StringIO以及BytesIO
  3. PHP文件信息相关api
  4. PHP调用JS/CSS方法
  5. android TextUtils的使用
  6. mysql yintint类型_MySQL服务器2 被嫌弃的胖子
  7. 50matches:更准确的搜索引擎
  8. [转载] 用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
  9. request 和response 中的setCharacterEncoding区别
  10. dB、dBm、dBw、dBi……到底有啥区别?
  11. Openbravo3.0 客户端代码开发与API
  12. 日期转换成年月日格式java_如何将日,月,年转换为日期格式?
  13. 何恺明组新论文:只用ViT做主干也可以做好目标检测
  14. 2017年总结和计划
  15. Context-free grammar 与 BNF,ASN.1
  16. php利用表格敬将所选择的数据显示出来,单元格下拉筛选设置/Excel对筛选后的单元格进行下拉填充...
  17. OWASP的s-sdlc项目优秀分享
  18. 锐目对讲机的使用方法详解
  19. 中小学计算机知识ppt,中小学信息技术课程标准解读.ppt
  20. HGE编写游戏的心得体会

热门文章

  1. ad9生成坐标文件_提高效率 | 教你批量提取CAD坐标的小技巧
  2. arp协议属于哪一层_网络工程师(3):详解ARP协议
  3. linux上derby数据库,体验纯Java数据库——Derby
  4. 虚拟机安装日志服务器,rsyslog日志服务器搭建
  5. object picker 微信小程序_第三天学习微信小程序开发总结
  6. excel 粘贴到web_使用EXCEL导入参考历年高考大数据,为2019年高考志愿填报做参考...
  7. python从指定文件夹导入模块_Python实现的在特定目录下导入模块功能分析
  8. python难度大吗_python需要学多久?自学两年也很难达到企业标准
  9. UI设计干货素材|动效导航,漂亮的悬停动效
  10. C++设计模式详解之外观模式解析