Django For MSSQL
Posted 浮生记闲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django For MSSQL相关的知识,希望对你有一定的参考价值。
前面两部分为基础知识,详细描述Mssql的连接请看第三部分
使用的环境:
python 3.5.3
django 1.10
1.Anaconda
这一步可以省略,用原生的也挺好,因为安装theano比较方便,所以推荐用这个吧
(1) 下载Anaconda
去网上搜索一下anaconda,需要历史版本的就去历史文档里面找。https://www.anaconda.com/download/
(2) 执行安装
需要制定安装位置就改一下,不需要就一路Enter和yes就好了
(3) 基本命令
当你键入conda时就会出现各个选项的意思,以下是一些基本操作:
conda info -e #查看系统现有的环境
conda list #列出所有安装的package
conda innstall sth #这个和pip类似
sourcce activate root #切换环境,win环境下没有source
还有其他的命令请参照官方文档,这里不做赘述
2.Django
(1) 安装Django
conda install django,pip instaall django,源码包都可以
推荐自强学堂的教程,写的很明白
http://code.ziqiangxuetang.com/django/django-tutorial.html
(3) Django基本流程赘述:
[1]新建一个项目
django-admin startproject project_name
-
[2]新建App
python manage.py startapp app_name
-
[3]注册App
APP新建完后,必须注册才能生效。编辑
settings.py
中的INSTALLED_APPS
,增加新建的应用。(在最下面加上app的名字)
-
[4]新建模板路径
在安装目录下新建templates目录,专门存放网页文件
修改settings.py中的TEMPLATES在DIRS中添加上刚才的路径,使django知道模板存放在哪
在view中 用render方法返回一个网页 注意这个方法需要导入才可以使用
[5]View中添加函数
1.定义各种方法:eg
-2.函数:eg
-
[6]urls中定义连接
1.定义方法,确定是从哪个view中调用函数:eg
-2.确定路径,增加url:eg
-
-
[7]页面编写与继承
1.第一种 {{words}}:eg
-
-
-2.第二种,网页中调用, 将调用的语句放到一个网页文件里:eg
-
-3.第三种 继承替换已经存在的语句:eg
-
-
-
-
[8]开启服务
python manage.py runserver 0.0.0.0:8000
-
[9]其他操作
python manage.py makemigrations #创建更改的文件
python manage.py migrate #将生成的py文件应用到数据库
3.关于数据库
Django只内置了几个 Database Backend,默认并不支持 Microsoft SQL Server(MSSQL)。这是多么的苦逼啊….庆幸的是微软“大发慈悲”在2012年给 Redhat 提供了官方ODBC驱动,而Django的第三方库中有比较完善的ODBC支持,所以我们可以迂回实现。
言归正传,虽然苦逼,还是要搞一下的,于是乎,我们的任务开始了:列举两种方法,具体大同小异,看个人选择:
方法一:
[1] 安装pyodbc和django-pyodbc
pip install pyodbc django_pyodbc
注意:提前安装好gcc gcc-c++等,pip升级
[2] 安装FreeTDS
pip或者源码安装均可.这个不安装会报错的!!!
修改配置文件
vi /usr/local/freetds/etc/freetds.conf
[mssql]
host = 192.168.1.110
port = 1433
tds version = 7.0
client charset = UTF-8进行测试
tsql -S mssql -U admin -P admin
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> use test
2> go
1> select * from lianxi
2> go
id paytime paynum
1 2 100
1>
-
[3] 配置odbc
主要有两个文件 odbc.ini 和 odbcinst.ini
-
(1) 配置odbcinst.ini
vim /etc/odbcinst.ini加入
[FreeTDS]
Description = ODBC of FreeTDS for MS-SQLServer
Driver = /usr/local/freetds/lib/libtdsodbc.so
FileUsage = 1
##
##确定好你的driver的位置,如果找不到查找一下安装freetds的
(2) 配置odbc.ini
vim /etc/odbc.ini加入
[odbc连接名]
Driver = FreeTDS
ServerName = mssql(FreeTDS里配的连接名)
Database = test_db(数据库名)
-(3) 测试是否成功
isql -v odbc连接名 账号 密码
成功后会出现如下信息:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
-
[4] 配置Django文件
-
[5] 最后的检查
./manage.py shell 测试一下
-
from django.db import connections
cur = connections['default'].cursor()
cur.execute("SELECT * FROM test")
cur.fetchone()
##如果正常说明配置结束,一切ok
方法二:
[1] 安装MSSQL Server ODBC Driver
如果你还是出现了报错情况,说不能安装的话,那可以试一下下面的情况:
wget https://packages.microsoft.com/config/rhel/7/prod.repo
yum update
yum remove unixODBC unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
yum install msodbcsql-13.1.3.0-1
yum install unixODBC-devel #this step is optional but recommended*
-我们第一步就已经结束了
-
[2] 安装pyodbc和django-pyodbc
pip install pyodbc django_pyodbc
安装完pyodbc我们就可以在python的shell下测试了驱动是否安装成功了。
注意:提前安装好gcc gcc-c++等,pip升级
可以用下面的方式测试一下是否安装成功
import pyodbc
connection = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=127.0.0.1;DATABASE=test;UID=user;PWD=password')
curr = connection.cursor()
-
[3] 配置Django文件
'test':{
'ENGINE':'django_pyodbc',
'NAME':'test',
'HOST':'127.0.0.1',
'USER':'test',
'PASSWORD':'password',
'OPTIONS': {
'driver': 'SQL Server Native Client 11.0',
},
}
-
[4] 最后的检查
./manage.py shell 测试一下
from django.db import connections
cur = connections['test'].cursor()
cur.execute("SELECT * FROM test")
cur.fetchone()
##如果正常说明配置结束,一切ok
以上是关于Django For MSSQL的主要内容,如果未能解决你的问题,请参考以下文章
如何使用引导程序和 for 循环在 django 中创建电影片段?