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数据库 ...
随机推荐
- IOS开发入门你们准备好了吗?
我们对于IOS的了解最多应该就是苹果手机独有的IOS系统吧,也可以说是单任务管理器,这可以说是一个优势,但是随着技术提升IOS慢慢有被超越的趋势,但是很多大公司还是需要这方面的开发人才,那么今天我们来 ...
- TP5.1:数据库的增删改查操作(基于面向对象操作)
我们现实中对数据库的增删改查操作,都是使用模型类进行操作的(表名::),也就是面向对象操作,只有底层的代码用的是数据库操作(Db::table('表名')) 下面我将贴出模型类进行的增删改查操作,通过 ...
- Metasploitable渗透测试实战——生成木马
攻击机:kali 目标机:windows 1.生成木马 wincap发送至本机 2.进入msf (命令:msfconsole)启动监听 3.当目标点击test.exe(可伪装)时,触发后门,实现入 ...
- C++ new new[]详解
精髓: operator new()完成的操作一般只是分配内存:而构造函数的调用(如果需要)是在new运算符中完成的. operator new和new 运算符是不同的,operator new只分配 ...
- ffmpeg:编解码过程,基本用法
1 术语: 什么是影片?其实就是一组(很多张)图片,时间间隔很小的连续展示出来,人们就觉得画面中的人物在动,这就是影片.那电影的实质就是N多张图片的集合.那 每张图片和帧又有什么关系呢?事实上,如果 ...
- 硬件-ESP32S模块资料
1.产品概述 ESP-32S WiFi 模块是由安信可科技自主设计研发,该模块核心处理器 ESP32提供了一套完整的802.11 b/g/n/e/i 无线局域网(WLAN)和蓝牙4.2解决方案,具有最 ...
- Python OOP 面向对象
1.Python实现OOP可以概括为三个概念: 继承:基于Python属性查找 多态:在x.method中,method的意义取决于x的类型 封装:方法和运算符实现行为,数据隐藏是一种惯例 2.委托: ...
- 【转载】#330 - Derived Classes Do Not Inherit Constructors
A derived class inherits all of the members of a base class except for its constructors. You must de ...
- 使用Excel管理命令输出
效果图:(饼状图为后添加) 实现代码:
- ceph-对象存储
ceph对象存储 作为文件系统的磁盘,操作系统不能直接访问对象存储.相反,它只能通过应用程序级别的API访问.ceph是一种分布式对象存储系统,通过ceph对象网关提供对象存储接口,也称为RADOS网 ...