Lần phát hành đầu tiên ra công chúng là vào tháng 7 năm - Django nhấn mạnh khả năng sử dụng lại của các thành phần, còn được gọi là DRYDon''''t Repeat Yourself và đi kèm với các tính năng s
Trang 1Phước Tín
Introduction
- Nguồn gốc: Django được Lawrence Journal-World phát minh vào năm 2003, nhằm đáp ứng thời hạn viết báo ngắn, đồng thời đáp ứng nhu cầu của các nhà phát triển web có kinh nghiệm Lần phát hành đầu tiên ra công chúng là vào tháng 7 năm 2005
- Khái niệm:
- Django là một framework Python giúp tạo các trang web bằng Python dễ dàng hơn
- Django sẽ giải quyết những vấn đề khó khăn để bạn có thể tập trung xây dựng ứng dụng web của mình
- Django nhấn mạnh khả năng sử dụng lại của các thành phần, còn được gọi
là DRY(Don't Repeat Yourself) và đi kèm với các tính năng sẵn sàng sử dụng như hệ thống đăng nhập, kết nối cơ sở dữ liệu và hoạt động CRUD (Create, read, update, delete)
- Cách thực hoạt động:
- Django tuân theo mẫu thiết kế MVT (Model View
Template)
+ Model - Dữ liệu bạn muốn trình bày, thường là dữ liệu từ cơ sở
dữ liệu
+ View - Trình xử lý yêu cầu trả về mẫu và nội dung có liên quan dựa trên yêu cầu từ người dùng
+ Teamplate - Tệp văn bản (như tệp HTML) chứa bố cục của trang web, có logic về cách hiển thị dữ liệu
Getting Started
- Cài đặt python: vì django yêu cầu python nên cần phải cài python
- Kiểm tra xem Python đã được cài đặt hay chưa, ta dùng cú pháp sau trên cmd
- Nếu kết quả tương tự như hình dưới thì bạn đã cài đặt Python:
- Còn nếu không thì bạn có thể cài đặt miễn phí ở trên trang chủ của nó theo link sau: https://www.python.org/
- Cài đặt PIP: ngoài ra để cài đặt Django thì bạn cũng cần một trình
quản lý gói như PIP, được tích hợp sẵn từ phiên bản Python 3.4 trở lên
- Để kiểm tra xem bạn đã cài PIP hay chưa ta dùng cú pháp:
- Nếu kết quả trả về tương tự như hình dưới thì bạn đã cài PIP
- Còn nếu không thì bạn phải cài đặt thủ công theo đường dẫn
sau: https://pypi.org/project/pip/
Virtual Enviroment
Trang 2- Để làm việc với Django thì môi trường ảo là thứ được khuyến khích dành riêng cho từng dự án Django
- Cú pháp tạo môi trường ảo:
- Trên Windows:
- Trên MacOS/Unix:
- Thao tác này sẽ thiết lập môi trường ảo và tạo ra một thư mục có tên “myworld”
và các tệp như sau:
- Kích hoạt môi trường ảo:
- Windows:
- MacOS/Unix:
- Kích hoạt thành công:
- Windows:
- MacOS/Unix:\
Trang 3Ngọc Trường:
Install Django:
Django được cài đặt bằng python, với lệnh này:
● Windows:
(myworld) C:\Users\Your Name>py -m pip install Django
● Unix/MacOS:
(myworld) $ python -m pip install Django
Nó sẽ cho kết quả như thế này:
Check Django Version:
Trên windows:
django-admin version
Kết quả:
Create Project:
Tạo một Project tên: my_tennis_club
Di chuyển đến folder bạn muốn và chạy command dưới đây:
Django tạo thư mục my_tennis_club trên máy tính với nội dung sau:
Trang 4Run the Django Project:
Chạy project sẽ hiện trong browser:
Điều hướng trang vào folder /my_tennis_club và thực hiện lệnh dưới đây:
Hiện kết quả:
Trang 5On browser:
Create App:
Tên app members
Bắt đầu từ vị trị muốn lưu trữ ứng dụng
Folder của tôi là: my_tennis_club
Nếu server đang chạy, thì bạn nhấn [CTRL] [BREAK], hoặc [CTRL] [C] để dừng server Để tiếp tục chạy phần dưới:
Django tạo một folder members trong project, với nội dung sau:
Trang 6Võ Anh Tuấn
1 Views
‘view’ là một hàm hoặc phương thức lấy yêu cầu http làm đối số, import các model có liên quan và tìm ra dữ liệu (data) nào cần gửi đến template, sau đó trả
về kết quả cuối cùng
Thông thường, view thường ở trong file có tên là views.py
2 URLs
(‘URL’ - Uniform Resource Locator - “Trình định vị tài nguyên thống nhất“ Là một đường dẫn liên kết đến website, tham chiếu tới các tài nguyên trên mạng Internet)
Django cũng cung cấp cách để điều hướng tới những trang khác nhau trong một website
Khi mà người dùng yêu cầu một URL, Django sẽ quyết định xem nó sẽ gửi URL đó đến view nào
Việc này được thực hiện trong một tệp có tên là urls.py
3 Templates
A template is a file where you describe how the result should be represented
‘template’ là một tệp/file mà ở đó bạn mô tả cách trình bày các kết quả
template thường là các tệp html, với code HTML mô tả layout (bố cục) của trang web, nhưng nó cũng có thể ở các định dạng tệp khác để hiển thị các kết quả khác (chúng ta thường tập trung vào các tệp html hơn)
Django sử dụng HTML tiêu chuẩn (standard HTML) để mô tả bố cục, nhưng lại sử dụng Django tags để thêm logic, ví dụ:
< >h1My Homepage</ >h1
< >p My name is firstname {{ }} </ >p
Các template của một ứng dụng thường được đặt trong một thư mục (folder) có tên là
templates
Trang 7*Giải thích cách hoạt đông:
Khi bạn đã cài đặt Django và tạo ứng dụng web Django đầu tiên của mình và trình duyệt yêu cầu URL, về cơ bản điều này sẽ xảy ra:
1 Django nhận URL, kiểm tra tệp urls.py và gọi view khớp với URL
2 View, nằm trong tệp views.py, kiểm tra các model có liên quan
3 Các model được nhập từ tệpmodels.py
4 Sau đó, view sẽ gửi dữ liệu đến một template được chỉ định trong thư mục template
5 Template chứa các HTML và Django tags, và cùng với dữ liệu, nó sẽ trả về nội dung HTML đã hoàn thành cho trình duyệt
Django có thể làm được nhiều hơn thế, nhưng về cơ bản đây là các bước cơ bản trong một ứng dụng web đơn giản được tạo bằng Django
Trang 8Minh Trí
Models
1 Tạo bảng (Model)
- Để tạo mô hình, hãy điều hướng đến models.pytệp trong
/members/thư mục
- Mở nó và thêm Memberbảng bằng cách tạo Member classvà mô tả các trường bảng trong đó:
+ 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, với họ của các thành viên
+ Cả “firstname” và “lastname” đều được thiết lập để có tối đa 255 ký tự
- 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:
- Kết quả sẽ được là:
- Django tạo một tệp mô tả các thay đổi và lưu trữ tệp trong thư mục
/migrations/:
Trang 9- Lưu ý rằng Django chèn một trường cho các bảng của bạn, đó là một id
trường 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ả trường của riêng bạn.id
- Bảng chưa được tạo, bạn sẽ phải chạy thêm một 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/
- Lần tới khi bạn chạy py management.py migrate Django sẽ tạo và thực thi một câu lệnh SQL, dựa trên nội dung của tệp mới trong thư mục di chuyển
- Kết quả khi chạy lệnh di chuyển (py management.py migrate):
- Bây giờ bạn có một bảng Member trong cơ sở dữ liệu của mình!
- Câu lệnh SQL được tạo từ mô hình là:
- Kết quả:
2 Update Model
- Để thêm một trường vào bảng sau khi nó được tạo, hãy mở tệp
models.pyvà thực hiện các thay đổi của bạn:
Trang 10- Thêm phonevà joined_datevào Mô hình thành viên của mình.
- Đây là một sự thay đổi trong cấu trúc của Mô hình và do đó chúng tôi phải thực hiện di chuyển để thông báo cho Django rằng nó phải cập nhật cơ sở dữ liệu:
- Django hỏi liệu tôi có muốn cung cấp cho các trường một giá trị cụ thể hay tôi muốn dừng quá trình di chuyển và sửa nó trong mô hình:
- Tôi sẽ chọn tùy chọn 2 và mở models.pylại tệp và cho phép giá trị NULL cho hai trường mới:
- Thực hiện di chuyển một lần nữa:
Trang 11- Chạy lệnh di chuyển:
- Chúng ta có thể chèn dữ liệu vào hai trường mới với cách tiếp cận tương tự như chúng ta đã làm trong chương Cập nhật dữ liệu :
- Đầu tiên chúng ta vào Python Shell:
- Ở phía dưới, sau ba dòng >>>viết như sau (và nhấn [enter] cho mỗi dòng):
- Thao tác này sẽ chèn số điện thoại và ngày vào Mô hình Thành viên, ít nhất là đối với bản ghi đầu tiên, bốn bản ghi còn lại hiện sẽ được để trống Chúng ta sẽ giải quyết chúng sau trong hướng dẫn
- Thực hiện lệnh này để xem bảng Member đã được cập nhật chưa:
Trang 13Văn Thắng
11 Chèn dữ liệu:
- Thêm bản ghi
Chúng ta sẽ sử dụng trình thông dịch Python (Python shell) để thêm một số các thành viên tham gia vào nó
Để mở shell Python, gõ lệnh này:
py manage.py shell
Sau đó shell sẽ hiện ra thông báo Ở phía dưới, sau ba >>> viết như sau:
>>> from members.models import Member
Điều này sẽ cung cấp cho bạn một đối tượng QuerySet trống, như thế này:
<QuerySet []>
QuerySet là tập hợp dữ liệu từ cơ sở dữ liệu
Thêm bản ghi vào bảng bằng cách thực hiện hai dòng sau:
// có thể viết theo dữ liệu mà bạn muốn thêm vào (phía dưới chỉ là ví dụ)
>>> member = Member(firstname='Emil', lastname='Refsnes')
>>> member.save()
kết quả sẽ như thế này:
<QuerySet [{'id': 1, 'firstname': 'Emil', 'lastname':
'Refsnes'}]>
- Thêm nhiều bản ghi
Tương tự như thêm 1 bản ghi bạn có thể thêm nhiều bản ghi bằng cách tạo danh sách Member các đối tượng, và thực thi save() trên mỗi mục:
>>> member1 = Member(firstname='Tobias', lastname='Refsnes')
Trang 14>>> member2 = Member(firstname='Linus', lastname='Refsnes')
>>> member3 = Member(firstname='Lene', lastname='Refsnes')
>>> member4 = Member(firstname='Stale', lastname='Refsnes')
>>> member5 = Member(firstname='Jane', lastname='Doe')
>>> members_list = [member1, member2, member3, member4,
member5]
>>> for x in members_list:
>>> x.save()
Thành viên đã được thêm vào trong data
Nguồn tham khảo: Django Insert Data (w3schools.com)
Hoặc bạn có thể thêm dữ liệu trực tiếp qua database từ port
http://localhost:8000/admin (nếu chạy local) và đăng nhập bằng superuser(admin)
12 Cập nhật dữ liệu:
- Để cập nhật các bản ghi đã có trong cơ sở dữ liệu, trước tiên chúng ta phải lấy bản ghi mà chúng ta muốn cập nhật:
// đây là ví dụ thay đổi dữ liệu của thành viên ở vị trí thứ 4
>>> from members.models import Member
>>> x = Member.objects.all()[4]
- x bây giờ sẽ đại diện cho thành viên ở chỉ số 4, đó là "Stale Refsnes", nhưng để chắc chắn, chúng ta hãy xem điều đó có đúng không:
>>> x.firstname
- Điều này sẽ cho bạn kết quả này:
'Stale'
- Thực hiện lệnh này để xem bảng Member đã được cập nhật chưa:
>>> Member.objects.all().values()
Kiểm tra xong ta sẽ thấy dữ liệu đã được cập nhật nếu như bạn làm đúng như các bước trên
Nguồn tham khảo: Django Update Data (w3schools.com)
Trang 15Hoặc bạn có thể cập nhật dữ liệu trực tiếp qua database từ port
http://localhost:8000/admin (nếu chạy local) và đăng nhập bằng superuser(admin)
13 Xóa dữ liệu:
Để xóa một bản ghi trong bảng, hãy bắt đầu bằng cách lấy bản ghi bạn muốn xóa:
// ví dụ về xóa dữ liệu của thành viên ở vị trí số %
>>> from members.models import Member
>>> x = Member.objects.all()[5]
x bây giờ sẽ đại diện cho thành viên ở chỉ số 5, đó là "Jane Doe", nhưng để chắc chắn, chúng ta hãy xem điều đó có đúng không:
>>> x.firstname
Bây giờ chúng ta có thể xóa bản ghi bằng lệnh sau:
>>> x.delete()
Kiểm tra dữ liệu lại bằng lệnh:
>>> Member.objects.all().values()
Nguồn tham khảo: Django Update Data (w3schools.com)
Hoặc bạn có thể xóa dữ liệu trực tiếp qua database từ port
http://localhost:8000/admin (nếu chạy local) và đăng nhập bằng superuser(admin)
NGUỒN THAM KHẢO CHÍNH CỦA TEAM 17:
www.w3school.com
- Cùng với các nguồn nhỏ lẻ khác