美文网首页Django
Django连接mysql

Django连接mysql

作者: wsf535 | 来源:发表于2018-05-03 14:24 被阅读217次

    最近在windwos 10环境中搭建Django开发环境,用的是Mysql数据库,发现使用最新版本的mysql 8.0 Django在连接时会报错。
    具体报错为:

    django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
    

    如果报using password: YES可以尝试修改密码, 但using password: NO而且配置正确,目前个人无法解决这个问题,把mysql版本降到5.7.22后一切正常。
    下载地址:msi安装包点下面页面。
    https://dev.mysql.com/downloads/mysql/5.7.html#downloads

    连接过程:

    1、创建django工程

    django-admin startproject mysite
    

    2、创建APP

    cd mysite
    python manage.py startapp netnpm
    

    3、安装mysql并创建数据库(建意使用5.x版本)

    CREATE  DATABASE  netnpm CHARACTER SET UTF8;
    flush privileges;
    

    4、修改models.py,建立自己的模型

    from django.db import models
    class Devices(models.Model):
        Dev_name = models.CharField(max_length=30)
        Dev_manu = models.CharField(max_length=20)
        Dev_type = models.CharField(max_length=20)
        Dev_sn= models.CharField(max_length=20)
        Mgt_ip = models.CharField(max_length=30)
        Generator = models.CharField(max_length=30)
        Cabinet = models.CharField(max_length=10)
        Production_date= models.DateTimeField()
        Online_date= models.DateTimeField(auto_now_add=True)
        His_conf=models.TextField()
        Curr_conf=models.TextField()
    

    5、修改settings.py

    #增加应用
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'netnpm'
    ]
    修改DB设置
    DATABASES = {
        # 'default': {
        #     'ENGINE': 'django.db.backends.sqlite3',
        #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        # }
        'default': {
            'ENGINE': 'django.db.backends.mysql',  # or mysql.connector.django
            'NAME': 'netnpm',
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': 'localhost',
            'PORT': '3306',
        }
    }
    

    6、安装pymysql,mysqlclient

    pip install pymysql
    pip install mysqlclient
    

    7|、修改APP下的init.py新增以下内容

    import pymysql
    pymysql.install_as_MySQLdb()
    

    8、同步DB

    python manage.py sqlmigrate
    python manage.py migrate
    

    相关文章

      网友评论

        本文标题:Django连接mysql

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