You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于现有MS SQL Server创建Django Web应用及调用存储过程问询

问题解答

1. 能否复用现有MS SQL Server数据库?

完全可以。Django原生虽不支持MS SQL Server,但借助第三方数据库后端包(如django-mssql-backend或django-pyodbc-azure),就能直接连接并使用现有MS SQL Server数据库,无需新建库。只需在Django项目的settings.py中配置正确的连接参数即可:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',  # django-mssql-backend对应的引擎
        'NAME': '你的现有数据库名',
        'USER': '数据库用户名',
        'PASSWORD': '数据库密码',
        'HOST': '数据库服务器地址',
        'PORT': '1433',
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
        },
    }
}

2. 使用第三方MS SQL包时的核心操作支持

针对你提到的需求,django-mssql-backend均能满足:

触发存储过程

可通过Django数据库连接游标直接调用存储过程,示例如下:

from django.db import connection

def call_stored_procedure():
    with connection.cursor() as cursor:
        # 调用带参数的存储过程
        cursor.execute("EXEC 你的存储过程名 @参数1 = %s, @参数2 = %s", ('值1', '值2'))
        # 若存储过程有返回结果,可直接获取
        results = cursor.fetchall()
    return results

执行自定义SQL命令

无论是INSERT、UPDATE、DELETE这类写操作,还是复杂自定义查询,都能通过游标执行原生SQL:

from django.db import connection

def execute_custom_sql():
    with connection.cursor() as cursor:
        # 执行更新操作
        cursor.execute("UPDATE 表名 SET 字段名 = %s WHERE 条件 = %s", ('新值', '条件值'))
        # 按需提交事务
        connection.commit()

通过SELECT语句获取数据

除Django ORM查询外,也可直接用原生SELECT语句获取数据:

from django.db import connection

def fetch_data_with_select():
    with connection.cursor() as cursor:
        cursor.execute("SELECT 字段1, 字段2 FROM 表名 WHERE 条件 = %s", ('条件值',))
        # 获取所有结果
        rows = cursor.fetchall()
        # 可选:转换为字典格式方便使用
        columns = [col[0] for col in cursor.description]
        results = [dict(zip(columns, row)) for row in rows]
    return results

内容的提问来源于stack exchange,提问作者Akshit Chauhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:22:05