使用python

时间:2018-01-11 16:49:56

标签: sql-server python-2.7

我有一个基于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
我是否必须每次都更改服务器代码时间还是有的 无论客户端发送什么,自动化整个服务器代码的过程? 谢谢

1 个答案:

答案 0 :(得分:0)

它应该有许多解决方案,但取决于您的体系结构和客户端与服务器之间的协议。

例如, 我们可以在客户端之间定义消息,服务器必须遵循以下规则:

  1. 消息必须是一个json
  2. 消息必须有一个名为“MessageType”或“MessageID”或“MessageName”
  3. 的节点

    对于您的方案,消息将类似于

    {'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