首先,祭出大杀器whlpython
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclientmysql
django1.x与django2.x 在项目的写法上有一些区别,常见的有如下:sql
由middleware_class 直接改为:middleware 因此,在遇到直接从网上DOWN的项目的时候,必定要注意,这里的区别,不然你永远不知道各类错误是从哪里来的docker
在django2.x中.app_name 是直接写到 app的url中,无需再在主的url中写这个数据库
如:project的urls django
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'),
若是咱们django 使用的python 版本为2.x的时候,咱们链接mysql使用:pymysql app
1.pip install pymysqlui
2.project的setting文件头部加上:url
# 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中成功发布过应用,因此建议不去改动基础类库