• 第一步: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. CentOS7系统 ansible自动化部署多台服务器部署

    CentOS7系统 ansible自动化部署多台服务器部署   Ansible工作机制  从图中可以看出ansible分为以下几个部份: 1> Control Node:控制机器2> In ...

  2. vue进阶--外卖商家页

    一.准备工作 1.vue特性:轻量级.简洁.高效.组件化.数据驱动 2.技术分析:使用vue- resource与后端交互(ajax通信,ie9+)  使用vue-router作为前端路由   bet ...

  3. codeforces-4

    这题使用到了类似于双数据 Maximal Continuous #include<iostream> #include<algorithm> #include<stdio ...

  4. Python之socketserver

    import threading from socketserver import ThreadingTCPServer,BaseRequestHandler import sys import lo ...

  5. 303. Range Sum Query - Immutable(动态规划)

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  6. Django框架详细介绍---Admin后台管理

    1.Admin组件使用 Django内集成了web管理工具,Django在启动过程中会执行setting.py文件,初始化Django内置组件.注册APP.添加环境变量等 # Application ...

  7. java核心技术第十版 笔记

    1.java区分大小写 2.类名是以大写字母开头 (驼峰) 3.http://docs.oracle.com/javase/specs  java语言规范 4. /* */ 注释不能嵌套 5. Jav ...

  8. Visual Studio 项目依赖

    在解决方案上点击右键,选择项目依赖项 选择需要发布的所有依赖项目 主要是为了解决插件项目DLL无法生成的问题

  9. awk if print

    awk  -F","  '{ if($4=="abc" && $5=="def"){print $1} else {prin ...

  10. linux 命令 jps 和 goassess

    jps (Java Virtual Machine Process Status Tool)  是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前j ...