python3+django+mysql如何连通使用。

python3中使用mysql报错ModuleNotFoundError: No module named 'MySQLdb'。

原因是:
在python2.x中用mysqldb,但是在python3.x中已经不支持那个组件了。

取而代之的是:pymysql。

首先使用pip install pymysql  安装pymysql。

下载以后,如何让当前的 Django 通过 PyMySQL 

连接 MySQL 数据库呢? 方法很简单。

在/path/to/project/project/__ini__.py 这个空白文件中添加下面两行代码:

import pymysql
pymysql.install_as_MySQLdb()

django要连接mysql数据库还需要修改配置文件setting.py

配置代码如下:

# MySQL
DATABASES = {
    'default':{
     'ENGINE':'django.db.backends.mysql',
     'HOST':'127.0.0.1',
     'PORT':'3306',
     'NAME':'guest',  # 数据库名
     'USER':'username',
     'PASSWORD':'password',
     'OPTIONS':{
         'init_command':"SET sql_mode='STRICT_TRANS_TABLES'"
     },
    }
}
# mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。
# ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。
# TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。
# STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。
#


注意,配置文件中的数据库名必须是新的库,如果库里已经有表,就会出问题。

进入manage. py所在目录,执行命令 manage.py syncdb程序会自动初始化数据库,创建django需要的所有数据表。当我们编写web程序用到session的时候,没有初始化数据库会报错,因为django是把session的信息存储在了数据库中。

  另,django1.9之后的版本都取消了syncdb,1.8还可以用,但是会提示即将取消。所以以后建议这样初始化:

  先 python manage.py makemigrations [appname] 
  再 python manage.py migrate [appname]

  如此,我们就可以在django项目中使用mysql数据库了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值