Django フレームワーク + MySQL データベースの併用 (Django フレームワークに mysql データベースを構成し、ページデータの追加、削除、変更、クエリ操作を実装)
目次
2. Djangoフレームワーク+MySQLデータベースの併用
0.サードパーティモジュールmysqlclientをインストールする
1.前提:
- 1) Django フレームワークが構築され、Django プロジェクトが作成されました (前のブログを参照してください: Django プロジェクトのエントリ例)
- 2) mysql データベースがダウンロードされ、インストールされています (前のブログを参照してください: MySQL のダウンロード、インストール、使用 - 詳しい手順を完了する)< /span>
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 に基づいてデータベース内のデータの行を見つけて更新します。データ更新後は、自動的に「データ一覧表示」画面にジャンプします。
以前の値を取得して表示します。
編集ページでフォームを送信した後、新しく送信された値を取得してレコードを更新します。