mysql 连接 django
版本:
django:1.11.9
python3
mysql 5.7.18
在这里我们认为你已经安装好了mysql,python ,django
下面是来自django官方教程的一段话
If you wish to use another database, install the appropriate database bindings
and change the following keys in theDATABASES 'default' item to match your database connection settings:
first
你需要一个Python的db API DRIVER 即数据库接口驱动
常见的有mysqldb、pymysql、mysqlclient
- MySQLdb is a native driver that has been developed and supported for over a decade by Andy Dustman.
- mysqlclient is a fork of
MySQLdbwhich 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':'',
'USER':'root',
'PASSWORD':'',
}
}
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)
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文件中的类名。
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
- 更改配置文件
mysql 连接 django的更多相关文章
- 使用mysql连接django时,需要的步骤以及错误解决办法
django默认使用的sqlite3,更改为SQL时需要按照如下操作进行 1.在settings.py中的78行进行更改 DATABASES = { 'default': { 'ENGINE': 'd ...
- 关于Django数据库mysql连接错误问题Connection to api@localhost failed. [08001] Could not create connection to d
Connection to api@localhost failed. [08001] Could not create connection to d 错误类型 django连接mysql数据库错误 ...
- django 重写 mysql 连接库实现连接池
django 重写 mysql 连接库实现连接池 问题 django 项目使用 gunicorn + gevent 部署,并设置 CONN_MAX_AGE 会导致 mysql 数据库连接数飙升,在高并 ...
- Django db使用MySQL连接池
Django db使用MySQL连接池 Sep 25 2016 Django db模块本身不支持MySQL连接池,只有一个配置CONN_MAX_AGE连接最大存活时间,如果WSGI服务器使用了线程池技 ...
- MySQL在Django框架下的基本操作(MySQL在Linux下配置)
[原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------ ...
- 【技术博客】MySQL和Django常用操作
MySQL和Django是搭建网站常用的配置之一,在此记录一下在Windows系统搭建网站时MySQL以及Django常用的操作. MySQL MySQL的SQL语句不区分大小写,推荐将保留字大写,数 ...
- 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。
解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题. (默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池. 所以系统发布第二天访问会 ...
- 安装Hive(独立模式 使用mysql连接)
安装Hive(独立模式 使用mysql连接) 1.默认安装了java+hadoop 2.下载对应hadoop版本的安装包 3.解压安装包 tar zxvf apache-hive-1.2.1-bin. ...
- Java Mysql连接池配置和案例分析--超时异常和处理
前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...
随机推荐
- mssql sqlserver获取指定月份当月天数总和
摘要: 下文通过sql函数的形式,获取指定月份的总天数 实验环境:sqlserver 2008 R2 制作思路: 1. 获取指定月份的第一天, 2. 并采用dateadd向后加一个月形成一个新的日期 ...
- 设置TIMESTAMP和DATETIME的自动初始化及自动更新
最近有一个关于MySQL版本升级的事,涉及到一些关于时间类型的细节问题需要查明,因此到官网找到相关文章,翻出来比较方便自己理解,博客这里也贴一下. 参考官网网址: https://dev.mysql. ...
- 抖音、YouTube、Facebook等新媒体营销与运营相关14本书
最近几年看过的抖音等新媒体营销与运营相关的书有14本,好书不多.具体清单整理如下,点击标题或图片可以看详细点评与内容摘抄: 4星|<屏幕上的聪明决策>:人在手机/电脑上做选择的心理学研究综 ...
- 【题解】P1119 灾后重建
题目地址 理解Floyed的本质 Floyed的本质是动态规划. 在地K次循环中,Floyed算法枚举任意点对(X,Y),在这之前,K从未做过任何点对的中点.因此,可以利用K为中转的路径长度更新. 在 ...
- Ubuntu16.04中php如何切换版本
其实就是一条Linux命令,如下: sudo update-alternatives --config php 会出现下面选项: There are choices for the alternati ...
- pd.read_csv() 、to_csv() 之 常用参数
本文简单介绍一下read_csv()和 to_csv()的参数,最常用的拿出来讲,较少用的请转到官方文档看. 一.pd.read_csv() 作用:将csv文件读入并转化为数据框形式. pd.read ...
- open-falcon自定义push数据无法在grafana显示
使用open-falcon自定义push数据,在open-falcon中数据能正常显示,而在grafana中添加监控项时却无法显示. 由上述现象可判断可能是由于open-falcon的api组件有问题 ...
- 《通过C#学Proto.Actor模型》之Persistence
Actor是有状态的,当每一步执行失败后,返回失败地方继续执行时,希望此时的状态是正确的,为了保证这一点,持久化就成了必要的环节了. Proto.Actor提供了三种方式执久化: Event Sour ...
- 一文搞懂Raft算法
raft是工程上使用较为广泛的强一致性.去中心化.高可用的分布式协议.在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos.但Paxos是:少数真正理解的人觉得简单,尚未理解 ...
- Java 208 道面试题:第一模块答案
目前市面上的面试题存在两大问题:第一,题目太旧好久没有更新了,还都停留在 2010 年之前的状态:第二,近几年 JDK 更新和发布都很快,Java 的用法也变了不少,加上 Java 技术栈也加入了很多 ...