美文网首页
Django使用mysql连接数据库配置

Django使用mysql连接数据库配置

作者: 上帝大人 | 来源:发表于2019-04-16 18:23 被阅读0次
    • 修改settings.py:

    将默认的数据库改为Mysql。

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

    让系统启动时默认链接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的类的名字。

    • 看看你的test数据库有没有数据了!

    遇到的错误:

    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
    错误消失!(这个可能是是决心性的原因)

    相关文章

      网友评论

          本文标题:Django使用mysql连接数据库配置

          本文链接:https://www.haomeiwen.com/subject/wlgbwqtx.html