先简单跟大家复习一下Django项目之前的内容:
step1:建立一个Django项目的工程(使用django-admin.py startproject ×××)
step2:创建app并配置相应的文件(app根据用户的功能模块去划分:manage.py startapp ×××),并在setting.py中添加app等内容。
step3:上面是完成本次工程的基本的操作和配置,接下来就是在已有的配置的基础上,
分别完成model模块、views模块、urls模块,可以理解为MVC结构,
官方介绍详见:数据库配置¶ https://docs.djangoproject.com/zh-hans/2.0/intro/tutorial02/
【应用】
在 Django 里写一个数据库驱动的 Web 应用
一、打包
如果你是使用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,
},
}
}
【特别说明】:
参考原文链接: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:同步数据库:
只需要记住,改变模型需要这三步:
terminal依次执行如下两段代码
1、生成迁移文件:
python manage.py makemigrations
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)