django链接MySQL数据库
django链接MySQL数据库
一.Django默认数据库sqlite3
settings.py文件
# **Django默认使用的是自带的sqlite3
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
二.链接MySQL数据库
1.安装pymysql
pip install pymysql
2.修改配置文件settings.py
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db1', # 一定要事先创建好才能指定
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': '123',
'CHARSET': 'utf8'
}
}
# 在__init__这一句话(本质就是猴子补丁),也可以放在setting.py中
import pymysql
pymysql.install_as_MySQLdb()
三.数据库同步与迁移
python3 manage.py makemigrations #在migrations 文件夹下记录一下
python3 manage.py migrate #把记录变更到数据库
四.Django提供反向同步
1.先指定数据库迁移命令完成连接
python3 manage.py makemigrations #在migrations 文件夹下记录一下
python3 manage.py migrate #把记录变更到数据库
2.Django使用inspectdb反向生成model
# 执行如下命令拿回来原来的数据表
python3 manage.py inspectdb [表名]
#示例
python3 manage.py inspectdb userinf
'''
输出结果如下:
from django.db import models
class Userinfo(models.Model):
id = models.IntegerField(blank=True, null=True)
name = models.CharField(max_length=32, blank=True, null=True)
pwd = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'userinfo'
'''
如上面代码所示, 它会将数据库中表转换成代码的形式, 只需要复制到 models.py 文件中去就行了
class Userinfo(models.Model):
id = models.IntegerField(blank=True, null=True)
name = models.CharField(max_length=32, blank=True, null=True)
pwd = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'userinfo'
四、Django查看原生sql
-
queryset对象.query
-
通过配置日志字典到
setting.py
中,如下:LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level':'DEBUG', }, } }
版权声明:
作者:淘小欣
链接:https://blog.taoxiaoxin.club/147.html
来源:淘小欣的博客
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
django链接MySQL数据库
django链接MySQL数据库
一.Django默认数据库sqlite3
settings.py文件
# **Django默认使用的是自带的sqlite3
DATABASES = {
'default': {
……

共有 0 条评论