Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录

这篇具有很好参考价值的文章主要介绍了Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01-配置数据库信息

在文件:"E:\Python_project\P_001\myshop-test\myshop\myshop\settings.py"中写入以下数据库的配置信息:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'shop-test',
        'USER': 'shop-test',
        'PASSWORD': 'Aa_123456',
        'HOST': 'localhost',
        'PORT': '3306',
        # 取消外键约束,否则多对多模型迁移报django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')
        'OPTIONS': {
            "init_command": "SET foreign_key_checks = 0;",
            'charset': 'utf8'
        },
    }
}

Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库

上面的代码比较好理解,就是对于语句:django.db.backends.mysql作一些说明:
在Django中,'django.db.backends.mysql'是一个数据库后端引擎的路径,用于指定使用MySQL作为数据库的后端。数据库后端引擎是Django用于与不同类型的数据库进行交互的组件。它提供了对数据库的连接、查询和数据操作的支持。

Django支持多个数据库后端引擎,例如MySQL、PostgreSQL、SQLite等。通过设置'ENGINE'选项,你可以指定使用的具体后端引擎。在这个例子中,'django.db.backends.mysql'表示使用MySQL作为数据库后端引擎。

通过选择不同的后端引擎,你可以使用不同类型的数据库来存储和检索数据,而Django提供的ORM(对象关系映射)功能将为你提供一致的数据访问接口,无论使用的是哪种数据库后端引擎。这样,你可以方便地切换和管理不同类型的数据库,而无需更改大量的代码。

在上面的配置中还取消了外键约束,否则在“多对多”模型关系的迁移中会出现下面的提示:

django.db.utils.IntegrityError:(1215, 'Cannot add foreign key constraint')

如果需要配置输出对应的数据库语句(*),则需要在"E:\Python_project\P_001\myshop-test\myshop\myshop\settings.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',
        },
    }
}

上面的日志输出配置代码中的语句“‘disable_existing_loggers’: False,”是什么意思?
答:在Django的日志配置中,'disable_existing_loggers'是一个布尔值选项,用于指定是否禁用现有的日志记录器。它的作用是控制是否保留已经存在的日志记录器,而不是完全替换它们。

'disable_existing_loggers'设置为True时,将禁用现有的日志记录器。这意味着,在日志配置中定义的新的日志记录器会生效,而现有的日志记录器将被忽略。这通常用于完全替换默认的Django日志配置。

'disable_existing_loggers'设置为False时,保留现有的日志记录器。这意味着,新的日志记录器将与现有的记录器一起使用,不会替换它们。这通常用于扩展默认的Django日志配置,添加额外的日志记录器或修改现有记录器的行为。

在给定的配置语句中,'disable_existing_loggers': False表示不禁用现有的日志记录器,而是保留它们,并将新的日志记录器添加到现有的记录器集合中。这样可以确保现有的Django数据库后端日志记录器仍然有效,并将日志输出发送到控制台。

语句: ‘propagate’: True, 是什么意思?
答:在Django的日志配置中,'propagate'是一个布尔值选项,用于指定日志消息是否应该传播给更高级别的日志记录器。

'propagate'设置为True时,日志消息将传播给父级日志记录器。这意味着,如果当前的日志记录器无法处理日志消息,它将将消息传递给其父级记录器,以便其处理或传递给更高级别的记录器。传播使得日志消息可以在整个日志记录器层次结构中进行传递和处理。

'propagate'设置为False时,日志消息不会传播给父级日志记录器。如果当前的日志记录器无法处理日志消息,消息将被静默丢弃,不会传递给更高级别的记录器。

在给定的配置语句中,'propagate': True表示日志消息将传播给父级记录器。这意味着,如果'django.db.backends'记录器无法处理日志消息,它将传递给更高级别的记录器进行处理。通过设置为True,你可以确保数据库后端日志消息在整个日志记录器层次结构中传播,以便根据需要进行处理或记录。

02-安装Python的MySQL数据库驱动程序 mysqlclient

安装命令如下(安装前注意把代理工具关掉 ):

pip install -i https://mirrors.aliyun.com/pypi/simple mysqlclient

安装成功后如下图所示:
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库

03-安装Mysql,并启动Mysql

在这里,可以用小皮面板来安装Mysql,当然也可以自己去Mysql的官网去下载安装包安装。
如果是用小皮面板来安装Mysql,则可以参考我之前写的博文:
https://blog.csdn.net/wenhao_ir/article/details/126170178
安装好后启动Mysql的服务:
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库
然后切换到数据库,按第01步中的配置代码中的信息新建一个数据库:
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库

04-定义Django的数据库模型(定义数据表-编写models.py文件)

在"“E:\Python_project\P_001\myshop-test\myshop\app1\models.py”"中写入下面的内容:

from django.db import models

# Create your models here.


class User(models.Model):
    username = models.CharField(max_length=50)
    email = models.EmailField(unique=True)
    # 其他字段...

    def __str__(self):
        return self.username

    

05-按照数据的配置生成数据库(执行迁移命令)

关于为什么在Django中把数据库的生成称为叫迁移?请参看我写的另一篇博文,https://blog.csdn.net/wenhao_ir/article/details/131544152

05-01-生成迁移执行文件

通过下面的几条命令生成“迁移执行文件”:

CD E:\Python_project\P_001\myshop-test\myshop\
E:
manage.py makemigrations

上面的命令正常的话运行结果如下所示:
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库
打开文件:“E:\Python_project\P_001\myshop-test\myshop\app1\migrations\0001_initial.py”
可以看到文件中包含当前模型的创建语句,0001_initial.py的内容如下:

# Generated by Django 3.2.10 on 2023-07-05 13:32

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('username', models.CharField(max_length=50)),
                ('email', models.EmailField(max_length=254, unique=True)),
            ],
        ),
    ]

05-02-执行数据库模型迁移

接上一步,用下面的三条语句实现执行数据库模型的迁移。

CD E:\Python_project\P_001\myshop-test\myshop\
E:
manage.py migrate

Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库

06-查看数据库

可以用工具“opendbviewer”查看数据库。
这个工具的百度网盘下载链接如下:
https://pan.baidu.com/s/19VxBiWHPmuJ_ApVgI3bqhA?pwd=e1te
安装完成后,连接数据库后就可以查看数据库了~如下图所示:
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库

07-向数据库写入数据并查看数据

在路径:E:\Python_project\P_001\myshop-test\myshop\下新建文件 sql_test.py(与manage.py平级):
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库
然后写入下面的代码:

import os
import django

# 设置Dango运行时需要的环境变量DJANGO_SETTINGS_MODULE
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')

# 加载Django的设置
django.setup()

# 导入模型,注意必须在加载完Django的设置后下面的这句导入模型语句才能被正确执行
from app1.models import User

# 创建一个用户
user = User(username='john', email='john@example.com')
user.save()

对于语句os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')的解释:
当我们在Python中运行Django项目时,需要告诉Django要使用的项目设置(settings)。这些设置包括数据库配置、应用程序列表、静态文件路径等等。
怎么告诉Django项目的设置(settings)呢?通过环境变量 DJANGO_SETTINGS_MODULE 告诉。
在这里,os.environ.setdefault(key, value)是设置一个环境变量的方法。它接受两个参数:key是要设置的环境变量的名称,value是要为该环境变量设置的值。
'DJANGO_SETTINGS_MODULE'刚才已经说了它的作用,'myshop.settings'是设置变量的值,表示Django应该使用myshop项目中的settings.py文件作为项目的设置。

执行上面的代码即可向数据库写入数据,执行后我们再去看数据库的记录:
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库
我们发现,在数据库shop-test的表User中已经有了一条新的记录。

我们再运行下面的代码,另外再写入一条新的记录:

import os
import django

# 设置Dango运行时需要的环境变量DJANGO_SETTINGS_MODULE
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')

# 加载Django的设置
django.setup()

# 导入模型
from app1.models import User

# 创建一个用户
user = User(username='suwenhao', email='2487872782.com')
user.save()

运行完成后,数据库中多新了一条新的记录:
Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录,Django,django,数据库

附完整代码

https://pan.baidu.com/s/1mmNZyyV9lrmsTc0s1GvW1Q?pwd=i6g9 文章来源地址https://www.toymoban.com/news/detail-528970.html

到了这里,关于Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库自动生成Models文件导入Django

    在Django项目使用数据库时,可以有三种方式:           1.直接编写app内的models文件,然后自动生成MySQL数据库          2.直接在MySQL中将数据库编写好,然后不使用models,而是在views中利用PyMySQL编写数据库链接等操作         3.MySQL库自动生成models文件进行连接使用 这

    2023年04月08日
    浏览(42)
  • Django创建应用、ORM的进阶使用及模型类数据库迁移

    Django 项目就是基于 Django 框架开发的 Web 应用,它包含了一组配置和多个应用,我们把应用称之为 App,在前文中对它也做了相应的介绍,比如 auth、admin,它们都属于 APP。 一个 App 就是一个 Python 包,通常一个 App 可以包含模型、视图、模板和 URL 配置文件,可以被应用到多个

    2024年02月09日
    浏览(58)
  • MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)

    目录 介绍 特点 基本语法 创建 调用 查看 删除  示例  存储过程是 事先经过编译 并 存储在数据库 中的一段 SQL 语句的 集合 ,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想

    2024年02月06日
    浏览(72)
  • 数据库系统原理及MySQL应用教程实验七存储过程与函数的创建管理

    1. 理解存储过程和函数的概念。 2. 掌握创建存储过程和函数的方法。 3. 掌握执行存储过程和函数的方法。 4. 掌握游标的定义、使用方法。 1.验证性实验:某超市的食品管理的数据库的Food表对其操作。 2.设计性试验:学校教师管理数据库中的teacherInfo表对其操作。 三、实验步

    2024年02月03日
    浏览(55)
  • 在Linux环境中安装配置Django与PostgreSQL数据库

    Django是一款功能强大的Python Web框架,而PostgreSQL是一个开源的高级关系型数据库系统。本文将介绍在Linux环境中如何安装和配置Django与PostgreSQL数据库,帮助您搭建一个完整的开发环境。 第一步:安装Django和PostgreSQL 安装Python环境:首先确保您的Linux系统中已经安装了Python,可以

    2024年02月16日
    浏览(42)
  • 【MySQL数据库】最全安装过程及配置详解

    🧛‍♂️iecne个人主页: : iecne的学习日志 💡每天 关注 iecne的作品,一起进步 💪一起学习,必看iecne 🐳希望大家多多支持🥰一起进步呀!

    2024年02月02日
    浏览(43)
  • MySQL数据库配置及创建用户和授权

    注意: 都是基于MySQL8.0以上版本 需要注意的是,修改 MySQL 的配置参数时需要谨慎,如果参数配置不合理,可能会导致数据库性能下降或出现其他问题。修改 MySQL 的配置参数时,最好具有一定的经验或者了解相关的 MySQL 参数调优知识。 vi /etc/my.cnf 第一步: cd /etc #进入etc目录

    2024年02月15日
    浏览(52)
  • 【SQL Server】数据库开发指南(七)MS-SQL存储过程全面解析:种类、优点和创建方法详解

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2024年02月07日
    浏览(105)
  • Springboot 实践(3)配置DataSource及创建数据库

            前文讲述了利用MyEclipse2019开发工具,创建maven工程、加载springboot、swagger-ui功能。本文讲述创建数据库,为项目配置数据源,实现数据的增删改查服务,并通过swagger-ui界面举例调试服务控制器 创建数据库 项目使用MySQL 8.0.31数据,数据库的库表结构的建立可行方式

    2024年02月12日
    浏览(32)
  • 【MQTT接收数据写入数据库】

    参考上一篇文章 创建一个数据库和数据表存储mqtt消息 首先,登录到MySQL服务器: 输入你的root用户密码。默认root 创建数据库 : 选择创建的数据库 : 创建数据表 : 这里我们假设你从MQTT接收到的数据是一个简单的字符串。我们将创建一个包含两个字段的表,一个字段是自增的

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包