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

news/2024/5/13 3:04:03/文章来源:https://blog.csdn.net/weixin_44322778/article/details/102519332

先简单跟大家复习一下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 2008 R2 (RTM) - 10.50.1600.1 (X64)

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

官方介绍详见:数据库配置¶ https://docs.djangoproject.com/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,},}
}

【特别说明】:

  1. **‘ENGINE’**这个键值对是固定写法(需要提前pip install pyodbc并且import pyodbc以后才能生效
  2. ’NAME’: ‘DjangoDB’, # 数据库名位体检在数据库中我们手动建好的的名称非自动生成
  3. ’USER’: ‘sa’, # 数据库登录用户
    ’PASSWORD’: ‘726803’, # 数据库密码
    ’HOST’: ‘(local)’, # 数据库服务器(一定要填入下图红框处名称)
    在这里插入图片描述
    ‘PORT’: ‘’, # 端口,默认1433
  4. 在连接默认数据库的时候很多人都没有写过’OPTIONS’这个东西,一开始没有写,结果怎么着都连不上。很多人说在odbc里调数据库的东西引擎。结果加进去还是不行,最后发现是’OPTIONS’没有写,写完之后所有问题都解决了。

参考原文链接:https://blog.csdn.net/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 2008数据库是否正常

import pyodbc
connect = 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_704835.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python之web开发(二):python使用django框架搭建网站之新建文件

本文为Django项目创建的简单介绍,更为详细的Django项目创建,编辑可以参考http://www.imooc.com/learn/790 Step 1. 点击 File --> New Project 弹出如下窗口: 说明: 1:存储位置所在文件夹 2:虚拟环境 3…

Python之web开发(六):python使用django框架搭建网站之登陆页搭建不同页面之间跳转

【写在前面】:有关urls及path函数的应用详见:https://blog.csdn.net/weixin_44322778/article/details/102598346 【官方说明】: 规划 URLs 简洁优雅的 URL 规划对于一个高质量 Web 应用来说至关重要。Django 推崇优美的 URL 设计&#xff…

Python之web开发(error):python使用django框架搭建网站之文件配置

error list: 1.Error:please enable Django support for the project 2:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. 1.Error:please enable Django support for the project 这个时候将点击PyCharm左…

Python之web开发(六):python使用django框架搭建网站之图表显示操作

配置环境: jango Highcharts Mysql Django chartit把简单的东西复杂话了,真心的,直接使用highchart更方便 highchart官方链接: https://www.highcharts.com.cn/demo/highcharts/line-basic 学习链接: https://bl…

seo从入门到精通_SEO入门到精通(七):SEO工作的流程是什么?

刚入门seo会对这个行业的工作流程产生疑问,或者因为自己学习的seo知识比较零散,无法去把控seo工作的整体流程,本文会给大家讲解下企业站通用的seo优化流程:行业概况分析→企业实况分析→竞品分析→确定关键词→网站优化→网站数据…

Python爬取网站用户手机号_设计师的福利,python爬取素材网站

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。基本环境配置python 3.6pycharmrequestsparsel相关模块pip安装即可确定网站目标基本常规操作,F12打开开发者工具,分析网页网页返回的数据 &…

php网站入门鹿泉银山,01PHP编程新手入门第一步

01PHP编程新手入门第一步很多时候刚入手不知道从哪里下手。这个时候选择一些课程是最好的方法,自己摸索半天可能比不过别人5分钟讲解。就编程而言:1:有个地方存储程序和数据库可以选择云服务器,也可以选择本地。选择了服务器之后可…

本地服务器模板网站怎么安装,本地服务器怎样安装帝国CMS模版网站

本地服务器安装帝国CMS与安装DedeCMS有部分区别。喜欢使用帝国CMS程序的站长,可以下载不同的网站模版进行安装。调试完成后,则可以直接上传至虚拟主机或者独立服务器。由于帝国CMS功能较为强大,一般选择这个程序的企业基本对空间大小有要求&a…

网站建设技术方案_企业网站建设解决方案

企业网站作为一个公司的网络名片,最主要的作用是展示公司形象和宣传公司的服务或产品,所以做一个企业网站,关键在于如何更好地展示公司形象和宣传公司服务或产品,做好这点,需要做好网站的页面设计、方便的内容后台管理…

怎么给网站加js_网站站内SEO优化实操细节详解,权重上升嗖嗖的

做SEO优化的都知道,网站SEO排名的好与坏,影响的因素非常多。而站内优化是重要的一个因素,如果按满分100分来计算,菜鸟菌觉得站内优化至少占20分左右。因此,站内的优化是很重要的,但也不能说做好站内优化就能…

网站服务器被攻击的形式,服务器被攻击的不同表现类型以及应对策略

服务器被攻击的不同表现类型以及应对策略许多网站站长都遇到过网络服务器被攻击的状况,被攻击之后也大多数都只有束手待毙。由于大伙儿广泛对攻击不足掌握,很多人把多很多的攻击和防御力挂在嘴上,却压根不清楚网络服务器是怎么被攻击的,更不要说怎样应对攻击了。绝大多数互联网…

如何维护关键字_SEO人如何制定工作计划?【大站】

搜索引擎优化工作繁杂,不但要做好网站流量、还需要做好SEO全网推广。如果没有预先计划,往往人员无从下手。假如我想拓展互联网团队该如何做?假如我优化大型站点,如何分配团队?假如我要做行业关键词覆盖率要如何执行&am…

空服务器安装linux,debian服务器linux服务器web建站搭建linux服务器之Debian安装

debian服务器linux服务器web建站搭建linux服务器之Debian安装原文来自i火吧大家都知道linux的发行版本很多,有centos啊,debian啊,ubuntu等,下面我就用debian服务器为例教大家如何搭建web服务器。1:找到我们的服务器控制…

centos mysql权限不够_centos执行文件时权限不够怎么解决_网站服务器运行维护,centos...

centos怎么实现开机进入命令行模式_网站服务器运行维护centos实现开机进入命令行模式的方法是:1、查看系统当前的运行级别;2、执行命令【systemctl set-default multi-user.target】设置开机进入命令行模式。修改权限可以解决该问题。可以使用chmod命令修…

网站服务器安全维护,网站服务器安全维护

网站服务器安全维护 内容精选换一换云服务器使用,服务器使用,服务器配置,云主机使用,弹性云服务器入门,ecs使用来自:产品域名注册(Domain Registration)是用户付费获取Internet上某一域名一段时间使用权的过…

一个服务器多个网站搜外问答,多个网站共用一台服务器对SEO有影响吗?

如果多个网站共用一台服务器,对SEO有影响吗,两个或多个网站使用同一IP地址,对SEO排名有影响吗,都有哪些影响呢?笔者结合网上资料整理了以下答案。一、空间稳定性要求,通常大家会听到一种说法,独…

python作业网站_python大作业

利用python对豆瓣电影评价的爬取,并生成词云一、抓取网页数据第一步要对网页进行访问,python中使用的是urllib库。代码如下:from urllib import requestresp request.urlopen(‘https://movie.douban.com/nowplaying/hangzhou/‘)html_data …

一元建站-基于函数计算 wordpress 构建 serverless 网站

前言 本文旨在通过 快速部署一个 wordpress 网站到阿里云函数计算平台 这个示例来展示 serverless web 新的开发模式, 包括 FUN 工具一键初始化 NAS, 同步网站到 NAS, 一键部署等能力, 展现函数计算的开发敏捷特性、自动弹性伸缩能力、免运维和完善的监控设施。 相…

github建立静态网站,域名解析和跳转

1、注册github账号&#xff0c;创建仓库&#xff0c;仓库名称格式是user.github.io格式。如下图的dajun1234.github.io 2、上传一个测试的html文件&#xff0c;内容如下&#xff1a; <html> <body> hello world </body> </html> 3、进入仓库的setting…