搭建Django2.0+Python3+MySQL5時同步數據庫時報錯:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None
解決辦法:
找到Python安裝路勁下的Python36-32\Lib\site-packages\django\db\backends\mysql\base.py文件
將文件中的如下代碼注釋
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
重新在項目manage.py路勁下執行如下命令即可
python manage.py makemigrations
python manage.py migrate
附:Django配置MySQL數據庫方法
一、settings.py文件中修改數據庫配置為下面的內容:
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME': 'mysql',
'USER': 'root',
'PASSWORD': 'zwg123456',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
},
}
}
驅動(ENGINE)、主機地址(HOST)、端口號(PORT)、數據庫(NAME)、用戶名(NAME)以及登錄密碼(PASSWORD);
二、在__init_.py文件添加如下配置:
# coding=utf-8
import pymysql
pymysql.install_as_MySQLdb()
因為Django連接MySQL時默認使用MySQLdb驅動,但MySQLdb不支持Python3,因此這里將MySQL驅動設置為pymysql。
三、執行數據遷移
在項目manage.py路勁下執行如下命令即可
python manage.py makemigrations
python manage.py migrate
————————————————
版權聲明:本文為CSDN博主「潛行100」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_35304570/article/details/79674449
上面執行完后又有報錯
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'
解決方法:
1.用終端找到上面路徑的文件
2.在文件中找到 query = query.decode(error = ‘replace’) 這句代碼,然后將decode修改成encode就好了
3.在項目manage.py路勁下重新執行如下命令
python manage.py makemigrations
python manage.py migrate
如何通過python shell 執行python一行一行代碼 進行數據表的數據添加
進入到python shell
執行命令 python manage.py shell
引入包
from app1.models import Grades,Students
from django.utils import timezone
from datetime import *
查看Grades下的所有數據
Grades.objects.all()
查看第二個
Grades.objects.get(pk=2)
修改數據
grade1.屬性=值
grade1.save()
刪除
grade1.delete()
添加數據
創建一個模型類的實例對象
grade1=Grades()
grade1.gname="python04"
grade1.gdata=datetime(year=2019,month=11,day=27)
grade1.ggirlnum=3
grade1.gboynum=50
grade1.save()