05 Python与django连接数据库

165次阅读
没有评论

共计 1168 个字符,预计需要花费 3 分钟才能阅读完成。

一.pycharm 链接数据库

点击 Database

05 Python 与 django 连接数据库

点击 + 号添加

05 Python 与 django 连接数据库

下载驱动

05 Python 与 django 连接数据库

测试失败示例

05 Python 与 django 连接数据库

测试成功示例

05 Python 与 django 连接数据库

查看链接后的数据库

05 Python 与 django 连接数据库

二.django 链接数据库

django 默认使用的数据库是自带的 SQLkite3, 功能比较少, 兼容性不够, 我们需要使用 mysql 将其替换

1. 对 setting.py 文件中的 DATABASES 参数进行修改

# 默认的数据库配置 : 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 注释默认配置并将其改成 mysql
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 选择 mysql 存储引擎
        'NAME': 'db1111',  # 必须是已经存在的库
        'HOST': '127.0.0.1',
        'POST': 3306,
        'USER': 'root',
        'PASSWORD': '123456',
        'CHARSET': 'utf8'
    }
}

2. 在项目文件夹或者应用文件夹的 __init__.py 文件中书写固定代码

# 这两行代码就是在告诉 django 不要使用默认的数据库(兼容性不好), 使用我们指定的
import pymysql
pymysql.install_as_MySQLdb()

三. 数据库同步命令

当数据库中已经存在一些表, 我们如何通过 django orm 操作这些表?

1. 手动创建

  • 按照数据库中表字段在 models.py 文件中书写并进行二次同步

2.django 提供反向同步

  • 先执行数据库迁移命令来完成连接
python3 manage.py makemigrations
  • 在执行下面命令查看代码
python3 manage.py inspectdb

# 代码示例
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 文件中去就行了

  • 直接重定向进入 models.py 文件中
Python3 manage.py inspactdb > [app 文件名]/models.py

# 或者只导入数据库中的某张表
Python manage.py inspactdb ([表名]) > app 名 /models.py
# 括号内不写代表所有表, 写了代表某张表
正文完
 
shawn
版权声明:本站原创文章,由 shawn 2023-06-16发表,共计1168字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)