• 第一步:win10下载mysql5.7压缩包配置安装mysql,创建数据库或导入数据库
  • 第二步:win10搭建django2.1.7开发环境,创建项目为mytestsite,创建应用app为quicktool
  • 第三步:编辑与项目同名的文件夹的配置文件(mytestsite/settings.py),配置数据库信息
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE':'django.db.backends.mysql',
'NAME':'数据库名称',
'USER':'数据库账号',
'PASSWORD':'数据库密码',
'HOST':'数据库地址,本地的话即为localhost',
'PORT':'数据库端口,默认为3306',
}
}
  • 第四步:编辑与项目同名的文件夹的__init__.py文件(mytestsite/__init__.py),引入mysql数据库
import pymysql
pymysql.install_as_MySQLdb()
  • 第五步:在项目的manage.py所在路径下使用命令
python manage.py inspectdb  >  D:\django_test\mytestsite\quicktool\models.py

集成已有的数据库和应用,生成models,复制到应用app的models.py中(quicktool/models.py)

命令行结束返回无报错即成功,quicktool的models.py 文件会自动复制生成本地环境已有数据库的类,类名为数据表名,继承自models.Model,每个类定义有数据表内的字段名

报错:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

解决:找到Python安装路径下的的Python37\Lib\site-packages\django\db\backends\mysql\base.py文件,将文件中的如下代码注释

if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

报错:File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query

query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'

解决:找到所在文件代码行,将decode改为encode即可

  • 第六步:使用Django shell查询数据表并返回结果

在项目的manage.py所在路径下使用命令 python manage.py shell

报以下错误信息:
AssertionError: Model quicktool.AppVersionInfo can't have more than one AutoField.

原因是:第五步复制导入的数据库的部分表里增加了AutoField列,但是又不指定这个列作为主键,全文搜索应用app的models.py文件出现models.AutoField()的地方,为django的AutoField字段设定为主键models.AutoField(primary_key=True)即可解决
再继续使用以下命令行查询数据

python manage.py shell
from quicktool.models import AppVersionInfo
AppVersionInfo.objects.get(version_code=10)

数据库里有表AppVersionInfo和字段version_code

CREATE TABLE `app_version_info` (version_code` int(3) NOT NULL DEFAULT '0')

查询结果打印的是id值,并没有显示出具体相关数据表的信息

在quicktool/models.py文件中的每个类增加以下代码即可解决打印问题

def __str__(self):
# 在Python3中使用 def __unicode__(self):
return self.url

新增方法后,打印的是数据表的具体数据

  • 第七步:将查询的结果可视化到网页上

quicktool/views.py文件:

from django.http import HttpResponse
from quicktool.models import AppVersionInfo
def index(request):
appl = AppVersionInfo.objects.get(version_code=25)
return HttpResponse(str(appl))

mytestsite/mytestsite/urls.py文件的路径,其余省略:

from quicktool import views as quicktool_views   # 新增
urlpatterns = [
path('', quicktool_views.index, name='home'), # 新增
]

quicktool/templates/home.html文件的body,其余省略:

<body>
{{ appl }}
</body>

查询结果可视化显示在网页,显示如下:

Django web框架-----Django连接本地现有mysql数据库的更多相关文章

  1. Django web框架-----Django templates模板

    说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用 一般的变量之类的用 {{ }}(变量),功能类的比如循环.条件判断是用 {% %}(标签) ...

  2. 教程:Visual Studio 中的 Django Web 框架入门

    教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...

  3. [oldboy-django][1初始django]web框架本质 + django框架 + ajax

    web框架本质 浏览器(socket客户端) - 发送请求(ip和端口,url http://www.baidu.com:80/index/) - GET 请求头(数据请求行的url上: Http1. ...

  4. python运维开发(十七)----jQuery续(示例)web框架django

    内容目录: jQuery示例 前端插件 web框架 Django框架 jQuery示例 dom事件绑定,dom绑定在form表单提交按钮地方都会绑定一个onclick事件,所有查看网站的人都能看到代码 ...

  5. Web框架——Django笔记

    Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序   ...

  6. Python3.5学习十八 Python之Web框架 Django

    Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式 ...

  7. 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(四):安装MySQL数据库

    基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...

  8. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

  9. R语言使用RMySQL连接及读写Mysql数据库 测试通过

    R语言使用RMySQL连接及读写Mysql数据库 简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2 ...

随机推荐

  1. vue评论显示隐藏,JavaScript显示关闭

    <template> <div id="vue_det"> <h1>{{details()}}</h1> <div>{{ ...

  2. validationEngine 使用

    引入文件 环境在 jQuery 下 , 所有先要引入 jQuery <%--校验样式--%> <link rel="stylesheet" href=" ...

  3. CentOS 7 搭建Squid代理服务器

    Squid安装 官方地址:http://www.squid-cache.org/ [root@DaMoWang ~]# -r6d8f397.tar.gz [root@DaMoWang ~]# -r6d ...

  4. 《ASP.NET Core In Action》读书笔记系列四 创建ASP.NET Core 应用步骤及相应CLI命令

    一般情况下,我们都是从一个模板(template)开始创建应用的(模板:提供构建应用程序所需的基本代码).本节使用 Visual Studio 2017 .ASP.NET Core2.0和 Visua ...

  5. vue中样式的典型操作(:class,:style)

    <template> <div class="home-wrapper"> <div class="home-top">th ...

  6. cnpm安装失败

    解决办法: 先:npm config set registry "http://registry.npmjs.org/" 再:npm install -g cnpm

  7. 福州大学软件工程1916 | W班 作业成绩排名汇总

    评分链接: 第一次作业-准备篇 https://www.cnblogs.com/deerCode/p/10527237.html 第二次作业-结对第一次-文献摘要热词统计原型设计 https://ww ...

  8. 20175208 《Java程序设计》第六周学习总结

    20175208 <Java程序设计>第六周学习总结 一.教材知识点总结: 第七章 1.内部类: 成员内部类.静态嵌套类.方法内部类.匿名内部类 .(1).内部类仍然是一个独立的类,在编译 ...

  9. B/S架构图解

  10. docker-images(镜像)

    一.获取镜像 docker search NAME  搜索引擎查找镜像 docker pull NAME:<TAG> 拉去镜像 NAME:表示镜像名称/镜像仓库的名称 TAG: 表示镜像的 ...