django之python3.4及以上连接mysql的一些问题记录
首先,祭出大杀器whl
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
django1.x与django2.x 在项目的写法上有一些区别,常见的有以下:
1.配置文件中中间件的写法:
由middleware_class 直接改成:middleware 所以,在遇到直接从网上DOWN的项目的时候,一定要注意,这里的区别,否则你永远不知道各种错误是从哪里来的
2.就是url.include的写法
在django2.x中.app_name 是直接写到 app的url中,无需再在主的url中写这个
如:project的urls
url(r'', include(('blog.urls','blog'),namespace='blog')),
app的urls:
from blog import views app_name="blog"
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^blog/article/(?P<article_id>\d+)$', views.ArticleDetailView.as_view(), name='detail'),
3.关于django连接mysql的各种资料中,以下做一个总结:
如果我们django 使用的python 版本为2.x的时候,我们连接mysql使用:pymysql
1.pip install pymysql
2.project的setting文件头部加上:
# import pymysql
# pymysql.install_as_MySQLdb() 如果我们python 版本使用的是3.4及以上的时候,我们连接mysql使用:mysqlclient
安装mysqlclient的时候,请使用上面的大杀器whl来安装
在这里搜索:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient符合你操作系统以及当前python版本的mysqlclient,copy到你的project所在的目录,如下面的:

执行:pip install mysqlclient-1.4.2-cp36-cp36m-win_amd64.whl 执行安装,
注意,这时候,我们不需要再去改setting了,无需再添加 import pymysql这个,因为当前的数据库驱动使用的是:mysqlclient了 最后,执行: pip freeze ->requirement.txt 这里写这个东西的原因是:网上看到有很多神奇的歪招,让去改什么 site_package/django/db/backend/db.py里面的判断,不做置评,但是,这个改了之后,如果应用程序是在docker发布的时候,将是非常麻烦的,
总之,像这样改了之后,我是没有成功在docker中成功发布过应用,所以建议不去改动基础类库
django之python3.4及以上连接mysql的一些问题记录的更多相关文章
- Python3中使用PyMySQL连接Mysql
		
Python3中使用PyMySQL连接Mysql 在Python2中连接Mysql数据库用的是MySQLdb,在Python3中连接Mysql数据库用的是PyMySQL,因为MySQLdb不支持Pyt ...
 - Python3.x使用PyMysql连接MySQL数据库
		
Python3.x使用PyMysql连接MySQL数据库 由于Python3.x不向前兼容,导致Python2.x中的很多库在Python3.x中无法使用,例如Mysqldb,我前几天写了一篇博客Py ...
 - python3.6下pycharm连接mysql
		
由于python3.x里面没有了MysqlDB,所以使用python3.6+django连接不上mysql,会报错 no modul "MysqlDB".于是就有了一个替代品,叫p ...
 - vs2017 + Python3.6 +Django1.11 连接mysql数据库
		
不废话直接来. vs2017创建一个新的python web项目之后默认链接数据库是sqlite.但是我就想连接到Mysql 上面玩,于是开始倒腾了.下面是步骤 1.修改settings.py 文件需 ...
 - django1.6.x(python3.3)使用pymysql连接mysql
		
1.安装 pymysql,地址:https://code.google.com/p/pymysql/ 2.安装django 然后执行 django-admin.py startproject mysi ...
 - python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删改查操作
		
1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import ...
 - python3使用pymysql库连接MySQL的常用操作
		
#导入pymysql模块import pymysql #连接数据库connect = pymysql.connect( host='localhost', port=3306, user='root' ...
 - 黄聪:远程连接mysql数据库注意事项记录(远程连接慢skip-name-resolve)
		
远程连接慢 慢是一个很大的问题,网上的办法是在my.ini的“[mysqld]”下面加入一行“skip-name-resolve”,就像这样: 然后保存并重启mysql服务即可. 下面是其它网友的补充 ...
 - 在Django中连接MySQL数据库(Python3)
		
我的环境: python3.6, Django2.1.5, MySQL8.0.15, win10, PyCharm, 要求:已经安装了MySQL数据库 ...
 
随机推荐
- Yii2.0 安装yii2-queue并在Linux启动守护进程监听消息
			
一.什么是yii2-queue? Yii2-queue是Yii2.0 PHP框架下一个消息队列拓展插件,支持基于DB, Redis, RabbitMQ, AMQP, Beanstalk 和 Gearm ...
 - 指定类型的成员XX”不支持实体LINQ。只有初始化,成员单位,和实体导航性能的支持。
			
The specified type member 'DeleteFlag' is not supported in LINQ to Entities. Only initializers, enti ...
 - 剑指offer54 表示数值的字符串
			
错误的代码: class Solution { public: bool isNumeric(char* string) { if(string == NULL) return false; if(* ...
 - EF core 学习笔记
			
应该 以领域 为核心开发程序, 不应该 以数据库 entityframeworkcore entityframeworkcore.sqlserver entityframeworkcore.tool ...
 - Spring boot 集成三种定时任务方式
			
三种定时任务方式分别为 org.springframework.scheduling.annotation.Scheduled java.util.concurrent.ScheduledExecut ...
 - Linux(三) - 文件操作相关命令
			
Ctl-A 光标移动到行首 Ctl-C 终止命令 Ctl-D 注销登录 Ctl-E 光标移动到行尾 Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全行 Ctl-W 删除当前光标到前边的最近一 ...
 - 简单使用hibernate(idea中使用)
			
首先创建一个maven项目 创建成功后,进行创建数据库的表 CREATE TABLE BOOK( ID INT AUTO_INCREMENT PRIMARY KEY, NAME ), NUMBER i ...
 - js实现弹窗一个ip在24小时只弹出一次的代码
			
function cookieGO(name) { var today = new Date(); var expires = new Date(); expires.setTime(today.ge ...
 - 17、SpringBoot------整合dubbo
			
SpringBoot整合Dubbo+Zookeaper 1.安装运行zookeeper (1)下载zookeeper 官网:http://zookeeper.apache.org/ (2)解压缩 (3 ...
 - 2.初识CronTrigger
			
开发工具:Eclipse 代码下载链接:https://github.com/theIndoorTrain/QuartzDemo.git 前言: 在1.初始Quartz里面,我们介绍了quartz的一 ...