前言

  • 这两天学习了下Django,因为我使用的数据库是 SqlServer,在模型那里遇到了点问题,这篇文章做下记录。

  • Django连接数据库,你如果不使用模型,直接使用 pymssql 的话也是没问题的,毕竟通常就是这种嘛,这种的话这里就不说了,大家应该都懂。

开发环境

  • windows 10
  • python 3.9
  • Django 3.2.5
  • pycharm 2021.2.1

创建工程

  1. 使用pycharm创建项目(使用你任何你知道的方式创建一个项目就行了)

    这里创建了个新环境,基于python3.9的,先已配置有环境可直接选择先前配置的解释器 即可,仅做演示。
    默认创建出来的项目使用的是Django3.2.5。
    这里直接创建的项目已带一个app,相关配置已默认设置好,其他方式的请参考Django官网。

  2. 安装 mssql-django与pyodbc 3.0 (or newer)
    随意选择一种方式即可,工程使用的如下(仅展示mssql-django,pyodbc 类似)。
    https://pypi.org/project/mssql-django/
    注意一点,python解释器切换到我们刚刚创建的。

  3. 配置支持SqlServer
    我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为:
    具体配置请参考mssql-django

    # 'driver': 'SQL Server Native Client 11.0',
    DATABASES = {'default': {'ENGINE': 'mssql','NAME': 'test',  # 数据库名称'HOST': '127.0.0.1',  # 数据库地址,本机 ip 地址 127.0.0.1'PORT': 1433,  # 端口'USER': 'sa',  # 数据库用户名'PASSWORD': 'lh1234567',  # 数据库密码'OPTIONS': {'driver': 'ODBC Driver 17 for SQL Server',},}
    }
    

    配置完成之后运行项目,看是否有报错,无报错则配置成功。

  4. 项目结构概览
    首先看下项目结构:

  5. 配置url
    修改test_sqlserver目录下urls.py文件如下:

    from django.contrib import admin
    from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path('web/', include("web.urls"))
    ]

    web目录下新建urls.py文件,内容如下:

    from django.urls import path
    from . import viewsurlpatterns = [path('testdb/', views.testdb),
    ]
    
  6. 配置model
    web目录下新建models.py文件,内容如下:

    from django.db import models# Create your models here.
    class Test(models.Model):name = models.CharField(max_length=20)
  7. 配置view
    web目录下新建views.py文件,内容如下:

    from django.http import HttpResponsefrom .models import Test# 数据库操作
    def testdb(request):test1 = Test(name='runoob')test1.save()return HttpResponse("<p>数据添加成功!</p>")```

数据库初始化

在命令行或终端中运行:

python manage.py migrate   # 创建表结构python manage.py makemigrations web  # 让 Django 知道我们在我们的模型有一些变更python manage.py migrate web  # 创建表结构

命令执行结果如下:
注意一点,我们开始新创建了个python39的环境,记得切换过去,如果你使用conda的话。

看下数据库结果:

默认生成上述表,注意web_test表是我们自己定义的(app名+models里类名)。

演示

到此就大功告成了,把运行起来看看怎么样吧。


看下数据库结果:

结论

说实话,这个连SqlServer还弄了差不多半天,本身Django官方只支持PostgreSQLMariaDBMySQLOracleSQLite。 而我要使用的是SqlServer,所以就不得不使用第三方库。但是官方文档里提到的 却是 django-mssql-backend这个库。
看下这个库的支持情况:

我使用Django3.2.5的版本的时候,他执行创建数据表的时候,只创建了

  1. django_migrations
  2. django_content_type

两张表,还报一堆错,这就尴尬了。而且也看出来了,他的Python也支持到了3.7,所以就不得不重新选择了。
所幸在 https://stackoverflow.com/questions/67358097/keyerror-include-on-migrating-models-to-sql-server这个里面找到了答案。
就是使用 mssql-django,看下他的支持:

,Django支持到了4.0,Python也支持到了3.9.暂时完美解决了我说遇到的问题。

参考链接

https://stackoverflow.com/questions/67358097/keyerror-include-on-migrating-models-to-sql-server

Django配置连接SqlServer(版本Django3.2.5,python3.9)相关推荐

  1. django模型sqlserver_SQLServer数据库入门之django如何连接SQLServer

    本篇教程探讨了SQLServer数据库入门之django如何连接SQLServer,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. < 方法一: 1.需要安装pymssql ...

  2. linux下sqlserver端口号,linux下连接sqlserver配置及otl编程.docx

    linux下连接sqlserver配置及otl编程 需要的包unixODBC源码包unixODBC-2.2.14.tar.gz下载地址linux下的ODBC 驱动freetds-0.64.tar.gz ...

  3. php5.6 win2008 mssql,Php5.6.31连接sqlserver 2008R2数据库问题sqlsrv(php5.3及以上版本)与mssql(php5.3以前版本)②...

    Php5.6.31连接sqlserver2008R2数据库 1.环境配置 Win7(win8.1)  64 +Apache2.4 + PHP5.6.31 + SQL Server 2008 R2数据库 ...

  4. django连接sqlserver的一些坑

    在新接触的项目的数据库用的是sqlserver,这之前也没连过啊,所以在各种报错下成功了,接下来分享一下,我做的一些过程 环境: django      1.11 sqlserver   server ...

  5. PHP PDO 连接SQLSErver,php pdo连接sqlserver配置

    php pdo连接sqlserver配置 发布时间:2020-03-08 22:42:23 来源:51CTO 阅读:741 作者:daydaydream 1.下载sqlserver扩展 打开用phpi ...

  6. Java连接redshift数据库_配置 JDBC 驱动程序版本 1.0 连接 - Amazon Redshift

    本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. 配置 JDBC 驱动程序版本 1.0 连接 您可以使用 JDBC 驱动程序版本 1.0 连接从许多第三方 SQL 客户端工 ...

  7. python3 django配置数据库(mysql)

    python3 django配置数据库(mysql)http://www.bieryun.com/3311.html python3 下的mysql驱动 django 连接mysql默认驱动是MySQ ...

  8. php 5.4.36 sqlserver,PHP:PHP5.4连接SQLSERVER

    在PHP5.4的环境下要连接SQLSERVER(2005/2008)数据库,需要以下步骤: 1.下载PHP5.4连接SQLSERVER的驱动(两个动态连接库)http://www.microsoft. ...

  9. c语言 mysql_bind,C语言连接SQLSERVER数据库

    第一步:配置ODBC.在配置ODBC时有用户DSN.系统DSN.和文件DSN三种方法,为了稳妥起见,采用系统DSN. DSN的名字叫LocalServer,帐号:sa,密码123456 第二步:打开V ...

最新文章

  1. Nmap安装和扫描(一:Nmap安装和扫描基础知识点总结)
  2. 【青少年编程竞赛交流】03月份微信图文索引
  3. PubChemPy | 化合物数据库PubChem与Python结合
  4. jdk、jre、jvm有什么区别?
  5. 别找了 这就是适合入门的第一本算法书
  6. leetcode算法题--Word Search
  7. 《Android应用开发攻略》——2.2 异常处理
  8. Python 之 高级变量类型
  9. 5.3 Transformer意境级讲解
  10. 黑客之门的魅力:感染与加载 [转]
  11. unity 保存数据到本地的方法
  12. 用计算机完成计算win7,算天数转单位Win7计算器能做得更多
  13. Windows下MongoDB下载,安装和初级使用
  14. 国企计算机岗位职称申请,在国企工作如何评定职称
  15. html b5纸尺寸,b5纸的大小?
  16. 原生js 实现大鱼吃小鱼效果
  17. 求两点连线与其中一点为球心球的交点——赋MATLAB代码
  18. ​九月简报 | Coinversation先行版DEX——Kaco上线碎片化,TVL最高突破1000w美金
  19. BDTC 2017数据库上午:犹他大学、东方国信、蚂蚁金服、微软、人大金仓
  20. 相似度的几种常见计算方法

热门文章

  1. Lgx 的 Unity Tips(2018.6-2018.12)
  2. SRS4.0源码分析-SrsRecvThread::cycle
  3. Python全栈开发之路day1
  4. HTML筑基知识点四
  5. PTA 7-23 求序列立方和
  6. 蓝桥杯 问题 1094: 字符串的输入输出处理(c++实现)
  7. 5G无线关键技术 — 非正交多址接入技术
  8. 关于CDN以及如何绕过CDN寻找真实ip
  9. 史密斯数(C++实现)
  10. Buxwiz注册详解