版本: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
你须要一个Python的db API DRIVER 即数据库接口驱动ide
常见的有mysqldb、pymysql、mysqlclient ui
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.可是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 和建立好的数据库,开始第二步
改变配置文件
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mysite', 'HOST':'', 'PORT':'3306', 'USER':'root', 'PASSWORD':'123', } }
NAME 是你建立的数据库名字
HOST 主机
PORT 端口
USER 用户名 这个用户的权限应是能建立数据表的或者数据库,忘了。。
PASSWORD 登陆mysql的密码
还有其余选项
如今咱们能够建立一些模型去加到数据库里了
例如像下面
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)
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', ]
将咱们写的应用添加进去,
'blog.apps.BlogConfig', 红色部分是咱们应用app.py文件中的类名。
切换到项目的目录下
like
执行如下几条命令
python manage.py makemigrations
以上是提示错误,表示在Publisher 这个类的属性不能是book,因此起名字要注意
改完字段以后
OK
你可使用
Python manage.py sqlmigrate 应用名 0001
去查看下,这条命令不会作任何操做,只是查看
python manage.py migrate
建立完成,再打开mysql,切到数据库你会看到
django 为咱们内置的数据库是sqlite ,可是真正生产时是须要mysql, 等大型数据库的,
好像使用MYSQL,只须要两步