Django web框架-----Django连接本地现有mysql数据库
- 第一步: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数据库的更多相关文章
- Django web框架-----Django templates模板
说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用 一般的变量之类的用 {{ }}(变量),功能类的比如循环.条件判断是用 {% %}(标签) ...
- 教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...
- [oldboy-django][1初始django]web框架本质 + django框架 + ajax
web框架本质 浏览器(socket客户端) - 发送请求(ip和端口,url http://www.baidu.com:80/index/) - GET 请求头(数据请求行的url上: Http1. ...
- python运维开发(十七)----jQuery续(示例)web框架django
内容目录: jQuery示例 前端插件 web框架 Django框架 jQuery示例 dom事件绑定,dom绑定在form表单提交按钮地方都会绑定一个onclick事件,所有查看网站的人都能看到代码 ...
- Web框架——Django笔记
Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序 ...
- Python3.5学习十八 Python之Web框架 Django
Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式 ...
- 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(四):安装MySQL数据库
基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django 基于Ubuntu Server 16.04 LTS版本安装和部署Djan ...
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
- R语言使用RMySQL连接及读写Mysql数据库 测试通过
R语言使用RMySQL连接及读写Mysql数据库 简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2 ...
随机推荐
- python数据类型之元组类型
#为何要有元组,存放多个值,元组不可变,更多的是用来做查询 t=(1,[1,2,3],'a',(1,2)) #t=tuple((1,[1,2,3],'a',(1,2))) # print(type(t ...
- Mac Pro 坑记录
第一天app store没法登陆,登陆后没有任何的反应,试过了改系统时间为一致.修改权限:sudo chmod -R 1777 /Users/Shared 都没什么用. 最后是终端运行: defaul ...
- 如何共享联盟cookie
接上一篇阿里妈妈账号登录状态如何长时间保存 既然我们获取到了cookie, 如果有多个程序都要使用到联盟帐号的时候, 如果不共享cookie, 那么每个程序都需要登录一次, 真的很浪费资源. 如何共享 ...
- Ubuntu 安装第三方工具
1. pycharm 安装(链接:https://pan.baidu.com/s/1fIp-AhBmnPvqYW40140RLw 提取码:ukkv ) 1.运行以下命令安装 sh pycha ...
- 【Spark-SQL学习之二】 SparkSQL DataFrame创建和储存
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- 关于富文本编辑器—UEditor(java版)的使用,以及如何将UEditor的文件/图片上传路径改成绝对路径
突然发现好久没写博客了,感觉变懒了,是要让自己养成经常写文章的习惯才行.既可以分享自己的所学,和所想,和大家一起讨论,发现自己的不足的问题. 大家可能经常会用到富文本编辑器,今天我要说的是UEdito ...
- Hi3516A开发--接触(转)
Hi3516A开发--接触
- MapReduce编程模型简介和总结
MapReduce应用广泛的原因之一就是其易用性,提供了一个高度抽象化而变得非常简单的编程模型,它是在总结大量应用的共同特点的基础上抽象出来的分布式计算框架,在其编程模型中,任务可以被分解成相互独立的 ...
- 页面适配的小栗子 - github
我模拟了一个QQ音乐的radiostation页面,用了媒体查询以及流式布局,页面大部分内容是js根据json生成的,使用了less来编写css样式表. 下面是仓库地址,感兴趣的小伙伴可以打开看看,将 ...
- Vue/Egg大型项目开发(二)数据库设计
项目Github地址:前端(https://github.com/14glwu/stuer)后端(https://github.com/14glwu/stuer-server) 项目线上预览:http ...