python django mysql配置

1    django默认支持sqlite,mysql, oracle,postgresql数据库。

     <1> sqlite

            django默认使用sqlite的数据库,默认自带sqlite的数据库驱动 , 引擎名称:django.db.backends.sqlite3

     <2> mysql

            引擎名称:django.db.backends.mysql

2    mysql驱动程序

  •    MySQLdb(mysql python)
  •    mysqlclient
  •    MySQL
  •    PyMySQL(纯python的mysql驱动程序)

3     在django的项目中会默认使用sqlite数据库,在settings里有如下设置:

       python django mysql配置    

如果我们想要更改数据库,需要修改如下:

        python django mysql配置   

DATABASES = {

    default: {

        ENGINE: django.db.backends.mysql, 

        NAME: books,    #你的数据库名称

        USER: root,   #你的数据库用户名

        PASSWORD: ‘‘, #你的数据库密码

        HOST: ‘‘, #你的数据库主机,留空默认为localhost

        PORT: 3306, #你的数据库端口

    }

}
NAME即数据库的名字,在mysql连接前该数据库必须已经创建,而上面的sqlite数据库下的db.sqlite3则是项目自动创建

USER和PASSWORD分别是数据库的用户名和密码。

设置完后,再启动我们的Django项目前,我们需要激活我们的mysql。

然后,启动项目,会报错:no module named MySQLdb

这是因为django默认你导入的驱动是MySQLdb,可是MySQLdb对于py3有很大问题,所以我们需要的驱动是PyMySQL

所以,我们只需要找到项目名文件下的__init__,在里面写入:

import pymysql
pymysql.install_as_MySQLdb()

问题解决!

 

 

创建数据库

先用MySQL 创建一个数据库

python django mysql配置

 

然后在model.py里面写数据表

python django mysql配置

 

 

class Book(models.Model):
    # id =
    name = models.CharField(max_length=20)
    price = models.FloatField()
    pub_date = models.DateField()



class Author(models.Model):
    name = models.CharField(max_length=32)

 

 在terminal运行python manage.py makemigrations

D:\pycharm\python_s3\Django_ORM>python manage.py makemigrations
Migrations for app01:
  app01\migrations\0002_author.py
    - Create model Author

 

 在terminal运行python manage.py migrate

D:\pycharm\python_s3\Django_ORM>python manage.py migrate
Operations to perform:
Apply all migrations: admin, app01, auth, contenttypes, sessions
Running migrations:
Applying app01.0003_book_author... OK

表就建好了

 

python django mysql配置

上一篇:mysql 命令和使用 备份和恢复


下一篇:Python操作数据库