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
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':'',
'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连接因长时间空闲而被关闭, 使用时没有死链检测 ...
随机推荐
- SQL Server 查看CPU情况
--CPU相关视图 SELECT * FROM sys.dm_os_sys_info SELECT * FROM sys.dm_exec_sessions SELECT * FROM sys.sysp ...
- Python列表之班荆道故
列表list初识 列表是python的基础数据类型之一 ,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: list列表的定义: list_ = []list_1 = [&qu ...
- 炫龙炎魔T1笔记本 Win7 系统安装
系统链接:https://pan.baidu.com/s/1T5FdJf1jhTj78vEBYCXxyA 密码:rl7m 1.制作系统盘(下载文件中有教程),插好U盘,重启计算机 2.按F2进入BOS ...
- Ubuntu composer 安装thinkphp5 失败,报错:[ErrorException] mkdir(): Permission denied
在Linux环境下,使用composer安装thinkphp5,安装时,报错:[ErrorException] mkdir(): Permission denied : 看 ...
- 3星|《HBO的内容战略》:HBO与美国电视业大事记
HBO的内容战略 基本是HBO与美国电视业的大事记.从电视的诞生讲起.HBO在1972年首播,1975年做出一个当时惊世骇俗的决定:勇卫星实时向全美发送信号,随即成为覆盖全国的电视台:80年代受到录像 ...
- 如何使用U盘安装macOS high Sierra?
当你不再只是想升级系统的时候,而是想把系统重装,你可能就会用到如标题所说的方式:使用U盘安装mac系统.所以我们需要做以下几件事情,就可以顺利地重装mac系统: 第一步.在App Store下载最新的 ...
- [经验总结] 从其它sheet页引用数据生成图表时没有图例的解决办法
1.先给出一个在有数据区域的sheet页中生成的图表,比较全,图表和图例全部都有,如下图: 2.但是如果在其它 sheet页中引用该有数据的sheet数据时并生成图表,生成的图表只有图表区域显示,图例 ...
- socketServer并发处理socket
socketserver简单介绍 ''' socketserver:是对socket的封装,实现并发处理 前两个TCP,UDP常用,后两个不常用 ''' import socketserver soc ...
- supervisor管理php-fpm
/etc/php-fpm.conf,设置daemonize = no,默认是yes
- keras 的 Deeplabv3+ 实现遇到的问题
代码大佬都已经写好了,具体参考:https://github.com/bonlime/keras-deeplab-v3-plus git clone 下来以后,按照指南要训练自己的数据集,只要设置好自 ...