不廢話直接來。
vs2017創建一個新的python web項目之后默認鏈接數據庫是sqlite。但是我就想連接到Mysql 上面玩,於是開始倒騰了。下面是步驟
1.修改settings.py 文件需要修改兩處
第一處:
INSTALLED_APPS = ['app', # Add your apps here to enable them 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'PythonDjangoPro',] #這一行必須是你創建的web項目名稱
第二處:
DATABASES = { #'default': { #'ENGINE': 'django.db.backends.sqlite3', #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #} 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': '3306', 'NAME': 'root', 'USER': 'root', 'PASSWORD': 'root', } }
現在就要處理一個很關鍵的問題,因為需要添加pymysql到項目python包中
然后咱們需要配置項目加載識別鏈接數據庫方式。在項目路徑下找到 __init__.py
#coding:utf-8 import pymysql pymysql.install_as_MySQLdb()
好了咱們現在要去 app/models.py 創建需要創建到數據庫中的實體,在models.py中代碼如下
#coding:utf-8 from django.db import models class User(models.Model): nickname = models.CharField('昵稱', max_length=150) openid = models.CharField('ID', max_length=128, primary_key=True) head = models.URLField('頭像') gender = models.CharField('性別', max_length=2, default='保密')
現在配置修改到現在就很想躍躍欲試一下了。但是別急肯定報錯,我不想寫出來錯誤,我繼續實現正確配置方式。因為現在mysqlclient 肯定出現連接bug,因為版本問題,其實就是有一個版本型號判斷在搞鬼
現在打開你python安裝目錄,依此打開 :X:\Program Files (x86)\python\Lib\site-packages\django\db\backends\mysql 找到base.py 用你飢渴難耐的vs2017編輯器注釋掉這段該死的代碼:
if version < (1, 3, 3): raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
對,是直接注釋掉
好了,我們開始一本正經實現一次通過manage.py 實體類創建表到mysql數據庫
現在你需要這樣
然后在打開的項目目錄下面按住shit鍵,打開右鍵菜單
現在你需要依此輸入一下代碼:
python manage.py makemigrations
python manage.py migrate
然后你會看到很多OK
打開Mysql數據庫可視化界面看看數據庫是不是有東西(表)
好啦,剩下的就自由發揮吧
卧薪嘗膽飲咖啡~~