django连接Mysql中已有数据库的方法详解

我的Mysql中已经有了项目需要使用的相关数据库,现在需要通过django来获取Mysql里的数据并使用,下面记录配置django与mysql的连接过程。

(此处默认您已经建好了django框架,如果没有准备好django,请参照我本篇文章

https://www.jb51.net/article/249861.htm

首先需要在项目的settings.py文件中配置mysql的连接信息:把之前配置的sqlite配置信息替换。
之前默认的数据库配置信息如图,是与sqlite连接的

现在我们需要替换为自己本地的Mysql信息,并连接我的ry-vue数据库,代码如下,相应的属性需要对应自己的Mysql进行配置,如果不清楚请看接下来的图片:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',		# 要连接的数据库ip
        'PORT': '3306',				# 数据库连接端口,一般默认为3306
        'NAME': 'ry-vue',			# 已经存在的数据库名称
        'USER': 'root',				# 用户名
        'PASSWORD': '',				# 用户密码
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            }
    }
}

Mysql的相关对应信息查看过程如图:

就能看到对应的连接信息:

然后在settings.py同级目录的__init__.py文件中增加下面代码,导入mysql的配置

# coding=utf-8

import pymysql
pymysql.install_as_MySQLdb()

如图:

这时你会发现导入的pymysql有报错,这是因为我们还没有安装pymysql包,根据下图过程来进行pymysql的安装:

等安装成功后就不会报错了。

之后导入数据库中的表到django里,执行下边的命令,该命令的意思是将对应数据库的表自动生成到models.py文件中。

python manage.py inspectdb > models.py

等几秒或者刷新一下文件夹,就能在 manage.py 的下面出现一个 models.py,里面包含了已有数据库的所有表及结构。

可以看到第一个表是bank,与我的数据库ry-vue里的显示完全一样

之后把想要使用的表的 managed 都改成 True。比如我想要在django中操作scratch_choice_answer表里的信息,则需要通过类名找到该表,然后修改如图:

接着将需要用的表复制到你的程序需要使用的目录下。 如果基本上都会用到,那就复制整个文件,比如我的register只里需要用到scratch_choice_answer表里的信息,那么我就操作如下,只复制 class ScratchChoiceAnswer这部分的内容到需要的文件夹下就可以。

因为需要用到register这个app,再次确认一下此文件是否在settings注册过

等到把需要的内容复制到要使用的文件夹之后,刚刚自动生成的models.py已经没有用了,就可以删除了,注意该文件位置是在manage.py下边。
下次如果只单独使用一个表,就可以使用如下的代码进行mysql的生成,而不需要全部进行生成,代码如下,表示只生成scratch_choice_answer表里的信息。

python manage.py inspectdb scratch_choice_answer

然后只需将上图红框部分的内容复制到需要的models.py里就可以。注意要将managed 的 False 设置为 True

然后运行如下指令,该指令就是将django与数据库进行同步,可以进行增删改查操作。

python manage.py migrate

等显示OK后就可以通过django对数据库进行操作了。

(这时候刷新一下Mysql,会发现自动生成了auth_xxx和django_xxx的表,这个是django用来记录对数据库的一些操作的,就放那儿不用管,对整个项目的运行没有影响)

连接成功验证

我需要获取一下scratch_choice_answer表里的choice_id,如图

则输入代码如下:

from register.models import ScratchChoiceAnswer

answer = ScratchChoiceAnswer.objects.all().values('choice_id')
print(answer)

然后运行django,(如果这时候报错ValueError: source code string cannot contain null bytes,其实是models里的编码问题,解决方法:

运行django框架出现如下报错,我出现该问题是由于数据库编码不正确

解决方法如下:

打开models.py,将编码改为UTF-8

django运行成功后可以看到获取到Mysql里的值

大功告成!

总结

到此这篇关于django连接Mysql中已有数据库的文章就介绍到这了,更多相关django连接Mysql数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 图文详解Django使用Pycharm连接MySQL数据库

    在 Pycharm 的右上方找到 Database 点击 依次点击,选择 MySQL 数据库 点击 Download 下载驱动文件 下载完成后对数据库的相关信息进行填写 填写完成后点击"Test Connection",如果出现 Successful 就说明连接成功 然后点击"应用",再点击"确定" 左边这个窗口是写 SQL 语句的地方 例如查询 app01_admin 表 点击这个绿色三角形执行 如果要添加数据的话 点这个加号 填写内容,填写完

  • django连接mysql数据库及建表操作实例详解

    本文实例讲述了django连接mysql数据库及建表操作.分享给大家供大家参考,具体如下: django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找到settIngs里面的database设置如下 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 's22',

  • Django框架创建mysql连接与使用示例

    本文实例讲述了Django框架创建mysql连接与使用.分享给大家供大家参考,具体如下: 对于Django新手,你刚开始可以不使用MySQL数据库,但一定要学会如何配置使用MySQL.Django项目中配置使用MySQL一共分四步: 安装MySQL, 创建数据库名和用户名,通过pip安装第三方库pymysql和修改配置文件settings.py. 第一步 安装MySQL Windows用户可以直接从MySQL网站上下载相应版本安装.Linux用户可以使用如下命令安装mysql-server. s

  • python Django连接MySQL数据库做增删改查

    1.下载安装MySQLdb类库http://www.djangoproject.com/r/python-mysql/2.修改settings.py 配置数据属性 复制代码 代码如下: DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.        'NAME': 'djang

  • django连接mysql配置方法总结(推荐)

    最近在学习django,学到第五章模型时,需要连接数据库,然后,在这里分享一下方法. 起初是不知道怎样配置mysql数据库,但是还好,django的官网上面有相关的配置方法,下面就直接给分享一下. 这是settings文件里面的基础配置,使用的是sqlite,那我们需要连接其他数据库呢? DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'mydatabase', } } 下面是mysql的配置方

  • 使用Django连接Mysql数据库步骤

    链接mysql步骤 第一步:在终端下载pymysql文件–pip install pymysql 第二步:在gjango项目的__init__文件中添加代码 import pymysql pymysql .install_as_MySQLdb() 第三步:找到mysql的连接源,然后填信息,如果没有mysql驱动,需要下载MySQL驱动 mysql的配置:进入settings文件中找到DATABASES配置信息 DATABASES = { 'default': { 'ENGINE': 'djan

  • django连接Mysql中已有数据库的方法详解

    我的Mysql中已经有了项目需要使用的相关数据库,现在需要通过django来获取Mysql里的数据并使用,下面记录配置django与mysql的连接过程. (此处默认您已经建好了django框架,如果没有准备好django,请参照我本篇文章 https://www.jb51.net/article/249861.htm 首先需要在项目的settings.py文件中配置mysql的连接信息:把之前配置的sqlite配置信息替换.之前默认的数据库配置信息如图,是与sqlite连接的 现在我们需要替换

  • 关于MySQL中的查询开销查看方法详解

    MySQL逻辑架构 如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器.下图展示了MySQL的逻辑架构图. MySQL逻辑架构,来自:高性能MySQL MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理.授权认证.安全等功能均在这一层处理. MySQL大多数核心服务均在中间这一层,包括查询解析.分析.优化.缓存.内置函数(比如:时间.数学.加密等函数).所有的跨存储引擎的功能也在这一层实现:存储过程.触发器.视图等.

  • Java连接Mysql 8.0.18版本的方法详解

    关于Java和Mysql 8.0.18版本的连接方式,供大家参考,具体内容如下 1.官网下载mysql-server.(Connector/J记得安装) 安装教程参考: mysql 8.0.18 安装配置方法图文教程 mysql 8.0.18.zip安装配置方法图文教程(windows 64位) 2.安装完后在C盘找到mysql-connector-java-8.0.18.jar 3.记住路径后再idea中选择File-Project Structure-Modules-+号键添加jar包 4.

  • MySql中删除数据表的方法详解

    目录 定义: 1 删除一个或多个没有被其他表关联的数据表 1.1 新建一张表 1.2 执行删除命令 1.3 结果检查 2 删除被其他表关联的主表 2.1 创建两张具有关联关系的表 2.2 执行删除DROP TABLE命令 2.3 取消外键关系,再删除. 定义:   删除数据表就是将数据库中已经存在的表从数据库中删除.注意,在删除表的同时,表的定义和表中所有的数据均会被删除.因此,在进行删除操作前,最好对表中的数据做一个备份,以免造成无法挽回的后果.本节将详细讲解数据库表的删除方法. 1 删除一个

  • 在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解

    一.下载MySQL数据库并进行安装和配置 下载地址:https://dev.mysql.com/downloads/installer/ 二.下载JDBC连接器 下载地址:mysql-connector-java-8.0.22 下载好压缩包并解压后找到mysql-connector-java-8.0.22.jar文件放在自己指定的路径下. 三.在项目中导入jar包 用于测试数据库连接的测试类Test.java代码: import java.sql.Connection; import java.

  • JDBC连接mysql处理中文时乱码解决办法详解

    JDBC连接mysql处理中文时乱码解决办法详解 近日,整合的项目需要跟一个比较老版本的mysql服务器连接,使用navicat查看,发现此mysql服务器貌似没有设置默认编码,而且从操作此mysql的部分php文件看,应该是使用的gb2312的编码,但是,直接使用jdbc操作,从库中读取出来的中文全都是乱码. 一开始,使用类似entity.setDepartName(new String(rs.getString("hg").getBytes("gbk"), &q

  • Linux手动部署远程的mysql数据库的方法详解

    一.安装mysql 运行以下命令更新YUM源. rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 运行以下命令安装MySQL. yum -y install mysql-community-server 运行以下命令查看MySQL版本号. mysql -V 返回结果如下,表示MySQL安装成功. mysql  Ver 14.14 Distrib 5.7.31, for Linux (x86_

  • Redis中键和数据库通用指令详解

    目录 一.Redis键(key)通用指令 1.key基本操作 2.时效性控制 3.查询模式 4.其它操作 二.数据库通用指令 1.基本操作 2.相关操作 一.Redis键(key)通用指令 可以参考菜鸟教程:Redis 键命令用于管理 redis 的键 key特征:key是一个字符串,通过key获取redis中保存的数据. 1.key基本操作 命令 功能 del key 该命令用于在 key 存在时删除 key exists key 检查给定 key 是否存在 type key 返回 key 所

  • python更新数据库中某个字段的数据(方法详解)

    连接数据库基本操作,我把每一步的操作是为什么给大家注释一下,老手自行快进. 请注意这是连接数据库操作,还不是更新. import pymysql #导包 #连接数据库 db = pymysql.connect(host='localhost', user='用户名', password='数据库密码', port=3306, db='你的数据库名字') #定义游标 cursor = db.cursor() #sql语句 sql = 'select * from students;' cursor

  • mysql中decimal数据类型小数位填充问题详解

    前言 在开发过程中,我们往往会用到decimal数据类型.因为decimal是MySQL中存在的精准数据类型. MySQL中的数据类型有:float,double等非精准数据类型和decimal这种精准. 区别:float,double等非精准类型,在DB中保存的是近似值. Decimal则以字符串的形式保存精确的原始数值. decimal介绍: decimal(a,b) 其中:a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38.b指定小数点右边可以存储的十进制数字的最大个数

随机推荐