django之python3.4及以上鍊接mysql的一些問題記錄

首先,祭出大殺器whlpython

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclientmysql

django1.x與django2.x 在項目的寫法上有一些區別,常見的有如下:sql

1.配置文件中中間件的寫法:

由middleware_class 直接改爲:middleware  因此,在遇到直接從網上DOWN的項目的時候,必定要注意,這裏的區別,不然你永遠不知道各類錯誤是從哪裏來的docker

2.就是url.include的寫法

在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'),


3.關於django鏈接mysql的各類資料中,如下作一個總結:

若是咱們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中成功發佈過應用,因此建議不去改動基礎類庫
相關文章
相關標籤/搜索