mysql 链接 django

版本:html

django:1.11.9python

python3mysql

mysql 5.7.18sql

在这里咱们认为你已经安装好了mysql,python ,django数据库

下面是来自django官方教程的一段话django

If you wish to use another database, install the appropriate database bindings session

and change the following keys in theDATABASES 'default' item to match your database connection settings:app

first

你须要一个Python的db API DRIVER   即数据库接口驱动ide

常见的有mysqldb、pymysql、mysqlclient  ui

  • MySQLdb is a native driver that has been developed and supported for over a decade by Andy Dustman.
  • mysqlclient is a fork of MySQLdb which notably supports Python 3 and can be used as a drop-in replacement for MySQLdb. At the time of this writing, this is the recommended choice for using MySQL with Django.
  • MySQL Connector/Python is a pure Python driver from Oracle that does not require the MySQL client library or any Python modules outside the standard library.

可是MYSQLdb不支持python3  ,

In addition to a DB API driver, Django needs an adapter to access the database drivers from its ORM.

Django provides an adapter for MySQLdb/mysqlclient while MySQL Connector/Python includes its own.

上面的意思是不只须要接口驱动,还须要适配器,django已经为MYSQLdb和mysqlclient提供了适配器,MySQL Connector/Python内置这个适配器

虽然我有一个pymysql ,但按照官网的推荐我仍是下载了一个mysqlclient

>>pip install mysqlclient

建立一个数据库

打开mysql,type:

CREATE  DATABASE  database_name CHARACTER SET UTF8;       指定数据库的编码utf8

Now ,咱们已经有了db API DRIVER 和建立好的数据库,开始第二步

second

改变配置文件

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite',
        'HOST':'',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'123',
    }
}

NAME   是你建立的数据库名字

HOST  主机

PORT 端口

USER  用户名    这个用户的权限应是能建立数据表的或者数据库,忘了。。

PASSWORD  登陆mysql的密码

还有其余选项

third  

如今咱们能够建立一些模型去加到数据库里了

例如像下面

from django.db import models

# Create your models here.

class Publisher(models.Model):
    pub_name=models.CharField(max_length=200)
    city=models.CharField(max_length=200)

class Book(models.Model):
    book_name = models.CharField(max_length=200)
    author = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    publish = models.ForeignKey(Publisher, on_delete=models.CASCADE)
View Code

calss  定义的类名将会是数据库对应的表名,属性对应字段,不过代表有所误差,假如你的应用名是blog ,class名是Book, 建立的表则是blog_book   数据库不区分大小写

note:

在配置文件settings.py 修改

INSTALLED_APPS = [
    'blog.apps.BlogConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
View Code

将咱们写的应用添加进去,

'blog.apps.BlogConfig', 红色部分是咱们应用app.py文件中的类名。

last

 

切换到项目的目录下

like

 

执行如下几条命令

python manage.py makemigrations

以上是提示错误,表示在Publisher 这个类的属性不能是book,因此起名字要注意

改完字段以后

OK

你可使用

Python manage.py sqlmigrate 应用名 0001

去查看下,这条命令不会作任何操做,只是查看

python manage.py migrate

建立完成,再打开mysql,切到数据库你会看到

 

 

 

 

总结:

django   为咱们内置的数据库是sqlite ,可是真正生产时是须要mysql, 等大型数据库的,

好像使用MYSQL,只须要两步

  • 安装databases bindings
  • 更改配置文件
相关文章
相关标签/搜索