Win10 + Python3.7 + Django2.1 + MySQL8.0配置

最近开始学习Django,开发环境为Win10 + Python3.7 + Django2.1 + MySQL8.0。本篇文章记录在配置过程中碰到的各种问题以及解决方法。

一. 安装开发环境

1. 安装Python

到官网 https://www.python.org/downloads/ 下载需要的版本进行安装。

2. 安装Django

pip install Django

3. 安装MySQL

到官网 https://www.mysql.com/downloads/ 下载需要的版本进行安装。

二. 安装依赖项

Django连接MySQL需要依赖以下库:pymysql, mysqlclient。安装方法如下:

pip install pymysql
pip install mysqlclient (如果执行失败就参考后面的解决方法)

注意: 在安装mysqlclient时有可能会报以下错误:

  1. 需要Microsoft Visual C++ 14.0编译环境。解决方法为安装Microsoft Visual Studio 15.0。
  2. 提示找不到"mysql.h"头文件。目前还未深入研究如何破解此问题。

提示: 解决安装mysqlclient失败最简单的方法如下:

  1. 访问网站 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载与对应Python版本匹配的mysqlclient的windows二进制安装包(比如 mysqlclient‑1.3.13‑cp37‑cp37m‑win32.whl)
  2. 运行以下命令安装此二进制包
pip install mysqlclient‑1.3.13‑cp37‑cp37m‑win32.whl

测试开发环境

1. 创建Django项目

django-admin startproject helloworld

2. 修改数据库配置

修改项目文件夹下settings.py文件中的数据库的配置文件,如下:

DATABASES = \
{
    'default':
    {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'leon',		#数据库的名字
        'USER': 'root',		#登录数据库的用户名
        'PASSWORD': 'password',	#登录数据库的密码
        'HOST': 'localhost',	#数据库的IP地址
        'PORT': '3306',		#数据库的端口
    }
}

3. 重要步骤:将pymysql转换为MySQLdb

修改项目文件夹下的__init__.py文件,在其中加入以下代码:

import pymysql
pymysql.install_as_MySQLdb()

如果不做以上转换,为Django还是无法连接MySQL数据库。详情看考以下链接中的说明: https://blog.csdn.net/jerry81333/article/details/60664922

4. 同步数据库

manage.py makemigrations
manage.py migrate

三. 常见问题

  1. 执行manage migrate时报告“是否安装了mysqlclient”的错误
    参考上述的内容安装mysqlclient

  2. 执行manage migrate时报连接MySQL失败的错误
    a. 检查数据库是否正常运行
    b. 检查地址,端口,登录信息,数据库名等信息是否正确
    c. 检查是否将pymysql转换为MySQLdb
    d. 可运行以下代码检查Python连接MySQL数据库是否正常

import pymysql
db = pymysql.connect("localhost", "root", "password", "leon" )
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close()
  1. 其他问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值