Mô hình Django
Mô hình Django là một bảng trong cơ sở dữ liệu của bạn.
Mô hình Django
Cho đến thời điểm hiện tại trong hướng dẫn này, đầu ra là dữ liệu tĩnh từ các mẫu Python hoặc HTML.
Bây giờ chúng ta sẽ xem cách Django cho phép chúng ta làm việc với dữ liệu mà không cần phải thay đổi hoặc tải tệp lên trong quá trình xử lý.
Trong Django, dữ liệu được tạo trong các đối tượng, được gọi là Mô hình và thực tế là các bảng trong cơ sở dữ liệu.
Tạo bảng (Mô hình)
Để tạo mô hình, hãy điều hướng đến tệp models.py
trong thư mục /members/
.
Mở nó và thêm bảng Member
bằng cách tạo Member
class
và mô tả các trường bảng trong đó:
my_tennis_club/members/models.py
:
from django.db import models
class Member(models.Model):
firstname = models.CharField(max_length=255)
lastname = models.CharField(max_length=255)
Trường đầu tiên, firstname
, là trường Văn bản và sẽ chứa tên của các thành viên.
Trường thứ hai, lastname
, cũng là trường Văn bản, có họ của thành viên.
Cả firstname
và lastname
đều được thiết lập để có tối đa 255 ký tự.
Cơ sở dữ liệu SQLite
Khi tạo dự án Django, chúng tôi có cơ sở dữ liệu SQLite trống.
Nó được tạo trong thư mục gốc my_tennis_club
và có tên tệp db.sqlite3
.
Theo mặc định, tất cả các Model được tạo trong dự án Django sẽ được tạo dưới dạng bảng trong cơ sở dữ liệu này.
Di cư
Bây giờ khi chúng ta đã mô tả một Mô hình trong tệp models.py
, chúng ta phải chạy một lệnh để thực sự tạo bảng trong cơ sở dữ liệu.
Điều hướng đến thư mục /my_tennis_club/
và chạy lệnh này:
py manage.py makemigrations members
Điều này sẽ dẫn đến kết quả đầu ra này:
Migrations for 'members':
members\migrations\0001_initial.py
- Create model Member
(myworld) C:\Users\ Your Name \myworld\my_tennis_club>
Django tạo một tệp mô tả các thay đổi và lưu trữ tệp trong thư mục /migrations/
:
my_tennis_club/members/migrations/0001_initial.py
:
# Generated by Django 4.1.2 on 2022-10-27 11:14
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Member',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('firstname', models.CharField(max_length=255)),
('lastname', models.CharField(max_length=255)),
],
),
]
Lưu ý rằng Django chèn trường id
cho các bảng của bạn, đây là auto increment number
(bản ghi đầu tiên nhận giá trị 1, bản ghi thứ hai 2, v.v.), đây là hành vi mặc định của Django, bạn có thể ghi đè nó bằng cách mô tả id
của riêng bạn cánh đồng.
Bảng chưa được tạo, bạn sẽ phải chạy thêm 1 lệnh nữa, sau đó Django sẽ tạo và thực thi một câu lệnh SQL, dựa trên nội dung của file mới trong thư mục /migrations/
.
Chạy lệnh di chuyển:
py manage.py migrate
Điều này sẽ dẫn đến kết quả đầu ra này:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, members, sessions
Running migrations:
Applying members.0001_initial... OK
(myworld) C:\Users\ Your Name \myworld\my_tennis_club>
Bây giờ bạn có bảng Member
trong cơ sở dữ liệu của mình!
Xem SQL
Lưu ý phụ: bạn có thể xem câu lệnh SQL đã được thực thi từ quá trình di chuyển ở trên. Tất cả những gì bạn phải làm là chạy lệnh này với số di chuyển:
py manage.py sqlmigrate members 0001
Điều này sẽ dẫn đến kết quả đầu ra này:
BEGIN;
--
-- Create model Member
--
CREATE TABLE "members_member" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "firstname" varchar(255) NOT NULL, "lastname" varchar(255) NOT NULL);
COMMIT;