Trong phần này chúng ta sẽ học cách tạo các Model để có thể tương tác với cơ sở dữ liệu.
Thiết lập cơ sở dữ liệu
Trong thư mục mysite
chứa một file tên là settings.py
, file này chứa các thông tin cấu hình server của bạn.
Mặc định thì Django server sử dụng cơ sở dữ liệu SQLite, và trong bài này mình cũng sẽ sử dụng SQLite cho đơn giản, nếu bạn dùng SQLite thì bạn không cần quan tâm đến việc tạo CSDL và cấu hình user, nhưng nếu bạn muốn sử dụng CSDL khác thì trong file settings.py
, bạn tìm đến đối tượng DATABASES
và thay đổi các giá trị sau:
ENGINE
: tên module dành cho từng CSDL, mặc định sử dụng SQLitedjango.db.backends.sqlite3
– cơ sở dữ liệu SQLitedjango.db.backends.postgresql
– cơ sở dữ liệu PostgreSQLdjango.db.backends.mysql
– cơ sở dữ liệu MySQLdjango.db.backends.oracle
– cơ sở dữ liệu Oracle
NAME
: tên CSDL, mặc định là filedb.sqlite3
được tạo ra ở thư mục gốc của server. Nếu bạn không dùng CSDL SQLite thì bạn phải tạo CSDL với tên trùng với NAME trong CSDL mà bạn dùng (bằng câu lệnhCREATE DATABASE
<name>)
Ngoài ra nếu bạn không dùng SQLite thì bạn cũng phải cung cấp thêm các thông tin USER
, PASSWORD
, HOST
nữa và user phải có quyền truy cập CSDL cũng như một số quyền như ghi, xem…
Trong file settings.py
còn có một list có tên là INSTALLED_APPS
, mặc định khi tạo một project, Django cung cấp cho chúng ta một số ứng dụng thường dùng trong list này. Trong bài sau chúng ta sẽ dùng một ứng dụng trong list này đó là django.contrib.admin
.
Mỗi ứng dụng trong list này sẽ giúp Django tìm các model để tạo bảng tương ứng trong file CSDL, nhưng khi tạo project thì các bảng này không tự động được tạo trong file db.sqlite3
, để tạo các bảng này thì chúng ta chạy lệnh sau:
1 | F:\PycharmProjects\project_django\mysite>python manage.py migrate |
Lệnh migrate
sẽ tìm các module được liệt kê trong list INSTALLED_APPS
(trong file mysite/settings.py
) và tạo các bảng CSDL tương ứng.
Tạo mô hình dữ liệu cho ứng dụng
Mô hình ở đây giống như lớp trong lập trình hướng đối tượng hoặc Model trong mô hình MVC vậy thôi, không có gì khó hiểu cả 🙂
Mặc định khi tạo một ứng dụng web trong một project Django thì Django đã tạo sẵn cho chúng ta một file có tên là models.py
để chúng ta khai báo các mô hình trong này rồi nhưng bạn cũng có thể viết trong các file khác nếu thích.
from django.db import models
# Create your models here.
class Blog(models.Model):
Bai_so = models.IntegerField(verbose_name='Bài Viết Số', blank=True, default=0)
Tieu_de = models.CharField(verbose_name='Tiêu Đề',max_length=50, blank=True,)
Tac_gia = models.CharField(verbose_name='Tác Giả',max_length=50, blank=True,)
Mo_ta = models.CharField(verbose_name='Mô Tả Bài Viết',max_length=500, blank=True,)
Bai_viet =models.TextField(verbose_name='Bài Viết', blank=True,)
Ngay_dang = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.Tieu_de
- Chúng ta tạo 1 model về Blog
- Ở đây nhưng ai đọc không hiểu thì quay lại đọc một ít tài liệu về cơ sở dữ liện SQL cơ bản là sẽ hiểu được
makemigration polls
để báo cho Django biết là bạn đã thay đổi một số mô hình, ở đây là thêm lớp mới trong gói polls
.Tạo tài khoản admin để đăng nhập vào trang admin
- Ta thấy chưa có cái model mình vừa tạo ra
- Vào file polls/admin.py thêm dòng lệnh vào
from django.contrib import admin
|
Chạy lại sever
- Ta đã thêm được những bài viết, blog vào trong cơ sở dữ liệu
0 Nhận xét