目录
介绍
背景
在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建立连接。我们将逐步进行实际演示,并详细介绍每个步骤。步骤如下:
- 在Visual Studio 2017中创建Python项目
- 在SQL中创建数据库和表
- 为数据库创建配置文件
- 将Python软件包安装为“Pypyodbc”
- 创建一个连接文件
- 创建新纪录
- 读取数据
- 更新现有记录
- 删除数据
我已经在上面为本文定义了目标。因此,在不浪费大量时间的情况下,让我们开始实际的实现。
在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
GO
USE Test
GO
CREATE 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.Org:Pypyodbc是一个纯Python脚本,运行在CPython/IronPython/PyPy上,版本2.4 /2.5/2.6/2.7/3.2/3.3,win/ Linux的32/64位。有关更多.. https://pypi.org/project/pypyodbc/
要在项目环境中安装新软件包,请右键单击Python环境,然后选择“Install Python Package .. ”。
它将打开Python Environments窗口,您可以在其中找到所有安装环境,在它的下面,我们有一个搜索框,从中可以搜索任何特定的软件包并进行安装。因此,只需如下图所示进行搜索pypyodbc,然后单击“ Install pypyodbc(1.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 Delete
def 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)”, 该方法将负责在数据库中添加新记录。在这里,我们正在做以下事情。
- 首先,从db_connection文件获取数据库连接。
- 输入两个用于分别输入名称和年龄的值。
- 使用输入值(名称,年龄)创建插入查询并执行。
- 提交连接,以便将值提交到数据库表中。
- 在finally块中,关闭连接。
- 在执行try- except- finally块中维护。
- 打印有价值的消息。
import db_connection as dbConn
class Create:
def func_CreateData(self):
# Get the sql connection
connection = dbConn.getConnection()
name = input('Enter Name = ')
age = input('Enter Age = ')
try:
query = "Insert Into Employee(Name, Age) Values(?,?)"
cursor = connection.cursor()
# Execute the sql query
cursor.execute(query, [name, age])
# Commit the data
connection.commit()
print('Data Saved Successfully')
except:
print('Something wrong, please check')
finally:
# Close the connection
connection.close()
让我们运行项目,您将获得类似于下面的窗口。在这里,您将获得可供选择的选项[代码将在本文的底部提供]。因此,首先选择您的选项作为C。这意味着,您将创建一个新记录。
它将要求分别输入名称和年龄,数据将以适当的消息“数据已成功保存”进行保存。
让我们再创建一个文件“read.py”来读取和打印数据。在这里,我们还将执行与创建时相同的操作。
- 首先,从db_connection 文件获取数据库连接。
- 创建select查询并执行它。
- 获取某个变量中的值,这里我们获取一个游标。
- 在游标上循环并打印值。
import db_connection as dbConn
class Read:
def func_ReadData(self):
# Get the sql connection
connection = dbConn.getConnection()
cursor = connection.cursor()
# Execute the sql query
cursor.execute('Select * from Employee')
# Print the data
for 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 connection
connection = dbConn.getConnection()
id = input('Enter Employee Id = ')
try:
# Fetch the data which needs to be updated
sql = "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 query
cursor.execute(query, [name, age, id])
connection.commit()
print('Data Updated Successfully')
except:
print('Something wrong, please check')
finally:
# Close the connection
connection.close()
这次在运行项目时,只需选择U作为更新记录的选项。首先,它将要求输入要更新的员工ID,并显示该员工的数据。接下来,它将要求输入该雇员的姓名和年龄的更新数据并进行更新。成功更新后,将显示确认消息。
在这里,我们将尝试删除现有记录。因此,让我们再创建一个用于删除操作的文件“delete.py”。 在这里,我们将首先要求用户输入需要删除的员工ID,并根据该ID显示该员工的数据。
下一条消息将要求您确认是否愿意删除。我们有两个选项:“Y”和“N”。如果要删除记录,只需按Y。
import db_connection as dbConn;
class Delete:
def func_DeleteData(self):
# Get the SQL connection
connection = dbConn.getConnection()
id = input('Enter Employee Id = ')
try:
# Get record which needs to be deleted
sql = "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 confirmation
if 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操作。