首页
DST服务器列表
关于
推荐
AI深度搜索
Search
1
庄子的回文——从零开始的入门级64位ROP
1,169 阅读
2
Windows沙盒——运行不安全的软件
858 阅读
3
多模态大模型文本识别和理解能力测评
244 阅读
4
Django Admin安装及入门教程
86 阅读
5
当代码遇上AI绘画:图像生成大模型在开发中的妙用初探
57 阅读
研究笔记
技术文档
工具和库
网络安全
心理学
生活小记
登录
/
注册
Search
标签搜索
新手教程
Django
Midjourney
binary
64位
ROP
Sora
pwn
UI设计
AI图像生成
ODBC
后台管理
古籍
手写文本识别
Django Admin
图像生成
大模型
LLM
OCR
票证识别
libero
累计撰写
7
篇文章
累计收到
15
条评论
首页
栏目
研究笔记
技术文档
工具和库
网络安全
心理学
生活小记
页面
DST服务器列表
关于
推荐
AI深度搜索
搜索到
1
篇与
的结果
2025-05-08
ODBC安装及Django配置
预计阅读时间:25-35 分钟。本文包含 macOS 和 Windows 平台的配置方法,您可以根据您的操作系统选择阅读相应部分。实际操作中,软件下载和安装可能需要额外时间。开始之前在开始配置之前,我们先简单了解几个基本概念,这会让你对接下来的操作更有数。什么是 ODBC?我为什么需要它?ODBC (Open Database Connectivity):你可以把它想象成一个通用的“翻译官”或“适配器”。很多不同的应用程序(比如我们这里的 Python/Django)想要和各种不同的数据库(比如 SQL Server、Oracle、MySQL 等)“对话”。ODBC 提供了一套标准的接口(API),让应用程序可以用一种统一的方式来请求数据,而不用关心底层数据库的具体实现细节。为什么需要? 对于某些数据库(尤其是像 SQL Server 这样的商业数据库),Python 的数据库驱动(比如 pyodbc 或 Django 使用的 mssql-django 后端间接依赖的驱动)会通过 ODBC 来与数据库通信。ODBC 驱动程序由数据库厂商(如微软)或第三方提供,并安装在你的操作系统上。为什么 Java 连接数据库好像不太需要 ODBC,但 Python 有时需要?Java 有 JDBC (Java Database Connectivity):Java 生态系统中有其自己的一套标准接口 JDBC。数据库厂商通常会提供纯 Java 的 JDBC 驱动程序,这些驱动程序直接实现了与数据库通信的协议,所以它们不依赖操作系统层面的 ODBC。Python 的情况:Python 也有很多数据库的直接驱动程序(比如 psycopg2 for PostgreSQL, mysqlclient for MySQL),它们可能不依赖 ODBC。但对于 SQL Server,一种常见的连接方式就是通过 ODBC。Django 在连接 SQL Server 时,其后端库(如 mssql-django)通常会利用系统上已安装的 ODBC 驱动。本文会用到哪些 ODBC 相关程序/驱动?在 macOS 上连接 SQL Server:我们会使用 unixODBC:一个开源的 ODBC 管理器,相当于 Windows 上的 ODBC 数据源管理器。以及 FreeTDS:一个开源的驱动程序,让 macOS/Linux 系统能够连接到 SQL Server。在 Windows 上连接 SQL Server:我们会使用 Windows 系统自带的 “ODBC 数据源管理器”。以及微软官方提供的 “ODBC Driver for SQL Server” (例如 ODBC Driver 17/18 for SQL Server)。关于 Oracle 连接:本文后续展示的 Django 连接 Oracle 的示例,将采用 Oracle 特有的连接字符串方式,它不依赖于我们前面为 SQL Server 配置的 ODBC,而是通过 Django 的 Oracle 后端直接与 Oracle 客户端库(如果需要)或数据库通信。简单来说,ODBC 就像一座桥梁,帮助我们的 Python/Django 应用连接到特定类型的数据库。接下来的内容,我们将一步步教你如何在你的 Mac 或 Windows 系统上搭建这座“桥梁”来连接 SQL Server,并配置 Django 项目使用它。Mac系统连接SQLServer本章节描述的在macOS上使用 unixODBC 和 FreeTDS 连接SQL Server的配置流程,其核心原理和步骤与在Linux系统上操作非常相似。主要区别在于软件包的安装命令(例如,您会使用 apt、yum 或 dnf 而不是 brew)以及配置文件的默认存放路径。理解了macOS的配置过程后,您可以触类旁通地在Linux上完成类似配置。Mac:系统版本Sonoma14.5;brew4.4.6SQLServer:2019版本(容器镜像为mcr.microsoft.com/mssql/server:2019-latest)brew install unixodbc brew install freetds open -e /opt/homebrew/etc/odbcinst.ini # 编辑文件 # 在文件末尾输入下面的内容,用来将FreeTDS注册到unixodbc中 [FreeTDS] Description=FreeTDS Driver Driver=/opt/homebrew/lib/libtdsodbc.so open -e /opt/homebrew/etc/odbc.ini # 编辑文件 # 在文件末尾输入下面的内容,请根据你实际要连接的数据库配置Server、Port和Database # 如果你使用的SQLServer版本较老,TDS_Version可尝试小一点的版本,例如7.0 [djangoadmindemo] Driver=FreeTDS Server=127.0.0.1 Port=7011 Database=djangoadmin TDS_Version=7.4 你可以使用下面的命令来验证ODBC是否配置正确export ODBCSYSINI=/opt/homebrew/etc export ODBCINI=/opt/homebrew/etc/odbc.ini odbcinst -q -s # 如果配置正确,会列出你配置的所有数据源名称 isql -v djangoadmindemo sa ******** # 使用指定的用户和密码连接djangoadmindemo数据源Django项目配置文件中,数据库连接配置的OPTIONS参考下面的写法DATABASES = { 'default': { ...... 'OPTIONS': { "driver": "FreeTDS", 'dsn': "djangoadmindemo", }, } }Windows系统连接SQLServerWindows:win10专业版SQLServer:2019版本(容器镜像为mcr.microsoft.com/mssql/server:2019-latest)驱动下载和安装点击下面的链接,选择合适的版本进行下载:Download ODBC Driver for SQL Server - ODBC Driver for SQL Server | Microsoft Learn安装完成后,按win+R,输入odbcad32,打开ODBC数据源管理程序:点击添加,如果你的SQLServer版本比较新,就选择ODBC Driver 18 for SQL Server,如果很老,就选择SQL Server。注意:服务器的IP和端口之前请用逗号,分割,不要用冒号:一直点下一步,最后点击测试数据源。如果提示“证书链是由不受信任的颁发机构颁发的。”,可以返回上一步,勾选“信任服务证书”Django项目配置文件中,数据库连接配置的OPTIONS参考下面的写法,driver对应上图的驱动程序,dsn对应上图的名称。DATABASES = { 'default': { ...... 'OPTIONS': { "driver": "ODBC Driver 18 for SQL Server", 'dsn': "djangoadmindemo", }, } }连接ORACLEOracle:23版本(容器镜像为gvenzl/oracle-free:23)(注:Django5.0和Django4.X都要求Oracle版本为19c或更高)请参考下面的示例进行配置: 'default': { 'ENGINE': 'django.db.backends.oracle', 'NAME': ( "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=162.105.132.198)(PORT=7012))" "(CONNECT_DATA=(SERVICE_NAME=FREEPDB1)))" ), # ORACLE的连接描述,如果你配置了tnsnames.ora,你可以在这里只指定服务名的名称 'USER': 'djangoadmin', 'PASSWORD': '**********', }
2025年05月08日
52 阅读
0 评论
1 点赞