django 与 mysql 勾结指南
? 阅读本文大概需要 26 分钟。
参考文章:
https://blog.51cto.com/eagle6899/2146972
https://blog.csdn.net/qq_36963372/article/details/82558085
第一步:配置 setting.py
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databasesDATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydatabase', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } }
第二步:执行 migrate
$ python manage.py migrate
不出意外会让你安装 mysqlclient
$ pip install mysqlclient
你能下载成功,但可能安装失败。提示类似 “_mysql.c(29): fatal error C1083: 无法打开包括文件: “mysql.h”: No such file or directory”
的信息。
总而言之,这是 window 开发者需要背负的穷罪。
解决方案都在这里:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
我们的目标是手动选择一个适合的 mysqlclient.whl ,然后编译。
1、先安装 wheel,才可以编译 *.whl 文件
$ pip install wheel
2、安装Microsoft Visual C++
Python 2.7:Microsoft Visual C++ 2008 (x64, x86, and SP1)
Python 3.x:Visual C++ 2017 (x64 or x86)
3、查看 pip 支持的版本
# AMD64
import pip._internal
print(pip._internal.pep425tags.get_supported())# WIN32
import pip print(pip.pep425tags.get_supported())
环境不同,输出不同,我的输入如下:
[('cp37', 'cp37m', 'win32'), ('cp37', 'none', 'win32'), ('py3', 'none', 'win32'), ('cp37', 'none', 'any'), ('cp3', 'none', 'any'), ('py37', 'none', 'any'), ('py3', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
根据我的支持表,我找到了文件: mysqlclient-1.4.2-cp37-cp37m-win32.whl
你可以在这里查找:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
也可以在pip仓库查找各种历史版本:https://pypi.org/project/mysqlclient/#files
下载之后,进行安装
$ pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
成功了你会看到如下输出:
Processing c:\users\lee\downloads\mysqlclient-1.4.2-cp37-cp37m-win32.whl Installing collected packages: mysqlclient Successfully installed mysqlclient-1.4.2
如果是不正确的版本,你会出现如下报错:
mysqlclient-1.3.11-cp36-cp36m-win32.whl is not a supported wheel on this platform.
不需要担心,慢慢找到匹配 pip 的即可。
一切尘埃落定之后,重新执行一下最初的 migratemigrate 命令。
$ python manage.py migrate
如果你的 mysql 版本是 5.5(笔者用 phpstudy 最新版也只有5.5)。还会出现一个 SQL 错误的信息:
django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax
to use near '(6) NOT NULL)' at line 1"))
MySQL5.5并不支持Django2.1生成的这种SQL语句。我选择安装了 mysql lastest 版本。既 (mysql8.0.15)[https://dev.mysql.com/downloads/mysql/]
如果不会安装,请参考我的另一篇建议笔记:mysql 编译安装 window篇
或者参考网站 mysql 安装教程。总之要确保运行中的 mysql 服务版本是 5.5 以上。
在确保你的 mysql 是最新且能访问之后。重新执行一下该命令。
python manage.py migrate
如果成功会看到如下信息:
再看看你的数据库,django 生成了不少实用的表。
(完)
转载于:https://www.cnblogs.com/CyLee/p/10706540.html
django 与 mysql 勾结指南相关推荐
- 项目性能优化(MySQL读写分离、MySQL主从同步、Django实现MySQL读写分离)
当项目中数据库表越来越多,数据量也逐渐增多时,需要做数据库的安全和性能的优化.对于数据库的优化,可以选择使用MySQL读写分离实现. 1.MySQL主从同步 1.主从同步机制 1.1.主从同步介绍和优 ...
- python django mysql写入中文乱码_解决django 向mysql中写入中文字符出错的问题
之前使用django+mysql建立的一个站点,发现向数据库中写入中文字符时总会报错,尝试了修改settings文件和更改数据表的字符集后仍不起作用.最后发现,在更改mysql的字符集后,需要重建数据 ...
- Django REST framework API 指南(2):响应
Django REST framework API 指南(1):请求 Django REST framework API 指南(2):响应 Django REST framework API 指南(3 ...
- Django 连接Mysql异常处理
Django 连接Mysql异常处理 参考文章: (1)Django 连接Mysql异常处理 (2)https://www.cnblogs.com/hotpsy/p/6865111.html 备忘一下 ...
- Win10+Python+Django+Nginx+MySQL开发教程及实例(1)——开发环境搭建
Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本教程共有三篇内容: 第一篇:Win10+Python+Django+Nginx+MySQL 开发环境搭 ...
- django设置mysql数据库连接_django如何设置连接mysql数据库
django 的mysql数据配置 . 在成功安装python-mysql后,开始配置django的mysql连接配置 打开django项目下的setting.py文件,将DATABASES改成下面这 ...
- pycharm创建mysql项目_python+Django+pycharm+mysql 搭建首个web项目详解
本文实例讲述了python+Django+pycharm+mysql 搭建首个web项目.分享给大家供大家参考,具体如下: 前面的文章记录了环境搭建的过程,本节记录首个web项目调试 首先检查安装的模 ...
- 解决Nginx与mysql勾结的错误
nginx与mysql"勾结"比较常见的错误就是,当本服务器的mysql主机默认为localhost的时候,nginx往往无法发现其数据库,哪怕是账号密码都正确也发现不了,从而数据 ...
- mysql 客户服务号获取_《MySQL排错指南》——1.4 获取查询信息-阿里云开发者社区...
本节书摘来自异步社区出版社<MySQL排错指南>一书中的第1章,第1.4节,作者:[美]Sveta Smirnova(斯维特 斯米尔诺娃),更多章节内容可以访问云栖社区"异步社区 ...
最新文章
- 笔记本电脑真香,包邮送一台!
- 上海市高校大学生计算机一级,上海市高校计算机等级考试(一级)..doc
- yolov3深度解析
- 优秀案例|想学排版?布局清晰明了的海报给你参考
- Android学习笔记(四九):通过Content Provider访问数据
- 错误ImportError: 'No module named skimage.io'和ImportError: No module named google.protobuf.internal
- [patterns practices] Web 服务安全:场景、模式和实现指南
- InfoPath参与流程的开发[转帖]
- cad上样条曲线上的点太多了_学习CAD,我总结了五个阶段,你是那个段位?
- 广数25i系统倒刀回刀m代码_史上最全数控系统代码信息!错过没有了!
- 【白盒测试技术之-junit】
- Windows XP SP3安装后瘦身法
- 二十、数据库的高可用是怎么实现的?
- C语言蓝桥杯刷题:数字三角形
- 微信公众号基本设置服务器设置教程,最新最全的微信公众号开发者模式配置
- 通过需求条目的层次去解决问题
- 国庆节,一天开发一个小程序+Web系统。2.5K到手。【分享开发经验】【收藏起来】
- Java 解压缩各种格式
- 新中新DKQ-A16D身份证读卡器C#对接程序出坑记
- 低通滤波器转带通滤波器公式由来_射频/微波滤波器
热门文章
- 如何检查Python字典中是否存在密钥
- sql重命名数据库_SQL重命名数据库
- Android RecyclerView网格布局动画
- primefaces教程_Primefaces Spring和Hibernate集成示例教程
- 换个思路理解Javascript中的this
- 关于自定义异常中为什么带参构造器需要显示调用父类异常的带参构造器
- Swift面向对象基础(中)——Swift中的方法
- 关于MYSQL中FLOAT和DOUBLE类型的存储
- MySQL的主从复制与读写分离技术实例(一)主从复制
- 【To Do! 重点 正则表达式】LeetCode 65. Valid Number