国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄

這篇具有很好參考價值的文章主要介紹了Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

01-配置數(shù)據(jù)庫信息

在文件:"E:\Python_project\P_001\myshop-test\myshop\myshop\settings.py"中寫入以下數(shù)據(jù)庫的配置信息:

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的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫

上面的代碼比較好理解,就是對于語句:django.db.backends.mysql作一些說明:
在Django中,'django.db.backends.mysql'是一個數(shù)據(jù)庫后端引擎的路徑,用于指定使用MySQL作為數(shù)據(jù)庫的后端。數(shù)據(jù)庫后端引擎是Django用于與不同類型的數(shù)據(jù)庫進(jìn)行交互的組件。它提供了對數(shù)據(jù)庫的連接、查詢和數(shù)據(jù)操作的支持。

Django支持多個數(shù)據(jù)庫后端引擎,例如MySQL、PostgreSQL、SQLite等。通過設(shè)置'ENGINE'選項,你可以指定使用的具體后端引擎。在這個例子中,'django.db.backends.mysql'表示使用MySQL作為數(shù)據(jù)庫后端引擎。

通過選擇不同的后端引擎,你可以使用不同類型的數(shù)據(jù)庫來存儲和檢索數(shù)據(jù),而Django提供的ORM(對象關(guān)系映射)功能將為你提供一致的數(shù)據(jù)訪問接口,無論使用的是哪種數(shù)據(jù)庫后端引擎。這樣,你可以方便地切換和管理不同類型的數(shù)據(jù)庫,而無需更改大量的代碼。

在上面的配置中還取消了外鍵約束,否則在“多對多”模型關(guān)系的遷移中會出現(xiàn)下面的提示:

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

如果需要配置輸出對應(yīng)的數(shù)據(jù)庫語句(*),則需要在"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'是一個布爾值選項,用于指定是否禁用現(xiàn)有的日志記錄器。它的作用是控制是否保留已經(jīng)存在的日志記錄器,而不是完全替換它們。

當(dāng)'disable_existing_loggers'設(shè)置為True時,將禁用現(xiàn)有的日志記錄器。這意味著,在日志配置中定義的新的日志記錄器會生效,而現(xiàn)有的日志記錄器將被忽略。這通常用于完全替換默認(rèn)的Django日志配置。

當(dāng)'disable_existing_loggers'設(shè)置為False時,保留現(xiàn)有的日志記錄器。這意味著,新的日志記錄器將與現(xiàn)有的記錄器一起使用,不會替換它們。這通常用于擴(kuò)展默認(rèn)的Django日志配置,添加額外的日志記錄器或修改現(xiàn)有記錄器的行為。

在給定的配置語句中,'disable_existing_loggers': False表示不禁用現(xiàn)有的日志記錄器,而是保留它們,并將新的日志記錄器添加到現(xiàn)有的記錄器集合中。這樣可以確保現(xiàn)有的Django數(shù)據(jù)庫后端日志記錄器仍然有效,并將日志輸出發(fā)送到控制臺。

語句: ‘propagate’: True, 是什么意思?
答:在Django的日志配置中,'propagate'是一個布爾值選項,用于指定日志消息是否應(yīng)該傳播給更高級別的日志記錄器。

當(dāng)'propagate'設(shè)置為True時,日志消息將傳播給父級日志記錄器。這意味著,如果當(dāng)前的日志記錄器無法處理日志消息,它將將消息傳遞給其父級記錄器,以便其處理或傳遞給更高級別的記錄器。傳播使得日志消息可以在整個日志記錄器層次結(jié)構(gòu)中進(jìn)行傳遞和處理。

當(dāng)'propagate'設(shè)置為False時,日志消息不會傳播給父級日志記錄器。如果當(dāng)前的日志記錄器無法處理日志消息,消息將被靜默丟棄,不會傳遞給更高級別的記錄器。

在給定的配置語句中,'propagate': True表示日志消息將傳播給父級記錄器。這意味著,如果'django.db.backends'記錄器無法處理日志消息,它將傳遞給更高級別的記錄器進(jìn)行處理。通過設(shè)置為True,你可以確保數(shù)據(jù)庫后端日志消息在整個日志記錄器層次結(jié)構(gòu)中傳播,以便根據(jù)需要進(jìn)行處理或記錄。

02-安裝Python的MySQL數(shù)據(jù)庫驅(qū)動程序 mysqlclient

安裝命令如下(安裝前注意把代理工具關(guān)掉 ):

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

安裝成功后如下圖所示:
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫

03-安裝Mysql,并啟動Mysql

在這里,可以用小皮面板來安裝Mysql,當(dāng)然也可以自己去Mysql的官網(wǎng)去下載安裝包安裝。
如果是用小皮面板來安裝Mysql,則可以參考我之前寫的博文:
https://blog.csdn.net/wenhao_ir/article/details/126170178
安裝好后啟動Mysql的服務(wù):
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫
然后切換到數(shù)據(jù)庫,按第01步中的配置代碼中的信息新建一個數(shù)據(jù)庫:
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫

04-定義Django的數(shù)據(jù)庫模型(定義數(shù)據(jù)表-編寫models.py文件)

在"“E:\Python_project\P_001\myshop-test\myshop\app1\models.py”"中寫入下面的內(nèi)容:

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-按照數(shù)據(jù)的配置生成數(shù)據(jù)庫(執(zhí)行遷移命令)

關(guān)于為什么在Django中把數(shù)據(jù)庫的生成稱為叫遷移?請參看我寫的另一篇博文,https://blog.csdn.net/wenhao_ir/article/details/131544152

05-01-生成遷移執(zhí)行文件

通過下面的幾條命令生成“遷移執(zhí)行文件”:

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

上面的命令正常的話運(yùn)行結(jié)果如下所示:
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫
打開文件:“E:\Python_project\P_001\myshop-test\myshop\app1\migrations\0001_initial.py”
可以看到文件中包含當(dāng)前模型的創(chuàng)建語句,0001_initial.py的內(nèi)容如下:

# 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-執(zhí)行數(shù)據(jù)庫模型遷移

接上一步,用下面的三條語句實(shí)現(xiàn)執(zhí)行數(shù)據(jù)庫模型的遷移。

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

Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫

06-查看數(shù)據(jù)庫

可以用工具“opendbviewer”查看數(shù)據(jù)庫。
這個工具的百度網(wǎng)盤下載鏈接如下:
https://pan.baidu.com/s/19VxBiWHPmuJ_ApVgI3bqhA?pwd=e1te
安裝完成后,連接數(shù)據(jù)庫后就可以查看數(shù)據(jù)庫了~如下圖所示:
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫

07-向數(shù)據(jù)庫寫入數(shù)據(jù)并查看數(shù)據(jù)

在路徑:E:\Python_project\P_001\myshop-test\myshop\下新建文件 sql_test.py(與manage.py平級):
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫
然后寫入下面的代碼:

import os
import django

# 設(shè)置Dango運(yùn)行時需要的環(huán)境變量DJANGO_SETTINGS_MODULE
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')

# 加載Django的設(shè)置
django.setup()

# 導(dǎo)入模型,注意必須在加載完Django的設(shè)置后下面的這句導(dǎo)入模型語句才能被正確執(zhí)行
from app1.models import User

# 創(chuàng)建一個用戶
user = User(username='john', email='john@example.com')
user.save()

對于語句os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')的解釋:
當(dāng)我們在Python中運(yùn)行Django項目時,需要告訴Django要使用的項目設(shè)置(settings)。這些設(shè)置包括數(shù)據(jù)庫配置、應(yīng)用程序列表、靜態(tài)文件路徑等等。
怎么告訴Django項目的設(shè)置(settings)呢?通過環(huán)境變量 DJANGO_SETTINGS_MODULE 告訴。
在這里,os.environ.setdefault(key, value)是設(shè)置一個環(huán)境變量的方法。它接受兩個參數(shù):key是要設(shè)置的環(huán)境變量的名稱,value是要為該環(huán)境變量設(shè)置的值。
'DJANGO_SETTINGS_MODULE'剛才已經(jīng)說了它的作用,'myshop.settings'是設(shè)置變量的值,表示Django應(yīng)該使用myshop項目中的settings.py文件作為項目的設(shè)置。

執(zhí)行上面的代碼即可向數(shù)據(jù)庫寫入數(shù)據(jù),執(zhí)行后我們再去看數(shù)據(jù)庫的記錄:
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫
我們發(fā)現(xiàn),在數(shù)據(jù)庫shop-test的表User中已經(jīng)有了一條新的記錄。

我們再運(yùn)行下面的代碼,另外再寫入一條新的記錄:

import os
import django

# 設(shè)置Dango運(yùn)行時需要的環(huán)境變量DJANGO_SETTINGS_MODULE
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')

# 加載Django的設(shè)置
django.setup()

# 導(dǎo)入模型
from app1.models import User

# 創(chuàng)建一個用戶
user = User(username='suwenhao', email='2487872782.com')
user.save()

運(yùn)行完成后,數(shù)據(jù)庫中多新了一條新的記錄:
Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄,Django,django,數(shù)據(jù)庫

附完整代碼

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

到了這里,關(guān)于Django的數(shù)據(jù)庫配置、生成(創(chuàng)建)過程、寫入數(shù)據(jù)、查看數(shù)據(jù)的學(xué)習(xí)過程記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL數(shù)據(jù)庫自動生成Models文件導(dǎo)入Django

    MySQL數(shù)據(jù)庫自動生成Models文件導(dǎo)入Django

    在Django項目使用數(shù)據(jù)庫時,可以有三種方式: ??????? ? 1.直接編寫app內(nèi)的models文件,然后自動生成MySQL數(shù)據(jù)庫 ???????? 2.直接在MySQL中將數(shù)據(jù)庫編寫好,然后不使用models,而是在views中利用PyMySQL編寫數(shù)據(jù)庫鏈接等操作 ? ? ? ? 3.MySQL庫自動生成models文件進(jìn)行連接使用 這

    2023年04月08日
    瀏覽(24)
  • Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移

    Django創(chuàng)建應(yīng)用、ORM的進(jìn)階使用及模型類數(shù)據(jù)庫遷移

    Django 項目就是基于 Django 框架開發(fā)的 Web 應(yīng)用,它包含了一組配置和多個應(yīng)用,我們把應(yīng)用稱之為 App,在前文中對它也做了相應(yīng)的介紹,比如 auth、admin,它們都屬于 APP。 一個 App 就是一個 Python 包,通常一個 App 可以包含模型、視圖、模板和 URL 配置文件,可以被應(yīng)用到多個

    2024年02月09日
    瀏覽(94)
  • MySQL數(shù)據(jù)庫——存儲過程-介紹以及基本語法(特點(diǎn)、創(chuàng)建、調(diào)用、查看、刪除、示例)

    MySQL數(shù)據(jù)庫——存儲過程-介紹以及基本語法(特點(diǎn)、創(chuàng)建、調(diào)用、查看、刪除、示例)

    目錄 介紹 特點(diǎn) 基本語法 創(chuàng)建 調(diào)用 查看 刪除? 示例? 存儲過程是 事先經(jīng)過編譯 并 存儲在數(shù)據(jù)庫 中的一段 SQL 語句的 集合 ,調(diào)用存儲過程可以簡化應(yīng)用開發(fā)人員的很多工作,減少數(shù)據(jù)在數(shù)據(jù)庫和應(yīng)用服務(wù)器之間的傳輸,對于提高數(shù)據(jù)處理的效率是有好處的。 存儲過程思想

    2024年02月06日
    瀏覽(100)
  • 數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程實(shí)驗七存儲過程與函數(shù)的創(chuàng)建管理

    數(shù)據(jù)庫系統(tǒng)原理及MySQL應(yīng)用教程實(shí)驗七存儲過程與函數(shù)的創(chuàng)建管理

    1. 理解存儲過程和函數(shù)的概念。 2. 掌握創(chuàng)建存儲過程和函數(shù)的方法。 3. 掌握執(zhí)行存儲過程和函數(shù)的方法。 4. 掌握游標(biāo)的定義、使用方法。 1.驗證性實(shí)驗:某超市的食品管理的數(shù)據(jù)庫的Food表對其操作。 2.設(shè)計性試驗:學(xué)校教師管理數(shù)據(jù)庫中的teacherInfo表對其操作。 三、實(shí)驗步

    2024年02月03日
    瀏覽(24)
  • 在Linux環(huán)境中安裝配置Django與PostgreSQL數(shù)據(jù)庫

    Django是一款功能強(qiáng)大的Python Web框架,而PostgreSQL是一個開源的高級關(guān)系型數(shù)據(jù)庫系統(tǒng)。本文將介紹在Linux環(huán)境中如何安裝和配置Django與PostgreSQL數(shù)據(jù)庫,幫助您搭建一個完整的開發(fā)環(huán)境。 第一步:安裝Django和PostgreSQL 安裝Python環(huán)境:首先確保您的Linux系統(tǒng)中已經(jīng)安裝了Python,可以

    2024年02月16日
    瀏覽(24)
  • 【MySQL數(shù)據(jù)庫】最全安裝過程及配置詳解

    【MySQL數(shù)據(jù)庫】最全安裝過程及配置詳解

    ???♂?iecne個人主頁: : iecne的學(xué)習(xí)日志 ??每天 關(guān)注 iecne的作品,一起進(jìn)步 ??一起學(xué)習(xí),必看iecne ??希望大家多多支持??一起進(jìn)步呀!

    2024年02月02日
    瀏覽(23)
  • MySQL數(shù)據(jù)庫配置及創(chuàng)建用戶和授權(quán)

    MySQL數(shù)據(jù)庫配置及創(chuàng)建用戶和授權(quán)

    注意: 都是基于MySQL8.0以上版本 需要注意的是,修改 MySQL 的配置參數(shù)時需要謹(jǐn)慎,如果參數(shù)配置不合理,可能會導(dǎo)致數(shù)據(jù)庫性能下降或出現(xiàn)其他問題。修改 MySQL 的配置參數(shù)時,最好具有一定的經(jīng)驗或者了解相關(guān)的 MySQL 參數(shù)調(diào)優(yōu)知識。 vi /etc/my.cnf 第一步: cd /etc #進(jìn)入etc目錄

    2024年02月15日
    瀏覽(18)
  • 【SQL Server】數(shù)據(jù)庫開發(fā)指南(七)MS-SQL存儲過程全面解析:種類、優(yōu)點(diǎn)和創(chuàng)建方法詳解

    本系列博文還在更新中,收錄在專欄:#MS-SQL Server 專欄中。 本系列文章列表如下: 【SQL Server】 Linux 運(yùn)維下對 SQL Server 進(jìn)行安裝、升級、回滾、卸載操作 【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設(shè)計的核心概念和基本步驟 【SQL Server】數(shù)據(jù)庫開發(fā)指南(二)MSSQL數(shù)據(jù)庫開發(fā)對

    2024年02月07日
    瀏覽(111)
  • Springboot 實(shí)踐(3)配置DataSource及創(chuàng)建數(shù)據(jù)庫

    ????????前文講述了利用MyEclipse2019開發(fā)工具,創(chuàng)建maven工程、加載springboot、swagger-ui功能。本文講述創(chuàng)建數(shù)據(jù)庫,為項目配置數(shù)據(jù)源,實(shí)現(xiàn)數(shù)據(jù)的增刪改查服務(wù),并通過swagger-ui界面舉例調(diào)試服務(wù)控制器 創(chuàng)建數(shù)據(jù)庫 項目使用MySQL 8.0.31數(shù)據(jù),數(shù)據(jù)庫的庫表結(jié)構(gòu)的建立可行方式

    2024年02月12日
    瀏覽(18)
  • 【MQTT接收數(shù)據(jù)寫入數(shù)據(jù)庫】

    【MQTT接收數(shù)據(jù)寫入數(shù)據(jù)庫】

    參考上一篇文章 創(chuàng)建一個數(shù)據(jù)庫和數(shù)據(jù)表存儲mqtt消息 首先,登錄到MySQL服務(wù)器: 輸入你的root用戶密碼。默認(rèn)root 創(chuàng)建數(shù)據(jù)庫 : 選擇創(chuàng)建的數(shù)據(jù)庫 : 創(chuàng)建數(shù)據(jù)表 : 這里我們假設(shè)你從MQTT接收到的數(shù)據(jù)是一個簡單的字符串。我們將創(chuàng)建一個包含兩個字段的表,一個字段是自增的

    2024年02月09日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包