Django使用mysql连接数据库配置

2019-04-16  本文已影响0人  上帝大人

将默认的数据库改为Mysql。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',   #数据库的名字
        'USER': 'root',
        'PASSWORD':'root',
        'HOST':'localhost',
        'PORT':'3306',
    }
}

让系统启动时默认链接Mysql数据库。

import pymysql
pymysql.install_as_MySQLdb()

在创建的app中,有modeles.py

->在里面定义一个类Book

class BookInfo(models.Model):
    btitle= models.CharField(max_length=20) #列名btitle,类型char,最长20字节
    #char类型必须指定max_length选项,
    bdate  =models.DateField  #列名bdate,类型 date。

models.XXXField()里面的选项,包括default=默认值null=True数据库中表可以为空blank=False这个输入框不能为空

数据迁移包括生成迁移文件,执行迁移。

下面命令在命令行(Terminal)输入

python manage.py makemigrations
#生成了迁移文件,在migrations包下面可以看到多出来一个文件
python manage.py migrate
#执行迁移

因为在django内部内置了ORM框架,当你创建一个类时,他会自动的在数据库中添加相关的表。表名为: app的名字_modole的类的名字。

遇到的错误:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

->原因写的也很清楚,就是mysqlclient版本太老了,但是安装了新版本的,还是会报错。所以我们修改了错误信息中有'Base'的那个文件,将if条件和下面的报错语句注释掉。然后还是报错。

query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'

->将原来的改为' query = query.encode(errors='replace') ' 变化: decode---->encode
错误消失!(这个可能是是决心性的原因)

上一篇下一篇

猜你喜欢

热点阅读