Ubuntu VirtualBox部署的Django项目接入局域网MSSQL实现CRUD及过滤功能问询
实现步骤
1. 安装依赖
- 在当前虚拟环境中安装MSSQL对接依赖:
django-mssql-backend、unixodbc、SQL Server官方ODBC驱动,注意安装版本要匹配Python3.6的兼容范围 - 更新
requirements.txt或Pipfile,记录新增的依赖项方便后续部署
2. 配置多数据库
- 修改
mysite/settings.py,在原有DATABASES配置项中新增MSSQL数据源,自定义别名比如mssql_x,依次填写正确的ENGINE、HOST、PORT、NAME(即目标x库)、USER、PASSWORD、ODBC相关OPTIONS参数 - 可选配置:新增数据库路由规则,指定对应模型默认操作MSSQL数据源,避免每次操作都手动指定库
3. 定义对应模型
- 修改
mysite/core/models.py,为x库中需要操作的表编写对应Django模型,必须设置managed = False和正确的db_table参数,避免Django修改MSSQL原生表结构 - 可执行
inspectdb --database mssql_x命令自动生成模型代码,按需调整字段属性即可,减少手动编写工作量
4. 开发筛选、表单逻辑
- 修改
mysite/core/filters.py,基于新增的MSSQL表模型定义对应筛选器,实现需要的字段筛选功能 - 修改
mysite/core/forms.py,新增对应模型的表单类,用于新增、编辑场景下的字段校验
5. 开发视图逻辑
- 修改
mysite/core/views.py,新增对应视图(函数视图或类视图均可),实现数据列表查询(接入筛选器)、新增、编辑、删除逻辑,操作MSSQL数据时要显式指定对应的数据库别名 - 视图返回的上下文需包含数据集、筛选器实例、表单实例等必要字段
6. 配置路由
- 修改
mysite/urls.py,新增对应CRUD操作的路由映射规则
7. 前端页面开发
- 在
mysite/templates目录下新增datagrid页面模板,引入你常用的datagrid前端组件,绑定后端返回的数据集、筛选表单、CRUD操作接口 - 如有需要可修改static目录下的css、js文件调整页面样式和交互
注意事项
- 提前确认VirtualBox的Ubuntu虚拟机网络和局域网MSSQL Server网络互通,且MSSQL开启了远程访问权限、对应端口已放行
- 生产环境不要把MSSQL的账号密码硬编码在settings.py中,建议通过环境变量读取
- 操作MSSQL原生数据时做好异常捕获,避免事务异常导致数据损坏
- Python3.6版本不要安装过高版本的django-mssql-backend,需提前确认版本兼容性
内容的提问来源于stack exchange,提问作者xralf
相关产品推荐
相关产品推荐

