我有一个基于python的客户端和服务器应用程序。客户端将一些数据发送到服务器
在哪个服务器(在python上运行)在SQL SERVER数据库上运行某些查询。
例如,让我们考虑客户端发送
a = 5,b = 10
基于哪个服务器计算:
#Server.py
import pyodbc
def test(a,b):
cnxn = pyodbc.connect(r'Driver={SQL Server};Server=.;Database=testdb;Trusted_Connection=yes;')
cursor = cnxn.cursor()
cursor.execute("select * from sample where a='"+a+"'" and b='"+b+"'"")
for row in cursor:
#doSomething ()
变量a和b都在执行函数内硬编码。
现在,如果我想自动完成整个过程并通过自动化,我的意思是说如果
客户端发送 c,d,e,f 等以及 a,b 。
我是否必须每次都更改服务器代码时间还是有的
无论客户端发送什么,自动化整个服务器代码的过程?
谢谢
答案 0 :(得分:0)
它应该有许多解决方案,但取决于您的体系结构和客户端与服务器之间的协议。
例如, 我们可以在客户端之间定义消息,服务器必须遵循以下规则:
对于您的方案,消息将类似于
{'MessageType':'BeginSchedule', 'a':'test1', 'b':'test2', 'option1':1, 'option2':'t1', 'ClientID':'xxx'}
当服务器从一个客户端收到一条消息并且其消息类型为'BeginSchedule'时,将调用'test(a,b)'来使用该请求。
如果有另一个计划,我们可以定义一个'MessageType'='BeginSchedule2',然后在服务器代码中实现一个处理程序以使用MessageType ='BeginSchedule2'的任何请求。
客户端可能会在消息中发送脏数据,您必须在调用处理程序之前添加一些验证器。
客户端可以在消息中发送额外的数据,您可以将它们设计为处理程序的可选参数,请参考: Using Optional and Named Arguments
如果您需要处理程序接受无限参数,请参阅: How to use *args and **kwargs in Python