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 条评论