`
xiaolin0199
  • 浏览: 571152 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

django访问sql server--django-pyodbc

 
阅读更多

描述:用django访问sql server,网上有介绍几种方法,这是主要介绍django-pyodbc

测试环境:

系统: ubuntu 12.04

      django 1.4

      python 2.7

      pyodbc 3.0.3 (python连接sql server的包)

      django-pyodbc 1.2 (一个django连接数据库的第三方包,主要用pyodbc连接sql server)

 

安装调试

主要参考文档:

http://logrit.com/weblog/2012/07/16/accessing-sql-server-mssql-database-django/

 

http://tzangms.com/programming/2391/

 

关于利用pyodbc访问sql server,可参考以前写的一篇文档:

http://xiaolin0199.iteye.com/blog/2020913

 

安装odbc和pyodbc

sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc python-dev
sudo easy_install pyodbc

 

配置odbc

 

修改/etc/odbc.ini,添加 

[ODBC Data Sources]
ODBCNAME = Microsoft SQL Server
[MSSQL-PYTHON]
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Description = Hi! This is a description of the MSSQL-PYTHON driver
Trace = No
#Database = cxonline
Server = 192.168.0.47
Port = 1433

 

测试

 

可通过isql命令测试odbc是否可连接服务器192.168.0.47上的sql server 

isql -v MSSQL-PYTHON <Username> <Password>
SELECT TOP 1 * FROM <SomeTable>

 

安装django-pyodbc

django-pyodbc (google-code):http://code.google.com/p/django-pyodbc/

 

可通过以下命令安装:

svn checkout http://django-pyodbc.googlecode.com/svn/trunk/ django-pyodbc-read-only
cd django-pyodbc-read-only
python setup.py build install

 

 

当然也可以直接将安装包中的sql_server copy到要使用的项目根目录下,

 

由于下面要说的该包中有一个小bug,所以我直接将包copy到项目根目录下,修改bug后加入svn

 

关于django-pyodbc的一个bug

修改sql_server/pyodbc/operations.py 10行

 def __init__(self, connection):
        #super(DatabaseOperations, self).__init__()
        super(DatabaseOperations, self).__init__(connection)
        self.connection = connection
        self._ss_ver = None

 

django-pyodbc的使用

写道
当前面的odbc都配置成功时,使用django-pyodbc就相当简单,
只要配置下数据库就可以连接sql server,而且可使用django原来的orm的写法
包括通过模型的定义来创建数据库等

 

 

修改 settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'icgoo_manage',                      # Or path to database file if using sqlite3.
        'USER': 'lidongdev',                      # Not used with sqlite3.
        'PASSWORD': 'xxxxx',                  # Not used with sqlite3.
        'HOST': '192.168.0.8',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    },
    'mssql': {
        'NAME': 'cxonline_new',
        'ENGINE': 'sql_server.pyodbc',
        'HOST': '192.168.0.47',
        'USER': 'sa',
        'PASSWORD': 'xxxxxx',
        'PORT': '1433',                      # Set to empty string for default. Not used with sqlite3.
        'OPTIONS': {
                'host_is_server': False,
                'dsn': 'MSSQL-PYTHON',
        },
}
    }

DATABASE_OPTIONS = {
        'host_is_server': False,
        'dsn': 'MSSQL-PYTHON',
}
写道
定义的mssql就是用于连接sql server,
settings中关键是需要定义dsn到上面配置好的odbc数据源
'dsn': 'MSSQL-PYTHON',

 

 

 简单调试

#进入django项目的shell调试
$python manage.py shell

>>> from django.db import connections
>>> conn = connections['mssql']
>>> cur = conn.cursor()
>>> cur.execute('select Top 1 * from _CRM_Company')
<pyodbc.Cursor object at 0xac1b528>
>>> cur.fetchall()
[(13528, u'\u91cd\u5e86\u65e0\u7ebf\u7eff\u6d32\u901a\u4fe1\u6280\u672f\u6709\u9650\u516c\u53f8', None, 1, u' ', None, u' ', u' ', None, None, None, No
ne, False, 0, None, True, 83, 1, datetime.datetime(2008, 8, 28, 8, 55, 2, 240000), None, 2, None, -1, 0.0, 0.0)]

 

 

分享到:
评论

相关推荐

    django-pyodbc-azure:使用pyodbc的Microsoft SQL Server和Azure SQL数据库的Django后端

    本文将深入探讨`django-pyodbc-azure`,这是一个Django后端适配器,使得Python的Django框架能够通过pyodbc库与Microsoft SQL Server和Azure SQL数据库进行无缝集成。这个项目的目标是提供一个稳定且高性能的解决方案...

    django-pyodbc下载

    Django-PyODBC是Django框架的一个扩展,它允许开发者使用Python的ODBC接口连接到像Microsoft SQL Server这样的数据库系统。在Python的世界里,Django是一个流行的Web开发框架,以其“快速、可扩展且美观”的特性而...

    django-pyodbc-gis:通过django-pyodbc-azure驱动程序对MS SQL Server的Geodjango支持

    该驱动程序实现了在之上构建的对Microsoft SQL Server的基本GIS(geodjango)支持。 在此阶段,应将其视为非常具有alpha品质! 反馈,问题和补丁都非常受欢迎。支持和不支持的操作支持大多数。 主要的例外是那些包括...

    django-pyodbc:适用于Django 1.4+的ODBC驱动的MS SQL Server DB后端

    pyodbc是在多个平台上从Python访问SQL Server的成熟,可行的方法,并且得到了积极维护。 SQLAlchemy也将其用于SQL Server连接。 这是原始的分支,驻留在Google Code上,于2011年进行了更新。 特征 [x]通过pip ...

    让Django支持Sql Server作后端数据库的方法

    1. 安装Python的SQL Server连接库,如pymssql、pyodbc或django-pyodbc-azure。 2. 配置Django的DATABASES设置,提供数据库名称、用户、密码、主机和端口信息。 3. 确保使用的Django版本与所选的数据库适配器兼容。 4...

    Django 连接sql server数据库的方法

    根据提供的信息,需要安装的是`django-pyodbc-azure`这个包,这个包是专为在Django中使用SQL Server设计的。此外,还需要确保系统上安装了ODBC驱动,因为`django-pyodbc-azure`依赖于ODBC与SQL Server进行通信。如果...

    django-1.6 win32扩展sqlserver 2008

    注意,尽管这个配置是针对Django 1.6和SQL Server 2008的,但随着技术的发展,更现代的解决方案可能建议使用更新的Python版本(如Python 3),以及更稳定和维护良好的数据库适配器,如`pyodbc`或`sqlalchemy`。

    django-mssql-1.4.zip

    《Django MSSQL 1.4:连接Python与SQL Server的桥梁》 在Python的世界里,Django是一个广受欢迎的Web开发框架,以其强大的功能和高效性著称。然而,当开发者需要处理与Microsoft SQL Server的数据交互时,Django...

    SQL Server Native Client 10.0.zip

    Django通常通过Python的数据库API(如pymssql或pyodbc)与数据库进行交互,而这些驱动会依赖于系统上已经安装的SQL Server Native Client或者其他兼容的ODBC驱动。 安装SQL Server Native Client 10.0后,你需要在...

    python+sqlserver教务管理系统数据库应用课程设计

    1. Python基础:包括变量、数据类型、控制结构、函数等基础知识,以及如何使用Python的数据库连接库(如pyodbc、pymssql或pandas)来操作SQL Server数据库。 2. SQL语言:包括SELECT、INSERT、UPDATE、DELETE等基本...

    sqlserver_py-master_python飞机订票系统_

    Python有多种数据库接口,如pymysql、pyodbc或pysqldriver,其中可能使用了某一种或自定义的适配器来实现与SQL Server的连接。系统的数据存储和管理功能依赖于SQL Server,这是一个强大且广泛使用的商业关系型数据库...

    sql-使用python开发的sql查询平台-优质项目.zip

    Python因其简洁的语法和丰富的库支持,在数据科学领域广泛应用,尤其在与数据库交互方面,Python提供了一些优秀的库,如pandas、sqlite3、pyodbc、psycopg2等,这些库使得通过Python执行SQL查询变得非常方便。...

    精选_基于Python和SQL SERVER数据库实现的实验信息综合管理系统_源码打包

    Python的多种框架如Flask或Django可以轻松构建Web应用程序,同时,Python的数据库接口模块(如pyodbc或pymssql)使得与SQL SERVER的通信变得简单。 SQL SERVER,作为Microsoft公司的一款关系型数据库管理系统,以其...

    课程设计Python+SQLServer实现疫情医疗信息管理系统源码.zip

    主要使用的Python库可能包括`pandas`进行数据处理,`Flask`或`Django`作为Web框架,以及`pyodbc`或`pymssql`用于与SQLServer数据库的交互。 2. **SQLServer数据库**:SQLServer是一个关系型数据库管理系统,用于...

    基于python+Django的数据库监控系统.zip

    在Python和Django的项目中,可能使用了如psycopg2(PostgreSQL)、pyodbc(ODBC兼容数据库)、mysql-connector-python(MySQL)等库来实现数据库连接和操作。 【毕业设计】 毕业设计是高等教育中的一项重要任务,...

    Django连接本地mysql数据库(pycharm)的步骤

    Django的`django-db-pool`或`django-pyodbc-azure`等扩展可以提供此类功能。同时,了解Django的异步支持(如`asyncio`和`ThreadPoolExecutor`)也是提升性能的关键,特别是处理耗时的数据库操作时。 总之,连接...

    物业管理系统,python数据库课程设计

    在Python中,可以使用pyodbc、pymssql或pymsql等库来连接和操作SQL Server数据库。 在数据库设计阶段,主要考虑的是数据表的结构和关系。例如,可能有以下几个关键表: 1. 用户表(Users):存储管理员和租户的基本...

    基于Inception的可视化web端sql审核平台-python

    【标题】"基于Inception的可视化web端sql审核平台-python" 涉及的主要知识点是构建一个使用Python语言开发的,基于Inception架构的Web应用程序,用于SQL审计和可视化。Inception是一个开源项目,旨在提供SQL安全审计...

    完整数据库课程设计 学生管理系统

    - **连接数据库**:利用Python中的pyodbc或pymssql库与SQL Server建立连接。 - **数据模型设计**:根据需求分析阶段确定的功能模块,设计出符合实际业务逻辑的数据表结构。 - **安全性考虑**:在用户登录验证、...

    python考试系统开发.zip

    Python支持多种数据库,如MySQL、SQLite、PostgreSQL等,通过Python的数据库API如sqlite3、pyodbc或psycopg2进行交互。 3. **模板引擎**:为了动态生成网页,开发者通常会使用模板引擎,如Django的模板语言或Jinja2...

Global site tag (gtag.js) - Google Analytics