我的环境:

     python3.6,

     Django2.1.5,

     MySQL8.0.15,

     win10,

     PyCharm,

要求:已经安装了MySQL数据库

1,安装pymysql

Django是使用MySQLdb库来连接MySQL数据库的,。但是MySQLdb不支持Python3,所以使用pymysql代替MySQLdb。
使用pip安装,然后在项目根目录的_init_.py文件中输入:import pymysql   pymysql.install_as_MySQLdb()
 
2,新建数据库
在命令行中用root登录MySQL,并输入:create database db_name default charset = utf8;
 
3,配置连接参数
在项目根目录的settings.py文件中的DATABASES参数中设置{NAME(库名), USER(登录用户), PASSWORD(用户密码), HOST(主机), PORT(端口号)},并把ENGINE改为MySQL。
如图:

 
4,设置模型(表)
Django自带了ORM,只需要在app目录的models.py文件中定义表的字段即可(例如:name = models.CharField(max_lenght=30) ),字段定义在继承了models.Model的类中。
设置表名:在该类中添加特殊类:class Meta: db_table = 'User'。注意是在类中。
如图:注意一定要加第二行,其中ShenDeng为你的项目名。

 
5,同步到数据库(生成表)
1,在命令行中:python manage.py makemigrations    # 生成数据库同步脚本。  # 在这一步可能会报错,解决方法在下面第6步。
2,在命令行中:python manage.py migrate   # 同步数据库。
 
6,错误(拒绝访问):pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost')
错误原因:由于MySQL的root用户默认只能由本地主机(即: localhost)访问,所以通过pymysql远程访问时会拒绝访问。
解决方法1:更改root用户的密码认证方式。在cmd中登录MySQL,并输入:alter user 'root'@'localhost' identified with mysql_native_password by 123456;
解决方法2:授权root用户远程登录。grant all on *.* to 'root'@'%' identified by 123456;
上面两种方法都可以,完成后重复步骤5即可。
 

 7,验证是否成功( 在cmd中):

       1,用root登录:mysql> mysql -u root -p; 输入密码。

       2,查看表是否存在:mysql> use <数据库名>;

                                       mysql> show tables;

      ps: 一般会有很多表,其他的暂时不用管,找到我们要建的表就行了!

8,往表中添加数据:

   新建一个.py文件输入以下内容然后单独运行就可以了。(User为继承了models.Model的类)

在Django中连接MySQL数据库(Python3)的更多相关文章

  1. django 中连接mysql数据库的操作步骤

    django中连接mysql数据库的操作步骤: 1 settings配置文件中 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mys ...

  2. Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...

  3. Odoo中连接mysql数据库

    how to integrate Odoo with MySQL - Stack Overflowhttps://stackoverflow.com/questions/31959919/how-to ...

  4. Java中连接MySql数据库的例子

    Java中连接MySql数据库的例子: package com.joinmysql.demo; import java.sql.DriverManager; import java.sql.Resul ...

  5. 如何在python3环境下的Django中使用MySQL数据库

    我们在使用Django过程中,连接MySQL数据库时,对Python不同的版本对应的库也不一样,用惯了Python2的人在使用Python3时经常会遇到下面的错误: Error loading MyS ...

  6. Django中使用MySQL数据库的连接配置

    1. 安装pymysql pip install pymysql 2. 导入 # 在与 settings.py 同级目录下的 __init__.py 中引入模块和进行配置 import pymysql ...

  7. Error loading MySQLdb module: No module named 'MySQLdb'----------- django成功连接mysql数据库的方法

    在进行django学习过程中,尝试使用框架连接mysql数据库,启动服务器的时候经常遇到Error loading MySQLdb module: No module named 'MySQLdb' ...

  8. Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中连接MySQL数据库时Connection conn = DriverManager.getConnection(url,username,password)报错的解决办法

    开发环境: 1.系统:windows 7/8/10均可 2.jdk:1.8.0_144 3.服务器:apache-tomcat-9.0.8 4.IDE:eclipse+jsp 0.网页代码如下: &l ...

  9. Pycharm中的Django项目连接mysql数据库

    一.安装Pycharm和Django就不详细说了,自行百度 二.新建Django项目也不说了 三.配置Django连接到mysql 1.models.py写一个类,继承models.Model cla ...

随机推荐

  1. 用ModelAndView返回视图结果返回的是对应RequestMapping拼接的路径

    今天,遇到一个贼坑的问题,就是我明明可以将逻辑视图名视图存入ModelAndView,结果返回的页面信息是RequestMapping拼接的视图解析路径,最后经过检查多遍代码,发现原来是ModelAn ...

  2. python+opencv中最近出现的一些变化( OpenCV 官方的 Python tutorial目前好像还没有改过来?) 记一次全景图像的拼接

    最近在学习过程中发现opencv有了很多变动, OpenCV 官方的 Python tutorial目前好像还没有改过来,导致大家在学习上面都出现了一些问题,现在做一个小小的罗列,希望对大家有用 做的 ...

  3. Idea破解至2089年

    我是用的版本是2018.3.6,别的朋友使用的是2019的某个版本,不过关都不影响破解 下载jar包:链接:https://pan.***baidu.***com/s/1aRR0***2YNI9jew ...

  4. CQBZOJ 邮递员(直播剪枝技巧)

    题目描述 Mirko在一个山镇找到了一份邮递员的工作.这个镇可以看作一个N*N的矩形.每个区域可能是以下之一:房子K,邮政局P,草地 '.'.每个区域都有一个海拔. 每天早上,Mirko要送信给镇上所 ...

  5. export 和 export default 的区别

    export命令用于规定模块的对外接口. 一个模块就是一个独立的文件.该文件内部的所有变量,外部无法获取.如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量.下面是一个 ...

  6. 如何使用jmeter做一个功能的性能测试

    一.为什么又再次写类似的文章? 在博客园和公号写文章,已经快两年了,所以自然在公号和博客园都能联系到我的. 也就是几天前,有个人加我微信,对于总有人加我好友,我已经觉得不奇怪了,为什么呢? 加我好友的 ...

  7. pico g2 触摸板手柄射线检测---for unity

    1.pico g2手柄射线检测UI,需要在canvas添加Graphic Raycaster脚本和Pvr_Ui Canvas脚本. 2.删除掉原有的maincamera,将Pvr_unitySDK下h ...

  8. 实验20:IPv6

    实验17-1: IPv6 静态路由 Ø    实验目的通过本实验可以掌握(1)启用IPv6 流量转发(2)配置IPv6 地址(3)IPv6 静态路由配置和调试(4)IPv6 默认路由配置和调试 Ø   ...

  9. C指针右左法则

    摘录的别人的:  C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法.不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出 ...

  10. 分析Ajax爬取今日头条街拍美图-崔庆才思路

    站点分析 源码及遇到的问题 代码结构 方法定义 需要的常量 关于在代码中遇到的问题 01. 数据库连接 02.今日头条的反爬虫机制 03. json解码遇到的问题 04. 关于response.tex ...