300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python之web开发(三):python使用django框架搭建网站之SQLserver数据库连接

Python之web开发(三):python使用django框架搭建网站之SQLserver数据库连接

时间:2019-02-22 14:03:35

相关推荐

Python之web开发(三):python使用django框架搭建网站之SQLserver数据库连接

先简单跟大家复习一下Django项目之前的内容:

step1:建立一个Django项目的工程(使用django-admin.py startproject ×××)

step2:创建app并配置相应的文件(app根据用户的功能模块去划分:manage.py startapp ×××),并在setting.py中添加app等内容。

step3:上面是完成本次工程的基本的操作和配置,接下来就是在已有的配置的基础上,

分别完成model模块、views模块、urls模块,可以理解为MVC结构,

model模块功能是完成数据库的创建以及框架和数据库之间的默认接口;views模块功能是负责将数据很好的显示在前端以及控制前端的内容;urls模块功能则是将各个视图所返回的值能够通过urls模块将其显示在前端。

编写 Model 是SQL server建设的核心:

****使用软件(弄清楚这些很关键,否则容易在SQL server测试时出错):

python: 3.7.4

Django:2.2.6

Sql server:Microsoft SQL Server R2 (RTM) - 10.50.1600.1 (X64)

【写在前面】:

sql server是微软出的一款闭源的可运行于windows和linux平台上的关系型数据库。由于其闭源的特性,所以较少有公司使用,但是比较神奇的是,我所在的公司和我几个朋友所在的公司业务都是以爬虫为主,都是以sql server作为主要的数据库在使用。

官方介绍详见:数据库配置¶/zh-hans/2.0/intro/tutorial02/

【应用】

在 Django 里写一个数据库驱动的 Web 应用

step1:是定义模型 - 也就是数据库结构设计和附加的其它元数据,这些概念可以通过一个简单的 Python 类来描述。

一、打包

如果你是使用Django的老手应该知道**Django默认不支持sql server**;如果你刚开始接触Django,那么你应该知道Django默认支持四种数据库:postgresql、mysql、oracle、sqlite。以上四个数据库不需要直接进行过多的操作,只需要你修改项目中的settings.py文件中的DATABASE就可以了。

但是使用sql server,则需要自己再导入一些东西。

step1:打开我们的setting我们可以看到下图中确认缺少SQL server连接库-django-pyodbc-azure库(files→setting)

搜索并自动安装 django-pyodbc-azure库(也可 pip install 安装)

完成安装如下图:

**step2:**完成库安装以后就修改你的项目中的settings.py文件

DATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),'ENGINE': 'sql_server.pyodbc','NAME': 'DjangoDB',# 数据库名'USER': 'sa', # 数据库登录用户'PASSWORD': '726803', # 数据库密码'HOST': '(local)', # 数据库服务器'PORT': '', # 端口,默认1433'OPTIONS': {# odbc驱动'driver': 'SQL Server Native Client 10.0','MARS_Connection': True,},}}

【特别说明】:

**‘ENGINE’**这个键值对是固定写法(需要提前pip install pyodbc并且import pyodbc以后才能生效’NAME’: ‘DjangoDB’,# 数据库名位体检在数据库中我们手动建好的的名称非自动生成’USER’: ‘sa’,# 数据库登录用户

’PASSWORD’: ‘726803’,# 数据库密码

’HOST’: ‘(local)’,# 数据库服务器(一定要填入下图红框处名称)

‘PORT’: ‘’, # 端口,默认1433在连接默认数据库的时候很多人都没有写过’OPTIONS’这个东西,一开始没有写,结果怎么着都连不上。很多人说在odbc里调数据库的东西引擎。结果加进去还是不行,最后发现是’OPTIONS’没有写,写完之后所有问题都解决了。

参考原文链接:/qq_39936349/article/details/80990483

step3:model文件配置

特别说明:是自己通过python manage.py startapp myapp生成的项目名下文件中的model.py文件

如下图:

codes:

from django.db import models# Create your models here.class UserInfo(models.Model):id = models.AutoField(primary_key=True)name = models.CharField(max_length=16, help_text=u'名字')moblie = models.IntegerField()password = models.CharField(max_length=24)

step4:同步数据库:

只需要记住,改变模型需要这三步:

编辑 models.py 文件,改变模型。运行 python manage.py makemigrations 为模型的改变生成迁移文件。运行 python manage.py migrate 来应用数据库迁移。

terminal依次执行如下两段代码

1、生成迁移文件:

python manage.py makemigrations

2、生成数据库表:

python manage.py migrate

ps 能看到具体操作指令的 操作:

数据库验证:

你也可以通过指令: python manage.py check 实现整个项目中的操作有没有问题。

【写在后面】

错误提示:

1.执行manage migrate时报告“django.db.utils.InterfaceError: (‘IM002’, ‘[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)’) ”的错误

解决方法:

a. 检查settings.py文件的信息是否正确

DATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),'ENGINE': 'sql_server.pyodbc','NAME': 'DjangoDB',# 数据库名'USER': 'sa', # 数据库登录用户'PASSWORD': '726803', # 数据库密码'HOST': '(local)', # 数据库服务器'PORT': '', # 端口,默认1433'OPTIONS': {# odbc驱动'driver': 'SQL Server Native Client 10.0','MARS_Connection': True,},}}

b. 可运行以下代码检查Python连接SqlServer 数据库是否正常

import pyodbcconnect = pyodbc.connect(r'DRIVER={SQL Server Native Client 10.0};'r'SERVER=(local);'r'DATABASE=test;UID=sa;PWD=726803')cursor = connect.cursor()cursor.execute("select * from test")for row in cursor:print(row.TIME, row.DATA)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。