Django フレームワーク + MySQL データベースの併用 (Django に mysql データベースを構築し、ページデータの追加、削除、変更、クエリ操作を実装)

Django フレームワーク + MySQL データベースの併用 (Django フレームワークに mysql データベースを構成し、ページデータの追加、削除、変更、クエリ操作を実装)

目次

        1.前提:

        2. Djangoフレームワーク+MySQLデータベースの併用

        0.サードパーティモジュールmysqlclientをインストールする

        1.データベースの作成

        1) MySQLサービスを起動します

         2) データベースを作成するツールを持参する

        2. mysqlデータベースに接続するDjangoの設定

        3. Django アクションシート

        1) テーブルを作成する

         2) テーブルにデータを追加します

        4. [表示データリスト]ページを作成します。

        5. [データの追加] ページを作成します。

        6. [データの削除] ページを作成します。

        7. [データの変更]ページを作成します。


1.前提:

2. Djangoフレームワーク+MySQLデータベースの併用

0. サードパーティ モジュール mysqlclient をインストールします

mysqlclient をインストールし、コマンド ラインで次のコマンドを実行します。

pip install mysqlclient

しかし、エラーが報告され、インストールは成功しません。解決策: mysqlclient の Wheel パッケージをダウンロードし、次に Wheel パッケージのダウンロードおよび保存ディレクトリに移動し、オフラインでインストールします。 (ブログを参照してください: Python: Windows で mysqlclient をインストールできませんでした - 解決策 )

1. データベースを作成する

1) MySQLサービスを開始します

mysql -u root -p    # 启动mysql服务
show databases;     # 显示数据库里的原有表格

 2) データベースを作成するための独自のツールを持参する

packet_database という名前のデータベースを作成します。

create database packet_database DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

2. mysqlデータベースへのDjango接続の設定

settings.py ファイルで構成と変更を行います。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'packet_database', #数据库名字:刚才在mysql自行创建的那个数据库
        'USER': 'root',           #用户名
        'PASSWORD': 'root123',    #密码:自己在安装mysql时设置的进入密码
        'HOST': '127.0.0.1',      #哪台机器安装了MySQL,本机为127.0.0.1
        'PORT': '3306',           #端口号
    }
}

    

3. Django アクションシート

1) テーブルの作成

テーブルを作成します。models.py のクラスに、対応するクラスを直接追加し、2 つのコマンド (python manage.py makemigrations、python manage.py mite) を実行します。

  (1) models.py ファイルに次のクラスを追加します。

from django.db import models

# Create your models here.
class PacketInfo(models.Model):   #在mysql数据库里,创建一个表格(名字为PacketInfo)
    name = models.CharField(max_length=64)  #表格里的其中一个字段为name(流量名称)
    type = models.CharField(max_length=64)    #表格里的其中一个字段为type(流量类型)
    desc = models.CharField(max_length=64)    #表格里的其中一个字段为desc(流量描述)

       

  (2) コマンドの実行: プロジェクトのルートディレクトリで以下の 2 つのコマンドを実行すると、テーブルが正常に作成されます。

python manage.py makemigrations
python manage.py migrate

      

  (3) mysql で show tables を実行すると、作成したばかりのテーブルが表示されます。

use packet_database; //packet_database データベースを使用する
show tables; // データベース内のテーブルを表示します
desc show_packetinfo; // テーブルのフィールドを表示

 2) テーブルにデータを追加します

.py ファイルに次の create ステートメントを記述します (プロジェクトを 1 回実行すると、これらの文が実行され、テーブルに数行のデータが追加されます。十分に追加したら、これらの文をコメントアウトするだけです。もちろん、 、mysql でコマンドを直接使用してデータを追加することもできます。):

PacketInfo.objects.create(name="流量1",type="正常流量",desc="测试:正常流量1")  #往表里添加一行数据
PacketInfo.objects.create(name="流量2",type="正常流量",desc="测试:正常流量2")
PacketInfo.objects.create(name="流量3",type="正常流量",desc="测试:正常流量3")

# #### 1.新建数据 ########
# PacketInfo.objects.create(name="流量1")
# 相当于在mysql里: insert into show_packetinfo(name)values("流量1")

###### 2.删除数据 ########
# PacketInfo.objects.filter(id=3).delete() #把id=3的那一行删掉
# PacketInfo.objects.all().delete()   #把PacketInfo整张表删掉

###### 3.获取数据 ########
# data_list = [行,行,行]  每一行都是一个对象   QuerySet对象
# data_list = PacketInfo.objects.all() #all获取所有的数据,可以看作是一个列表
# for obj in data_list:
#     print(obj.id, obj,name, obj.password, obj.age)
#
# data_list = PacketInfo.objects.filter(id=1)  寻找id=1的那一行数据
# data_list = PacketInfo.objects.filter(id=1).first()  把这个queryset的第一个对象拿出来

以下の追加、削除、変更、検索の操作はビデオのスクリーンショットからのものです (アイデアと操作は比較的シンプルで理解しやすく、初心者が理解して学び、学ぶのに適しています)。直接表示するのも簡単です。

4. [表示データリスト]ページを作成します。

  • url(urls.py
  • 函数(views.py
    • バックグラウンドでデータベースからすべてのユーザー情報を取得し、フロントページに返します。
    • HTML レンダリング。HTML ページ上のすべての情報を表示します。

 

5. [データの追加] ページを作成します。

  • url(urls.py
  • 函数(views.py
    • GET、追加ページを参照し、内容を入力します。
    • POST、データの内容を送信 → ユーザーが送信したデータをバックグラウンドで取得し、データベースに書き込みます。

 

「追加」ページにジャンプできるように、リスト ページに「追加」ボタンを追加します。

 

6. [データの削除] ページを作成します。

  • url(urls.py
  • 函数(views.py
    • GET を実行するには、フロント ページの削除ボタンをクリックし、バックグラウンドで ID を取得し、ID 行を削除します。
    • 削除後は自動的に「データ一覧表示」画面にジャンプします。

 

7. [データの変更] ページを作成します。

  • url(urls.py
  • 函数(views.py
    • GET は、フロント ページの編集ボタンをクリックした後、バックグラウンドで ID を取得し (編集するデータ行の ID を取得)、ID に基づいてデータベース内のこのデータ行をクエリし、元のデータを返します。変更ページ表示にてフロントまで。
    • POST、編集ページで変更したデータを送信 → ユーザーが送信したデータをバックグラウンドで取得し、ID に基づいてデータベース内のデータの行を見つけて更新します。データ更新後は、自動的に「データ一覧表示」画面にジャンプします。

 以前の値を取得して表示します。

 編集ページでフォームを送信した後、新しく送信された値を取得してレコードを更新します。

 

 

おすすめ

転載: blog.csdn.net/weixin_39450145/article/details/125246392