python连接SQL Server数据

发布时间:2019-09-11 07:45:00编辑:auto阅读(1681)

    方法一:

    1、需要安装pymssql

      pip install pymssql

    2、连接代码:

    import pymssql
    
    conn=pymssql.connect(host='127.0.0.1',user='user',password='password',database='MyDB')
    cur=conn.cursor()
    cur.execute('select * from table1')
    #如果是插入、删除、更新语句切记要写提交命令con.commit()
    print (cur.fetchall())
    cur.close()
    conn.close()

    以下为Django中操作

    Django 1.11如何链接mssql

    工具:django-pyodbc-azure
    django-pyodbc-azure这个工具是目前据我所知最好用的django链接mssql的库
    它有很多版本,需要配合你的Django版本,来下载。附上网址:https://pypi.org/project/django-pyodbc-azure/1.11.0.0/
    可以从历史版本里看看说明文档,看是否适合你的django版本,这里看1.11版本的说明文档。

    配置连接MSSQL数据库,使用案例:

    DATABASES = {
        'default': {
            'ENGINE': 'sql_server.pyodbc',
            'NAME': 'mydb',
            'USER': 'user',
            'PASSWORD': 'password',
            'HOST': 'myserverip',
            'PORT': '',
    
            'OPTIONS': {
                'driver': 'ODBC Driver 13 for SQL Server',   #这里值得说明一点的是需要电脑下载ODBC Driver 13 for SQL Server。
            },
        },
    }
    # set this to False if you want to turn off pyodbc's connection pooling
    DATABASE_CONNECTION_POOLING = False

    附上ODBC Driver 13版本的链接:https://www.microsoft.com/en-us/download/details.aspx?id=50420

    方法二(Django操作):

    1、安装必要的组件:

      pip install django-sqlserver django-pytds pyodbc django-pyodbc pypiwin32  

    2、修改settings.py的DATABASES:

    DATABASES = {
        # 'default': {
        #     'ENGINE': 'django.db.backends.sqlite3',
        #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        # }
        'default': {
            'ENGINE': 'sqlserver',
            'NAME': 'MyDB',
            'HOST': '127.0.0.1',
            'PORT': '1433',
            'USER': 'user',
            'PASSWORD': 'password,
            'OPTIONS': {
                'DRIVER': 'SQL Server Native Client 10.0',
            },
        }
    }

    方法三(Django):

    1、需要安装 SQL Server Management Studio 或者 manually install Microsoft Data Access Components (MDAC)程序。

    2、安装django-mssql和pywin32:

      pip install django-mssql

    3、修改settings.py的DATABASES:

    DATABASES = {
        # 'default': {
        #     'ENGINE': 'django.db.backends.sqlite3',
        #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        # }
    
           'default': {
            'NAME': 'MyDB',
            'ENGINE': 'sqlserver_ado',
            'HOST': '127.0.0.1',
            'USER': 'user',
            'PASSWORD': 'password',
            'OPTIONS': {
                #provider为'SQLCLI10'时若有问题,可改成'SQLOLEDB' ,反之亦然。
                'provider': 'SQLOLEDB', # Have also tried 'SQLCLI11' and 'SQLOLEDB'
                'extra_params': 'DataTypeCompatibility=80'
            },
        }
    }

    方法四(Django):

    1、安装django-pyodbc-azure和pyodbc

        pip install django-pyodbc-azure pyodbc

    2、修改settings.py的DATABASES:

    DATABASES = {
        'default': {
             'ENGINE': 'sql_server.pyodbc',         #数据库引擎设置
             'NAME': 'MyDB',                               #要连接的数据库名
             'USER': 'user',                                  #数据库用户名
             'PASSWORD': 'password',              #数据库密码 
             'HOST': '127.0.0.1',                         #数据库主机地址
             'PORT': '',                                        #数据库端口号,默认可以不写
                     #选项,这个要先在操作系统上完成ODBC的连接创建,并连接成功,注意10.0这个地方,要和自己的ODBC版本一致
              'OPTIONS': {
                  'driver':'SQL Server Native Client 11.0',
                  'MARS_Connection': True,       #使用MARS (multiple active result sets),支持异步
             },
         },
    }
    # set this to False if you want to turn off pyodbc's connection pooling
    DATABASE_CONNECTION_POOLING = False

关键字